From d5442a64643bf5058a241cf00c9ee46ab5948bdd Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Tue, 31 Aug 2021 03:23:02 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/authelia/1.4.1/CONFIG.md | 8 + incubator/authelia/1.4.1/Chart.lock | 12 + incubator/authelia/1.4.1/Chart.yaml | 41 + incubator/authelia/1.4.1/README.md | 45 + incubator/authelia/1.4.1/app-readme.md | 4 + .../authelia/1.4.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../1.4.1/charts/postgresql-1.5.1.tgz | Bin 0 -> 32168 bytes .../authelia/1.4.1/charts/redis-15.0.4.tgz | Bin 0 -> 77276 bytes incubator/authelia/1.4.1/ix_values.yaml | 231 +++ incubator/authelia/1.4.1/questions.yaml | 1697 +++++++++++++++++ .../authelia/1.4.1/templates/_configmap.tpl | 245 +++ .../authelia/1.4.1/templates/_secrets.tpl | 112 ++ .../authelia/1.4.1/templates/common.yaml | 72 + incubator/authelia/1.4.1/test_values.yaml | 662 +++++++ incubator/authelia/1.4.1/values.yaml | 0 incubator/custom-app/0.2.4/CONFIG.md | 8 + incubator/custom-app/0.2.4/Chart.lock | 6 + incubator/custom-app/0.2.4/Chart.yaml | 22 + incubator/custom-app/0.2.4/README.md | 42 + incubator/custom-app/0.2.4/app-readme.md | 4 + .../custom-app/0.2.4/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes incubator/custom-app/0.2.4/ix_values.yaml | 10 + incubator/custom-app/0.2.4/questions.yaml | 1194 ++++++++++++ .../custom-app/0.2.4/templates/common.yaml | 1 + incubator/custom-app/0.2.4/test_values.yaml | 43 + incubator/custom-app/0.2.4/values.yaml | 0 incubator/jdownloader2/0.3.2/CONFIG.md | 8 + incubator/jdownloader2/0.3.2/Chart.lock | 6 + incubator/jdownloader2/0.3.2/Chart.yaml | 29 + incubator/jdownloader2/0.3.2/README.md | 44 + incubator/jdownloader2/0.3.2/app-readme.md | 4 + .../0.3.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes incubator/jdownloader2/0.3.2/ix_values.yaml | 21 + incubator/jdownloader2/0.3.2/questions.yaml | 1187 ++++++++++++ .../jdownloader2/0.3.2/templates/common.yaml | 1 + incubator/jdownloader2/0.3.2/test_values.yaml | 50 + incubator/jdownloader2/0.3.2/values.yaml | 0 incubator/nextcloud/3.5.1/CONFIG.md | 8 + incubator/nextcloud/3.5.1/Chart.lock | 12 + incubator/nextcloud/3.5.1/Chart.yaml | 36 + incubator/nextcloud/3.5.1/README.md | 45 + incubator/nextcloud/3.5.1/app-readme.md | 4 + .../nextcloud/3.5.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../3.5.1/charts/postgresql-1.5.1.tgz | Bin 0 -> 32168 bytes .../nextcloud/3.5.1/charts/redis-15.0.4.tgz | Bin 0 -> 77276 bytes incubator/nextcloud/3.5.1/ix_values.yaml | 187 ++ incubator/nextcloud/3.5.1/questions.yaml | 1278 +++++++++++++ .../nextcloud/3.5.1/templates/_configmap.tpl | 33 + .../nextcloud/3.5.1/templates/_cronjob.tpl | 51 + .../nextcloud/3.5.1/templates/_secrets.tpl | 50 + .../nextcloud/3.5.1/templates/common.yaml | 14 + incubator/nextcloud/3.5.1/test_values.yaml | 210 ++ incubator/nextcloud/3.5.1/values.yaml | 0 stable/airsonic/1.11.2/CONFIG.md | 8 + stable/airsonic/1.11.2/Chart.lock | 6 + stable/airsonic/1.11.2/Chart.yaml | 22 + stable/airsonic/1.11.2/README.md | 44 + stable/airsonic/1.11.2/app-readme.md | 4 + .../airsonic/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/airsonic/1.11.2/ix_values.yaml | 19 + stable/airsonic/1.11.2/questions.yaml | 1069 +++++++++++ stable/airsonic/1.11.2/templates/common.yaml | 1 + stable/airsonic/1.11.2/test_values.yaml | 63 + stable/airsonic/1.11.2/values.yaml | 0 stable/appdaemon/3.11.2/CONFIG.md | 8 + stable/appdaemon/3.11.2/Chart.lock | 6 + stable/appdaemon/3.11.2/Chart.yaml | 29 + stable/appdaemon/3.11.2/README.md | 42 + stable/appdaemon/3.11.2/app-readme.md | 4 + .../appdaemon/3.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/appdaemon/3.11.2/ix_values.yaml | 16 + stable/appdaemon/3.11.2/questions.yaml | 1040 ++++++++++ stable/appdaemon/3.11.2/templates/common.yaml | 1 + stable/appdaemon/3.11.2/test_values.yaml | 43 + stable/appdaemon/3.11.2/values.yaml | 0 stable/bazarr/6.11.2/CONFIG.md | 8 + stable/bazarr/6.11.2/Chart.lock | 6 + stable/bazarr/6.11.2/Chart.yaml | 32 + stable/bazarr/6.11.2/README.md | 43 + stable/bazarr/6.11.2/app-readme.md | 4 + stable/bazarr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/bazarr/6.11.2/ix_values.yaml | 15 + stable/bazarr/6.11.2/questions.yaml | 1105 +++++++++++ stable/bazarr/6.11.2/templates/common.yaml | 1 + stable/bazarr/6.11.2/test_values.yaml | 28 + stable/bazarr/6.11.2/values.yaml | 0 stable/booksonic-air/1.9.2/CONFIG.md | 8 + stable/booksonic-air/1.9.2/Chart.lock | 6 + stable/booksonic-air/1.9.2/Chart.yaml | 23 + stable/booksonic-air/1.9.2/README.md | 43 + stable/booksonic-air/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/booksonic-air/1.9.2/ix_values.yaml | 15 + stable/booksonic-air/1.9.2/questions.yaml | 1067 +++++++++++ .../booksonic-air/1.9.2/templates/common.yaml | 1 + stable/booksonic-air/1.9.2/test_values.yaml | 50 + stable/booksonic-air/1.9.2/values.yaml | 0 stable/calibre-web/6.11.2/CONFIG.md | 8 + stable/calibre-web/6.11.2/Chart.lock | 6 + stable/calibre-web/6.11.2/Chart.yaml | 26 + stable/calibre-web/6.11.2/README.md | 43 + stable/calibre-web/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/calibre-web/6.11.2/ix_values.yaml | 16 + stable/calibre-web/6.11.2/questions.yaml | 1066 +++++++++++ .../calibre-web/6.11.2/templates/common.yaml | 1 + stable/calibre-web/6.11.2/test_values.yaml | 30 + stable/calibre-web/6.11.2/values.yaml | 0 stable/calibre/1.9.2/CONFIG.md | 8 + stable/calibre/1.9.2/Chart.lock | 6 + stable/calibre/1.9.2/Chart.yaml | 21 + stable/calibre/1.9.2/README.md | 43 + stable/calibre/1.9.2/app-readme.md | 4 + stable/calibre/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/calibre/1.9.2/ix_values.yaml | 15 + stable/calibre/1.9.2/questions.yaml | 1182 ++++++++++++ stable/calibre/1.9.2/templates/common.yaml | 3 + stable/calibre/1.9.2/test_values.yaml | 61 + stable/calibre/1.9.2/values.yaml | 0 stable/collabora-online/6.11.2/CONFIG.md | 8 + stable/collabora-online/6.11.2/Chart.lock | 6 + stable/collabora-online/6.11.2/Chart.yaml | 28 + stable/collabora-online/6.11.2/README.md | 44 + stable/collabora-online/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/collabora-online/6.11.2/ix_values.yaml | 14 + stable/collabora-online/6.11.2/questions.yaml | 983 ++++++++++ .../6.11.2/templates/common.yaml | 1 + .../collabora-online/6.11.2/test_values.yaml | 22 + stable/collabora-online/6.11.2/values.yaml | 0 stable/deconz/1.9.2/CONFIG.md | 8 + stable/deconz/1.9.2/Chart.lock | 6 + stable/deconz/1.9.2/Chart.yaml | 25 + stable/deconz/1.9.2/README.md | 43 + stable/deconz/1.9.2/app-readme.md | 4 + stable/deconz/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deconz/1.9.2/ix_values.yaml | 15 + stable/deconz/1.9.2/questions.yaml | 1286 +++++++++++++ stable/deconz/1.9.2/templates/common.yaml | 1 + stable/deconz/1.9.2/test_values.yaml | 75 + stable/deconz/1.9.2/values.yaml | 0 stable/deepstack-cpu/4.11.2/CONFIG.md | 8 + stable/deepstack-cpu/4.11.2/Chart.lock | 6 + stable/deepstack-cpu/4.11.2/Chart.yaml | 28 + stable/deepstack-cpu/4.11.2/README.md | 44 + stable/deepstack-cpu/4.11.2/app-readme.md | 4 + .../4.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deepstack-cpu/4.11.2/ix_values.yaml | 19 + stable/deepstack-cpu/4.11.2/questions.yaml | 1119 +++++++++++ .../4.11.2/templates/common.yaml | 1 + stable/deepstack-cpu/4.11.2/test_values.yaml | 41 + stable/deepstack-cpu/4.11.2/values.yaml | 0 stable/deluge/6.11.2/CONFIG.md | 8 + stable/deluge/6.11.2/Chart.lock | 6 + stable/deluge/6.11.2/Chart.yaml | 24 + stable/deluge/6.11.2/README.md | 42 + stable/deluge/6.11.2/app-readme.md | 4 + stable/deluge/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deluge/6.11.2/ix_values.yaml | 16 + stable/deluge/6.11.2/questions.yaml | 1210 ++++++++++++ stable/deluge/6.11.2/templates/common.yaml | 1 + stable/deluge/6.11.2/test_values.yaml | 35 + stable/deluge/6.11.2/values.yaml | 0 stable/dizquetv/1.9.2/CONFIG.md | 8 + stable/dizquetv/1.9.2/Chart.lock | 6 + stable/dizquetv/1.9.2/Chart.yaml | 22 + stable/dizquetv/1.9.2/README.md | 43 + stable/dizquetv/1.9.2/app-readme.md | 4 + .../dizquetv/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/dizquetv/1.9.2/ix_values.yaml | 15 + stable/dizquetv/1.9.2/questions.yaml | 1067 +++++++++++ stable/dizquetv/1.9.2/templates/common.yaml | 1 + stable/dizquetv/1.9.2/test_values.yaml | 43 + stable/dizquetv/1.9.2/values.yaml | 0 stable/duplicati/1.9.2/CONFIG.md | 8 + stable/duplicati/1.9.2/Chart.lock | 6 + stable/duplicati/1.9.2/Chart.yaml | 21 + stable/duplicati/1.9.2/README.md | 43 + stable/duplicati/1.9.2/app-readme.md | 4 + .../duplicati/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/duplicati/1.9.2/ix_values.yaml | 15 + stable/duplicati/1.9.2/questions.yaml | 1067 +++++++++++ stable/duplicati/1.9.2/templates/common.yaml | 1 + stable/duplicati/1.9.2/test_values.yaml | 46 + stable/duplicati/1.9.2/values.yaml | 0 stable/emby/6.11.2/CONFIG.md | 8 + stable/emby/6.11.2/Chart.lock | 6 + stable/emby/6.11.2/Chart.yaml | 28 + stable/emby/6.11.2/README.md | 43 + stable/emby/6.11.2/app-readme.md | 4 + stable/emby/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/emby/6.11.2/ix_values.yaml | 15 + stable/emby/6.11.2/questions.yaml | 1113 +++++++++++ stable/emby/6.11.2/templates/common.yaml | 1 + stable/emby/6.11.2/test_values.yaml | 31 + stable/emby/6.11.2/values.yaml | 0 stable/esphome/6.11.2/CONFIG.md | 8 + stable/esphome/6.11.2/Chart.lock | 6 + stable/esphome/6.11.2/Chart.yaml | 27 + stable/esphome/6.11.2/README.md | 43 + stable/esphome/6.11.2/app-readme.md | 4 + .../esphome/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/esphome/6.11.2/ix_values.yaml | 15 + stable/esphome/6.11.2/questions.yaml | 1208 ++++++++++++ stable/esphome/6.11.2/templates/common.yaml | 1 + stable/esphome/6.11.2/test_values.yaml | 32 + stable/esphome/6.11.2/values.yaml | 0 stable/external-service/1.4.1/CONFIG.md | 8 + stable/external-service/1.4.1/Chart.lock | 6 + stable/external-service/1.4.1/Chart.yaml | 26 + stable/external-service/1.4.1/README.md | 42 + stable/external-service/1.4.1/app-readme.md | 4 + .../1.4.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/external-service/1.4.1/ix_values.yaml | 15 + stable/external-service/1.4.1/questions.yaml | 417 ++++ .../1.4.1/templates/common.yaml | 1 + .../external-service/1.4.1/test_values.yaml | 15 + stable/external-service/1.4.1/values.yaml | 0 stable/fireflyiii/6.0.1/CONFIG.md | 8 + stable/fireflyiii/6.0.1/Chart.lock | 9 + stable/fireflyiii/6.0.1/Chart.yaml | 30 + stable/fireflyiii/6.0.1/README.md | 43 + stable/fireflyiii/6.0.1/app-readme.md | 4 + .../fireflyiii/6.0.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../6.0.1/charts/postgresql-1.5.1.tgz | Bin 0 -> 32168 bytes stable/fireflyiii/6.0.1/ix_values.yaml | 54 + stable/fireflyiii/6.0.1/questions.yaml | 1116 +++++++++++ .../fireflyiii/6.0.1/templates/_secrets.tpl | 25 + stable/fireflyiii/6.0.1/templates/common.yaml | 8 + stable/fireflyiii/6.0.1/test_values.yaml | 72 + stable/fireflyiii/6.0.1/values.yaml | 0 stable/flaresolverr/1.9.2/CONFIG.md | 8 + stable/flaresolverr/1.9.2/Chart.lock | 6 + stable/flaresolverr/1.9.2/Chart.yaml | 22 + stable/flaresolverr/1.9.2/README.md | 43 + stable/flaresolverr/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/flaresolverr/1.9.2/ix_values.yaml | 15 + stable/flaresolverr/1.9.2/questions.yaml | 1104 +++++++++++ .../flaresolverr/1.9.2/templates/common.yaml | 1 + stable/flaresolverr/1.9.2/test_values.yaml | 28 + stable/flaresolverr/1.9.2/values.yaml | 0 stable/flood/1.9.2/CONFIG.md | 8 + stable/flood/1.9.2/Chart.lock | 6 + stable/flood/1.9.2/Chart.yaml | 24 + stable/flood/1.9.2/README.md | 43 + stable/flood/1.9.2/app-readme.md | 4 + stable/flood/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/flood/1.9.2/ci/ct-values.yaml | 5 + stable/flood/1.9.2/ix_values.yaml | 15 + stable/flood/1.9.2/questions.yaml | 1111 +++++++++++ stable/flood/1.9.2/templates/common.yaml | 1 + stable/flood/1.9.2/test_values.yaml | 39 + stable/flood/1.9.2/values.yaml | 0 stable/focalboard/1.9.2/CONFIG.md | 8 + stable/focalboard/1.9.2/Chart.lock | 6 + stable/focalboard/1.9.2/Chart.yaml | 25 + stable/focalboard/1.9.2/README.md | 44 + stable/focalboard/1.9.2/app-readme.md | 4 + .../focalboard/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/focalboard/1.9.2/ix_values.yaml | 15 + stable/focalboard/1.9.2/questions.yaml | 1104 +++++++++++ stable/focalboard/1.9.2/templates/common.yaml | 1 + stable/focalboard/1.9.2/test_values.yaml | 39 + stable/focalboard/1.9.2/values.yaml | 0 stable/freeradius/1.7.2/CONFIG.md | 8 + stable/freeradius/1.7.2/Chart.lock | 6 + stable/freeradius/1.7.2/Chart.yaml | 27 + stable/freeradius/1.7.2/README.md | 43 + stable/freeradius/1.7.2/app-readme.md | 4 + .../freeradius/1.7.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/freeradius/1.7.2/ix_values.yaml | 34 + stable/freeradius/1.7.2/questions.yaml | 1037 ++++++++++ stable/freeradius/1.7.2/templates/common.yaml | 5 + stable/freeradius/1.7.2/test_values.yaml | 47 + stable/freeradius/1.7.2/values.yaml | 0 stable/freshrss/6.11.2/CONFIG.md | 8 + stable/freshrss/6.11.2/Chart.lock | 6 + stable/freshrss/6.11.2/Chart.yaml | 24 + stable/freshrss/6.11.2/README.md | 43 + stable/freshrss/6.11.2/app-readme.md | 4 + .../freshrss/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/freshrss/6.11.2/ix_values.yaml | 16 + stable/freshrss/6.11.2/questions.yaml | 1066 +++++++++++ stable/freshrss/6.11.2/templates/common.yaml | 1 + stable/freshrss/6.11.2/test_values.yaml | 28 + stable/freshrss/6.11.2/values.yaml | 0 stable/gaps/6.11.2/CONFIG.md | 8 + stable/gaps/6.11.2/Chart.lock | 6 + stable/gaps/6.11.2/Chart.yaml | 25 + stable/gaps/6.11.2/README.md | 42 + stable/gaps/6.11.2/app-readme.md | 4 + stable/gaps/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/gaps/6.11.2/ix_values.yaml | 15 + stable/gaps/6.11.2/questions.yaml | 1104 +++++++++++ stable/gaps/6.11.2/templates/common.yaml | 1 + stable/gaps/6.11.2/test_values.yaml | 26 + stable/gaps/6.11.2/values.yaml | 0 stable/gonic/1.9.2/CONFIG.md | 8 + stable/gonic/1.9.2/Chart.lock | 6 + stable/gonic/1.9.2/Chart.yaml | 22 + stable/gonic/1.9.2/README.md | 43 + stable/gonic/1.9.2/app-readme.md | 4 + stable/gonic/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/gonic/1.9.2/ci/ct-values.yaml | 21 + stable/gonic/1.9.2/ix_values.yaml | 15 + stable/gonic/1.9.2/questions.yaml | 1104 +++++++++++ stable/gonic/1.9.2/templates/common.yaml | 1 + stable/gonic/1.9.2/test_values.yaml | 41 + stable/gonic/1.9.2/values.yaml | 0 stable/grocy/6.11.2/CONFIG.md | 8 + stable/grocy/6.11.2/Chart.lock | 6 + stable/grocy/6.11.2/Chart.yaml | 23 + stable/grocy/6.11.2/README.md | 42 + stable/grocy/6.11.2/app-readme.md | 4 + stable/grocy/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/grocy/6.11.2/ix_values.yaml | 16 + stable/grocy/6.11.2/questions.yaml | 1065 +++++++++++ stable/grocy/6.11.2/templates/common.yaml | 1 + stable/grocy/6.11.2/test_values.yaml | 28 + stable/grocy/6.11.2/values.yaml | 0 stable/handbrake/6.11.2/CONFIG.md | 8 + stable/handbrake/6.11.2/Chart.lock | 6 + stable/handbrake/6.11.2/Chart.yaml | 30 + stable/handbrake/6.11.2/README.md | 44 + stable/handbrake/6.11.2/app-readme.md | 4 + .../handbrake/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/handbrake/6.11.2/ix_values.yaml | 20 + stable/handbrake/6.11.2/questions.yaml | 1282 +++++++++++++ stable/handbrake/6.11.2/templates/common.yaml | 1 + stable/handbrake/6.11.2/test_values.yaml | 53 + stable/handbrake/6.11.2/values.yaml | 0 stable/haste-server/1.11.2/CONFIG.md | 8 + stable/haste-server/1.11.2/Chart.lock | 6 + stable/haste-server/1.11.2/Chart.yaml | 24 + stable/haste-server/1.11.2/README.md | 43 + stable/haste-server/1.11.2/app-readme.md | 4 + .../1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/haste-server/1.11.2/ix_values.yaml | 19 + stable/haste-server/1.11.2/questions.yaml | 1110 +++++++++++ .../haste-server/1.11.2/templates/common.yaml | 1 + stable/haste-server/1.11.2/test_values.yaml | 53 + stable/haste-server/1.11.2/values.yaml | 0 stable/healthchecks/1.9.2/CONFIG.md | 8 + stable/healthchecks/1.9.2/Chart.lock | 6 + stable/healthchecks/1.9.2/Chart.yaml | 25 + stable/healthchecks/1.9.2/README.md | 43 + stable/healthchecks/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/healthchecks/1.9.2/ix_values.yaml | 15 + stable/healthchecks/1.9.2/questions.yaml | 1090 +++++++++++ .../healthchecks/1.9.2/templates/common.yaml | 1 + stable/healthchecks/1.9.2/test_values.yaml | 44 + stable/healthchecks/1.9.2/values.yaml | 0 stable/heimdall/6.11.2/CONFIG.md | 8 + stable/heimdall/6.11.2/Chart.lock | 6 + stable/heimdall/6.11.2/Chart.yaml | 21 + stable/heimdall/6.11.2/README.md | 38 + stable/heimdall/6.11.2/app-readme.md | 4 + .../heimdall/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/heimdall/6.11.2/ix_values.yaml | 16 + stable/heimdall/6.11.2/questions.yaml | 1066 +++++++++++ stable/heimdall/6.11.2/templates/common.yaml | 1 + stable/heimdall/6.11.2/test_values.yaml | 32 + stable/heimdall/6.11.2/values.yaml | 0 stable/home-assistant/6.11.2/CONFIG.md | 8 + stable/home-assistant/6.11.2/Chart.lock | 6 + stable/home-assistant/6.11.2/Chart.yaml | 28 + stable/home-assistant/6.11.2/README.md | 43 + stable/home-assistant/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/home-assistant/6.11.2/ix_values.yaml | 15 + stable/home-assistant/6.11.2/questions.yaml | 1121 +++++++++++ .../6.11.2/templates/common.yaml | 1 + .../6.11.2/templates/secret.yaml | 15 + stable/home-assistant/6.11.2/test_values.yaml | 85 + stable/home-assistant/6.11.2/values.yaml | 0 stable/hyperion-ng/1.9.2/CONFIG.md | 8 + stable/hyperion-ng/1.9.2/Chart.lock | 6 + stable/hyperion-ng/1.9.2/Chart.yaml | 22 + stable/hyperion-ng/1.9.2/README.md | 43 + stable/hyperion-ng/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/hyperion-ng/1.9.2/ix_values.yaml | 15 + stable/hyperion-ng/1.9.2/questions.yaml | 1407 ++++++++++++++ .../hyperion-ng/1.9.2/templates/common.yaml | 1 + stable/hyperion-ng/1.9.2/test_values.yaml | 56 + stable/hyperion-ng/1.9.2/values.yaml | 0 stable/jackett/6.11.3/CONFIG.md | 8 + stable/jackett/6.11.3/Chart.lock | 6 + stable/jackett/6.11.3/Chart.yaml | 27 + stable/jackett/6.11.3/README.md | 42 + stable/jackett/6.11.3/app-readme.md | 4 + .../jackett/6.11.3/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/jackett/6.11.3/ix_values.yaml | 25 + stable/jackett/6.11.3/questions.yaml | 1224 ++++++++++++ stable/jackett/6.11.3/templates/common.yaml | 1 + stable/jackett/6.11.3/test_values.yaml | 41 + stable/jackett/6.11.3/values.yaml | 0 stable/jellyfin/6.11.2/CONFIG.md | 8 + stable/jellyfin/6.11.2/Chart.lock | 6 + stable/jellyfin/6.11.2/Chart.yaml | 27 + stable/jellyfin/6.11.2/README.md | 42 + stable/jellyfin/6.11.2/app-readme.md | 4 + .../jellyfin/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/jellyfin/6.11.2/ix_values.yaml | 15 + stable/jellyfin/6.11.2/questions.yaml | 1113 +++++++++++ stable/jellyfin/6.11.2/templates/common.yaml | 1 + stable/jellyfin/6.11.2/test_values.yaml | 31 + stable/jellyfin/6.11.2/values.yaml | 0 stable/kms/6.11.2/CONFIG.md | 8 + stable/kms/6.11.2/Chart.lock | 6 + stable/kms/6.11.2/Chart.yaml | 25 + stable/kms/6.11.2/README.md | 42 + stable/kms/6.11.2/app-readme.md | 4 + stable/kms/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/kms/6.11.2/ix_values.yaml | 16 + stable/kms/6.11.2/questions.yaml | 833 ++++++++ stable/kms/6.11.2/templates/common.yaml | 1 + stable/kms/6.11.2/test_values.yaml | 16 + stable/kms/6.11.2/values.yaml | 0 stable/komga/1.9.3/CONFIG.md | 8 + stable/komga/1.9.3/Chart.lock | 6 + stable/komga/1.9.3/Chart.yaml | 24 + stable/komga/1.9.3/README.md | 43 + stable/komga/1.9.3/app-readme.md | 4 + stable/komga/1.9.3/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/komga/1.9.3/ix_values.yaml | 15 + stable/komga/1.9.3/questions.yaml | 1214 ++++++++++++ stable/komga/1.9.3/templates/common.yaml | 1 + stable/komga/1.9.3/test_values.yaml | 40 + stable/komga/1.9.3/values.yaml | 0 stable/lazylibrarian/6.11.2/CONFIG.md | 8 + stable/lazylibrarian/6.11.2/Chart.lock | 6 + stable/lazylibrarian/6.11.2/Chart.yaml | 27 + stable/lazylibrarian/6.11.2/README.md | 43 + stable/lazylibrarian/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lazylibrarian/6.11.2/ix_values.yaml | 16 + stable/lazylibrarian/6.11.2/questions.yaml | 1066 +++++++++++ .../6.11.2/templates/common.yaml | 1 + stable/lazylibrarian/6.11.2/test_values.yaml | 28 + stable/lazylibrarian/6.11.2/values.yaml | 0 stable/librespeed/1.9.2/CONFIG.md | 8 + stable/librespeed/1.9.2/Chart.lock | 6 + stable/librespeed/1.9.2/Chart.yaml | 23 + stable/librespeed/1.9.2/README.md | 44 + stable/librespeed/1.9.2/app-readme.md | 4 + .../librespeed/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/librespeed/1.9.2/ci/ct-values.yaml | 2 + stable/librespeed/1.9.2/ix_values.yaml | 15 + stable/librespeed/1.9.2/questions.yaml | 1067 +++++++++++ stable/librespeed/1.9.2/templates/common.yaml | 1 + stable/librespeed/1.9.2/test_values.yaml | 49 + stable/librespeed/1.9.2/values.yaml | 0 stable/lidarr/6.11.2/CONFIG.md | 8 + stable/lidarr/6.11.2/Chart.lock | 6 + stable/lidarr/6.11.2/Chart.yaml | 27 + stable/lidarr/6.11.2/README.md | 42 + stable/lidarr/6.11.2/app-readme.md | 4 + stable/lidarr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lidarr/6.11.2/ix_values.yaml | 37 + stable/lidarr/6.11.2/questions.yaml | 1104 +++++++++++ stable/lidarr/6.11.2/templates/common.yaml | 1 + stable/lidarr/6.11.2/test_values.yaml | 49 + stable/lidarr/6.11.2/values.yaml | 0 stable/littlelink/1.5.2/CONFIG.md | 8 + stable/littlelink/1.5.2/Chart.lock | 6 + stable/littlelink/1.5.2/Chart.yaml | 26 + stable/littlelink/1.5.2/README.md | 43 + stable/littlelink/1.5.2/app-readme.md | 4 + .../littlelink/1.5.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/littlelink/1.5.2/ix_values.yaml | 19 + stable/littlelink/1.5.2/questions.yaml | 1139 +++++++++++ .../littlelink/1.5.2/templates/_configmap.tpl | 127 ++ stable/littlelink/1.5.2/templates/common.yaml | 8 + stable/littlelink/1.5.2/test_values.yaml | 42 + stable/littlelink/1.5.2/values.yaml | 0 stable/lychee/6.11.2/CONFIG.md | 8 + stable/lychee/6.11.2/Chart.lock | 6 + stable/lychee/6.11.2/Chart.yaml | 26 + stable/lychee/6.11.2/README.md | 43 + stable/lychee/6.11.2/app-readme.md | 4 + stable/lychee/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lychee/6.11.2/ix_values.yaml | 16 + stable/lychee/6.11.2/questions.yaml | 1066 +++++++++++ stable/lychee/6.11.2/templates/common.yaml | 1 + stable/lychee/6.11.2/test_values.yaml | 28 + stable/lychee/6.11.2/values.yaml | 0 stable/mealie/1.11.2/CONFIG.md | 8 + stable/mealie/1.11.2/Chart.lock | 6 + stable/mealie/1.11.2/Chart.yaml | 22 + stable/mealie/1.11.2/README.md | 42 + stable/mealie/1.11.2/app-readme.md | 4 + stable/mealie/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mealie/1.11.2/ix_values.yaml | 19 + stable/mealie/1.11.2/questions.yaml | 1062 +++++++++++ stable/mealie/1.11.2/templates/common.yaml | 1 + stable/mealie/1.11.2/test_values.yaml | 46 + stable/mealie/1.11.2/values.yaml | 0 stable/mosquitto/1.11.2/CONFIG.md | 8 + stable/mosquitto/1.11.2/Chart.lock | 6 + stable/mosquitto/1.11.2/Chart.yaml | 24 + stable/mosquitto/1.11.2/README.md | 42 + stable/mosquitto/1.11.2/app-readme.md | 4 + .../mosquitto/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mosquitto/1.11.2/ix_values.yaml | 18 + stable/mosquitto/1.11.2/questions.yaml | 1226 ++++++++++++ stable/mosquitto/1.11.2/templates/common.yaml | 17 + .../mosquitto/1.11.2/templates/configmap.yaml | 22 + stable/mosquitto/1.11.2/test_values.yaml | 43 + stable/mosquitto/1.11.2/values.yaml | 0 stable/mylar/1.9.2/CONFIG.md | 8 + stable/mylar/1.9.2/Chart.lock | 6 + stable/mylar/1.9.2/Chart.yaml | 22 + stable/mylar/1.9.2/README.md | 44 + stable/mylar/1.9.2/app-readme.md | 4 + stable/mylar/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mylar/1.9.2/ix_values.yaml | 15 + stable/mylar/1.9.2/questions.yaml | 1116 +++++++++++ stable/mylar/1.9.2/templates/common.yaml | 1 + stable/mylar/1.9.2/test_values.yaml | 48 + stable/mylar/1.9.2/values.yaml | 0 stable/navidrome/6.11.2/CONFIG.md | 8 + stable/navidrome/6.11.2/Chart.lock | 6 + stable/navidrome/6.11.2/Chart.yaml | 25 + stable/navidrome/6.11.2/README.md | 43 + stable/navidrome/6.11.2/app-readme.md | 4 + .../navidrome/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/navidrome/6.11.2/ix_values.yaml | 15 + stable/navidrome/6.11.2/questions.yaml | 1105 +++++++++++ stable/navidrome/6.11.2/templates/common.yaml | 1 + stable/navidrome/6.11.2/test_values.yaml | 30 + stable/navidrome/6.11.2/values.yaml | 0 stable/node-red/6.11.2/CONFIG.md | 8 + stable/node-red/6.11.2/Chart.lock | 6 + stable/node-red/6.11.2/Chart.yaml | 23 + stable/node-red/6.11.2/README.md | 42 + stable/node-red/6.11.2/app-readme.md | 4 + .../node-red/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/node-red/6.11.2/ix_values.yaml | 15 + stable/node-red/6.11.2/questions.yaml | 1105 +++++++++++ stable/node-red/6.11.2/templates/common.yaml | 1 + stable/node-red/6.11.2/test_values.yaml | 32 + stable/node-red/6.11.2/values.yaml | 0 stable/nullserv/1.9.2/CONFIG.md | 8 + stable/nullserv/1.9.2/Chart.lock | 6 + stable/nullserv/1.9.2/Chart.yaml | 20 + stable/nullserv/1.9.2/README.md | 42 + stable/nullserv/1.9.2/app-readme.md | 4 + .../nullserv/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nullserv/1.9.2/ix_values.yaml | 26 + stable/nullserv/1.9.2/questions.yaml | 1207 ++++++++++++ stable/nullserv/1.9.2/templates/common.yaml | 1 + stable/nullserv/1.9.2/test_values.yaml | 49 + stable/nullserv/1.9.2/values.yaml | 0 stable/nzbget/6.11.2/CONFIG.md | 8 + stable/nzbget/6.11.2/Chart.lock | 6 + stable/nzbget/6.11.2/Chart.yaml | 23 + stable/nzbget/6.11.2/README.md | 42 + stable/nzbget/6.11.2/app-readme.md | 4 + stable/nzbget/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nzbget/6.11.2/ix_values.yaml | 25 + stable/nzbget/6.11.2/questions.yaml | 1105 +++++++++++ stable/nzbget/6.11.2/templates/common.yaml | 1 + stable/nzbget/6.11.2/test_values.yaml | 33 + stable/nzbget/6.11.2/values.yaml | 0 stable/nzbhydra/6.11.2/CONFIG.md | 8 + stable/nzbhydra/6.11.2/Chart.lock | 6 + stable/nzbhydra/6.11.2/Chart.yaml | 20 + stable/nzbhydra/6.11.2/README.md | 44 + stable/nzbhydra/6.11.2/app-readme.md | 4 + .../nzbhydra/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nzbhydra/6.11.2/ix_values.yaml | 51 + stable/nzbhydra/6.11.2/questions.yaml | 1105 +++++++++++ stable/nzbhydra/6.11.2/templates/common.yaml | 1 + stable/nzbhydra/6.11.2/test_values.yaml | 64 + stable/nzbhydra/6.11.2/values.yaml | 0 stable/octoprint/1.9.2/CONFIG.md | 8 + stable/octoprint/1.9.2/Chart.lock | 6 + stable/octoprint/1.9.2/Chart.yaml | 23 + stable/octoprint/1.9.2/README.md | 43 + stable/octoprint/1.9.2/app-readme.md | 4 + .../octoprint/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/octoprint/1.9.2/ix_values.yaml | 15 + stable/octoprint/1.9.2/questions.yaml | 1114 +++++++++++ stable/octoprint/1.9.2/templates/common.yaml | 1 + stable/octoprint/1.9.2/test_values.yaml | 56 + stable/octoprint/1.9.2/values.yaml | 0 stable/omada-controller/1.9.2/CONFIG.md | 8 + stable/omada-controller/1.9.2/Chart.lock | 6 + stable/omada-controller/1.9.2/Chart.yaml | 22 + stable/omada-controller/1.9.2/README.md | 43 + stable/omada-controller/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/omada-controller/1.9.2/ix_values.yaml | 15 + stable/omada-controller/1.9.2/questions.yaml | 1104 +++++++++++ .../1.9.2/templates/common.yaml | 1 + .../omada-controller/1.9.2/test_values.yaml | 38 + stable/omada-controller/1.9.2/values.yaml | 0 stable/ombi/6.11.2/CONFIG.md | 8 + stable/ombi/6.11.2/Chart.lock | 6 + stable/ombi/6.11.2/Chart.yaml | 30 + stable/ombi/6.11.2/README.md | 42 + stable/ombi/6.11.2/app-readme.md | 4 + stable/ombi/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/ombi/6.11.2/ix_values.yaml | 15 + stable/ombi/6.11.2/questions.yaml | 1104 +++++++++++ stable/ombi/6.11.2/templates/common.yaml | 1 + stable/ombi/6.11.2/test_values.yaml | 42 + stable/ombi/6.11.2/values.yaml | 0 stable/openldap/1.7.2/CONFIG.md | 8 + stable/openldap/1.7.2/Chart.lock | 6 + stable/openldap/1.7.2/Chart.yaml | 29 + stable/openldap/1.7.2/README.md | 43 + stable/openldap/1.7.2/app-readme.md | 4 + .../openldap/1.7.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/openldap/1.7.2/ix_values.yaml | 50 + stable/openldap/1.7.2/questions.yaml | 1062 +++++++++++ .../openldap/1.7.2/templates/_configmap.tpl | 21 + stable/openldap/1.7.2/templates/common.yaml | 8 + stable/openldap/1.7.2/test_values.yaml | 88 + stable/openldap/1.7.2/values.yaml | 0 stable/organizr/6.11.2/CONFIG.md | 8 + stable/organizr/6.11.2/Chart.lock | 6 + stable/organizr/6.11.2/Chart.yaml | 23 + stable/organizr/6.11.2/README.md | 43 + stable/organizr/6.11.2/app-readme.md | 4 + .../organizr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/organizr/6.11.2/ix_values.yaml | 16 + stable/organizr/6.11.2/questions.yaml | 1176 ++++++++++++ stable/organizr/6.11.2/templates/common.yaml | 1 + stable/organizr/6.11.2/test_values.yaml | 28 + stable/organizr/6.11.2/values.yaml | 0 stable/overseerr/1.9.2/CONFIG.md | 8 + stable/overseerr/1.9.2/Chart.lock | 6 + stable/overseerr/1.9.2/Chart.yaml | 26 + stable/overseerr/1.9.2/README.md | 43 + stable/overseerr/1.9.2/app-readme.md | 4 + .../overseerr/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/overseerr/1.9.2/ix_values.yaml | 15 + stable/overseerr/1.9.2/questions.yaml | 1110 +++++++++++ stable/overseerr/1.9.2/templates/common.yaml | 1 + stable/overseerr/1.9.2/test_values.yaml | 41 + stable/overseerr/1.9.2/values.yaml | 0 stable/owncast/1.9.2/CONFIG.md | 8 + stable/owncast/1.9.2/Chart.lock | 6 + stable/owncast/1.9.2/Chart.yaml | 25 + stable/owncast/1.9.2/README.md | 43 + stable/owncast/1.9.2/app-readme.md | 4 + stable/owncast/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/owncast/1.9.2/ix_values.yaml | 15 + stable/owncast/1.9.2/questions.yaml | 1201 ++++++++++++ stable/owncast/1.9.2/templates/common.yaml | 1 + stable/owncast/1.9.2/test_values.yaml | 44 + stable/owncast/1.9.2/values.yaml | 0 stable/owncloud-ocis/1.9.2/CONFIG.md | 8 + stable/owncloud-ocis/1.9.2/Chart.lock | 6 + stable/owncloud-ocis/1.9.2/Chart.yaml | 28 + stable/owncloud-ocis/1.9.2/README.md | 43 + stable/owncloud-ocis/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/owncloud-ocis/1.9.2/ix_values.yaml | 15 + stable/owncloud-ocis/1.9.2/questions.yaml | 1104 +++++++++++ .../owncloud-ocis/1.9.2/templates/common.yaml | 1 + stable/owncloud-ocis/1.9.2/test_values.yaml | 42 + stable/owncloud-ocis/1.9.2/values.yaml | 0 stable/pgadmin/1.8.2/CONFIG.md | 8 + stable/pgadmin/1.8.2/Chart.lock | 6 + stable/pgadmin/1.8.2/Chart.yaml | 27 + stable/pgadmin/1.8.2/README.md | 42 + stable/pgadmin/1.8.2/app-readme.md | 4 + stable/pgadmin/1.8.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/pgadmin/1.8.2/ix_values.yaml | 16 + stable/pgadmin/1.8.2/questions.yaml | 1113 +++++++++++ stable/pgadmin/1.8.2/templates/common.yaml | 1 + stable/pgadmin/1.8.2/test_values.yaml | 28 + stable/pgadmin/1.8.2/values.yaml | 0 stable/photoprism/1.9.2/CONFIG.md | 8 + stable/photoprism/1.9.2/Chart.lock | 6 + stable/photoprism/1.9.2/Chart.yaml | 25 + stable/photoprism/1.9.2/README.md | 43 + stable/photoprism/1.9.2/app-readme.md | 4 + .../photoprism/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/photoprism/1.9.2/ix_values.yaml | 15 + stable/photoprism/1.9.2/questions.yaml | 1141 +++++++++++ stable/photoprism/1.9.2/templates/common.yaml | 1 + stable/photoprism/1.9.2/test_values.yaml | 57 + stable/photoprism/1.9.2/values.yaml | 0 stable/phpldapadmin/1.8.2/CONFIG.md | 8 + stable/phpldapadmin/1.8.2/Chart.lock | 6 + stable/phpldapadmin/1.8.2/Chart.yaml | 27 + stable/phpldapadmin/1.8.2/README.md | 42 + stable/phpldapadmin/1.8.2/app-readme.md | 4 + .../1.8.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/phpldapadmin/1.8.2/ix_values.yaml | 16 + stable/phpldapadmin/1.8.2/questions.yaml | 1000 ++++++++++ .../phpldapadmin/1.8.2/templates/common.yaml | 1 + stable/phpldapadmin/1.8.2/test_values.yaml | 21 + stable/phpldapadmin/1.8.2/values.yaml | 0 stable/piaware/1.9.2/CONFIG.md | 8 + stable/piaware/1.9.2/Chart.lock | 6 + stable/piaware/1.9.2/Chart.yaml | 22 + stable/piaware/1.9.2/README.md | 42 + stable/piaware/1.9.2/app-readme.md | 4 + stable/piaware/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/piaware/1.9.2/ci/ct-values.yaml | 3 + stable/piaware/1.9.2/ix_values.yaml | 15 + stable/piaware/1.9.2/questions.yaml | 1144 +++++++++++ stable/piaware/1.9.2/templates/common.yaml | 1 + stable/piaware/1.9.2/test_values.yaml | 55 + stable/piaware/1.9.2/values.yaml | 0 stable/plex/5.11.2/CONFIG.md | 8 + stable/plex/5.11.2/Chart.lock | 6 + stable/plex/5.11.2/Chart.yaml | 25 + stable/plex/5.11.2/README.md | 38 + stable/plex/5.11.2/app-readme.md | 4 + stable/plex/5.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/plex/5.11.2/ix_values.yaml | 15 + stable/plex/5.11.2/questions.yaml | 1132 +++++++++++ stable/plex/5.11.2/templates/common.yaml | 1 + stable/plex/5.11.2/test_values.yaml | 34 + stable/plex/5.11.2/values.yaml | 0 stable/podgrab/4.11.2/CONFIG.md | 8 + stable/podgrab/4.11.2/Chart.lock | 6 + stable/podgrab/4.11.2/Chart.yaml | 27 + stable/podgrab/4.11.2/README.md | 43 + stable/podgrab/4.11.2/app-readme.md | 4 + .../podgrab/4.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/podgrab/4.11.2/ix_values.yaml | 26 + stable/podgrab/4.11.2/questions.yaml | 1113 +++++++++++ stable/podgrab/4.11.2/templates/common.yaml | 1 + stable/podgrab/4.11.2/test_values.yaml | 61 + stable/podgrab/4.11.2/values.yaml | 0 stable/postgresql/1.5.2/CONFIG.md | 8 + stable/postgresql/1.5.2/Chart.lock | 6 + stable/postgresql/1.5.2/Chart.yaml | 28 + stable/postgresql/1.5.2/README.md | 42 + stable/postgresql/1.5.2/app-readme.md | 4 + .../postgresql/1.5.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/postgresql/1.5.2/ix_values.yaml | 28 + stable/postgresql/1.5.2/questions.yaml | 1067 +++++++++++ .../templates/backup-postgres-config.yaml | 15 + stable/postgresql/1.5.2/templates/common.yaml | 2 + stable/postgresql/1.5.2/templates/secret.yaml | 13 + .../upgrade-backup-postgres-hook.yaml | 56 + stable/postgresql/1.5.2/test_values.yaml | 50 + stable/postgresql/1.5.2/values.yaml | 0 stable/pretend-youre-xyzzy/1.9.2/CONFIG.md | 8 + stable/pretend-youre-xyzzy/1.9.2/Chart.lock | 6 + stable/pretend-youre-xyzzy/1.9.2/Chart.yaml | 24 + stable/pretend-youre-xyzzy/1.9.2/README.md | 43 + .../pretend-youre-xyzzy/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../pretend-youre-xyzzy/1.9.2/ix_values.yaml | 15 + .../pretend-youre-xyzzy/1.9.2/questions.yaml | 987 ++++++++++ .../1.9.2/templates/common.yaml | 1 + .../1.9.2/test_values.yaml | 22 + stable/pretend-youre-xyzzy/1.9.2/values.yaml | 0 stable/protonmail-bridge/1.9.2/CONFIG.md | 8 + stable/protonmail-bridge/1.9.2/Chart.lock | 6 + stable/protonmail-bridge/1.9.2/Chart.yaml | 22 + stable/protonmail-bridge/1.9.2/README.md | 43 + stable/protonmail-bridge/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/protonmail-bridge/1.9.2/ix_values.yaml | 21 + stable/protonmail-bridge/1.9.2/questions.yaml | 1116 +++++++++++ .../1.9.2/templates/common.yaml | 1 + .../protonmail-bridge/1.9.2/test_values.yaml | 43 + stable/protonmail-bridge/1.9.2/values.yaml | 0 stable/prowlarr/1.11.3/CONFIG.md | 8 + stable/prowlarr/1.11.3/Chart.lock | 6 + stable/prowlarr/1.11.3/Chart.yaml | 24 + stable/prowlarr/1.11.3/README.md | 43 + stable/prowlarr/1.11.3/app-readme.md | 4 + .../prowlarr/1.11.3/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/prowlarr/1.11.3/ix_values.yaml | 19 + stable/prowlarr/1.11.3/questions.yaml | 1106 +++++++++++ stable/prowlarr/1.11.3/templates/common.yaml | 1 + stable/prowlarr/1.11.3/test_values.yaml | 48 + stable/prowlarr/1.11.3/values.yaml | 0 stable/pyload/1.9.2/CONFIG.md | 8 + stable/pyload/1.9.2/Chart.lock | 6 + stable/pyload/1.9.2/Chart.yaml | 24 + stable/pyload/1.9.2/README.md | 43 + stable/pyload/1.9.2/app-readme.md | 4 + stable/pyload/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/pyload/1.9.2/ix_values.yaml | 15 + stable/pyload/1.9.2/questions.yaml | 1116 +++++++++++ stable/pyload/1.9.2/templates/common.yaml | 1 + stable/pyload/1.9.2/test_values.yaml | 44 + stable/pyload/1.9.2/values.yaml | 0 stable/qbittorrent/6.11.2/CONFIG.md | 8 + stable/qbittorrent/6.11.2/Chart.lock | 6 + stable/qbittorrent/6.11.2/Chart.yaml | 22 + stable/qbittorrent/6.11.2/README.md | 38 + stable/qbittorrent/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/qbittorrent/6.11.2/ix_values.yaml | 15 + stable/qbittorrent/6.11.2/questions.yaml | 1250 ++++++++++++ .../6.11.2/templates/_configmap.tpl | 32 + .../qbittorrent/6.11.2/templates/common.yaml | 6 + stable/qbittorrent/6.11.2/test_values.yaml | 54 + stable/qbittorrent/6.11.2/values.yaml | 0 stable/radarr/6.11.2/CONFIG.md | 8 + stable/radarr/6.11.2/Chart.lock | 6 + stable/radarr/6.11.2/Chart.yaml | 27 + stable/radarr/6.11.2/README.md | 42 + stable/radarr/6.11.2/app-readme.md | 4 + stable/radarr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/radarr/6.11.2/ix_values.yaml | 37 + stable/radarr/6.11.2/questions.yaml | 1104 +++++++++++ stable/radarr/6.11.2/templates/common.yaml | 1 + stable/radarr/6.11.2/test_values.yaml | 49 + stable/radarr/6.11.2/values.yaml | 0 stable/readarr/6.11.2/CONFIG.md | 8 + stable/readarr/6.11.2/Chart.lock | 6 + stable/readarr/6.11.2/Chart.yaml | 30 + stable/readarr/6.11.2/README.md | 43 + stable/readarr/6.11.2/app-readme.md | 4 + .../readarr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/readarr/6.11.2/ix_values.yaml | 37 + stable/readarr/6.11.2/questions.yaml | 1105 +++++++++++ stable/readarr/6.11.2/templates/common.yaml | 1 + stable/readarr/6.11.2/test_values.yaml | 49 + stable/readarr/6.11.2/values.yaml | 0 stable/reg/1.11.2/CONFIG.md | 8 + stable/reg/1.11.2/Chart.lock | 6 + stable/reg/1.11.2/Chart.yaml | 22 + stable/reg/1.11.2/README.md | 43 + stable/reg/1.11.2/app-readme.md | 4 + stable/reg/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/reg/1.11.2/ci/ct-values.yaml | 2 + stable/reg/1.11.2/ix_values.yaml | 19 + stable/reg/1.11.2/questions.yaml | 1100 +++++++++++ stable/reg/1.11.2/templates/common.yaml | 1 + stable/reg/1.11.2/test_values.yaml | 40 + stable/reg/1.11.2/values.yaml | 0 stable/resilio-sync/1.9.2/CONFIG.md | 8 + stable/resilio-sync/1.9.2/Chart.lock | 6 + stable/resilio-sync/1.9.2/Chart.yaml | 24 + stable/resilio-sync/1.9.2/README.md | 42 + stable/resilio-sync/1.9.2/app-readme.md | 4 + .../1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/resilio-sync/1.9.2/ix_values.yaml | 15 + stable/resilio-sync/1.9.2/questions.yaml | 1293 +++++++++++++ .../resilio-sync/1.9.2/templates/common.yaml | 1 + stable/resilio-sync/1.9.2/test_values.yaml | 75 + stable/resilio-sync/1.9.2/values.yaml | 0 stable/sabnzbd/6.11.2/CONFIG.md | 8 + stable/sabnzbd/6.11.2/Chart.lock | 6 + stable/sabnzbd/6.11.2/Chart.yaml | 23 + stable/sabnzbd/6.11.2/README.md | 42 + stable/sabnzbd/6.11.2/app-readme.md | 4 + .../sabnzbd/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/sabnzbd/6.11.2/ix_values.yaml | 15 + stable/sabnzbd/6.11.2/questions.yaml | 1112 +++++++++++ stable/sabnzbd/6.11.2/templates/common.yaml | 1 + stable/sabnzbd/6.11.2/test_values.yaml | 28 + stable/sabnzbd/6.11.2/values.yaml | 0 stable/ser2sock/1.9.2/CONFIG.md | 8 + stable/ser2sock/1.9.2/Chart.lock | 6 + stable/ser2sock/1.9.2/Chart.yaml | 21 + stable/ser2sock/1.9.2/README.md | 43 + stable/ser2sock/1.9.2/app-readme.md | 4 + .../ser2sock/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/ser2sock/1.9.2/ix_values.yaml | 15 + stable/ser2sock/1.9.2/questions.yaml | 1165 +++++++++++ stable/ser2sock/1.9.2/templates/common.yaml | 1 + stable/ser2sock/1.9.2/test_values.yaml | 63 + stable/ser2sock/1.9.2/values.yaml | 0 stable/sonarr/6.11.2/CONFIG.md | 8 + stable/sonarr/6.11.2/Chart.lock | 6 + stable/sonarr/6.11.2/Chart.yaml | 27 + stable/sonarr/6.11.2/README.md | 42 + stable/sonarr/6.11.2/app-readme.md | 4 + stable/sonarr/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/sonarr/6.11.2/ix_values.yaml | 37 + stable/sonarr/6.11.2/questions.yaml | 1104 +++++++++++ stable/sonarr/6.11.2/templates/common.yaml | 1 + stable/sonarr/6.11.2/test_values.yaml | 49 + stable/sonarr/6.11.2/values.yaml | 0 stable/stash/1.9.3/CONFIG.md | 8 + stable/stash/1.9.3/Chart.lock | 6 + stable/stash/1.9.3/Chart.yaml | 21 + stable/stash/1.9.3/README.md | 43 + stable/stash/1.9.3/app-readme.md | 4 + stable/stash/1.9.3/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/stash/1.9.3/ci/ct-values.yaml | 15 + stable/stash/1.9.3/ix_values.yaml | 15 + stable/stash/1.9.3/questions.yaml | 1060 ++++++++++ stable/stash/1.9.3/templates/common.yaml | 1 + stable/stash/1.9.3/test_values.yaml | 47 + stable/stash/1.9.3/values.yaml | 0 stable/syncthing/6.11.2/CONFIG.md | 8 + stable/syncthing/6.11.2/Chart.lock | 6 + stable/syncthing/6.11.2/Chart.yaml | 27 + stable/syncthing/6.11.2/README.md | 44 + stable/syncthing/6.11.2/app-readme.md | 4 + .../syncthing/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/syncthing/6.11.2/ix_values.yaml | 15 + stable/syncthing/6.11.2/questions.yaml | 1362 +++++++++++++ stable/syncthing/6.11.2/templates/common.yaml | 1 + stable/syncthing/6.11.2/test_values.yaml | 40 + stable/syncthing/6.11.2/values.yaml | 0 stable/tautulli/6.11.2/CONFIG.md | 8 + stable/tautulli/6.11.2/Chart.lock | 6 + stable/tautulli/6.11.2/Chart.yaml | 26 + stable/tautulli/6.11.2/README.md | 42 + stable/tautulli/6.11.2/app-readme.md | 4 + .../tautulli/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/tautulli/6.11.2/ix_values.yaml | 15 + stable/tautulli/6.11.2/questions.yaml | 1104 +++++++++++ stable/tautulli/6.11.2/templates/common.yaml | 1 + stable/tautulli/6.11.2/test_values.yaml | 28 + stable/tautulli/6.11.2/values.yaml | 0 stable/thelounge/1.11.2/CONFIG.md | 8 + stable/thelounge/1.11.2/Chart.lock | 6 + stable/thelounge/1.11.2/Chart.yaml | 24 + stable/thelounge/1.11.2/README.md | 42 + stable/thelounge/1.11.2/app-readme.md | 4 + .../thelounge/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/thelounge/1.11.2/ix_values.yaml | 19 + stable/thelounge/1.11.2/questions.yaml | 1062 +++++++++++ stable/thelounge/1.11.2/templates/common.yaml | 1 + stable/thelounge/1.11.2/test_values.yaml | 46 + stable/thelounge/1.11.2/values.yaml | 0 stable/traefik/6.13.1/CONFIG.md | 8 + stable/traefik/6.13.1/Chart.lock | 6 + stable/traefik/6.13.1/Chart.yaml | 29 + stable/traefik/6.13.1/LICENSE | 202 ++ stable/traefik/6.13.1/README.md | 44 + stable/traefik/6.13.1/app-readme.md | 4 + .../traefik/6.13.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/traefik/6.13.1/crds/ingressroute.yaml | 12 + .../traefik/6.13.1/crds/ingressroutetcp.yaml | 12 + .../traefik/6.13.1/crds/ingressrouteudp.yaml | 13 + stable/traefik/6.13.1/crds/middlewares.yaml | 12 + .../6.13.1/crds/serverstransports.yaml | 12 + stable/traefik/6.13.1/crds/tlsoptions.yaml | 12 + stable/traefik/6.13.1/crds/tlsstores.yaml | 13 + .../traefik/6.13.1/crds/traefikservices.yaml | 12 + stable/traefik/6.13.1/ix_values.yaml | 332 ++++ stable/traefik/6.13.1/questions.yaml | 508 +++++ stable/traefik/6.13.1/templates/_helpers.tpl | 62 + .../traefik/6.13.1/templates/_podtemplate.tpl | 265 +++ .../6.13.1/templates/custom/common.yaml | 0 .../custom/middleware-namespace.yaml | 7 + .../custom/middlewares/basic-middleware.yaml | 58 + .../custom/middlewares/basicauth.yaml | 29 + .../templates/custom/middlewares/chain.yaml | 16 + .../custom/middlewares/forwardauth.yaml | 23 + .../custom/middlewares/ratelimit.yaml | 14 + .../custom/middlewares/redirectScheme.yaml | 14 + .../6.13.1/templates/custom/portal.yaml | 45 + .../6.13.1/templates/custom/portalhook.yaml | 12 + .../traefik/6.13.1/templates/daemonset.yaml | 40 + .../dashboard-hook-ingressroute.yaml | 28 + .../traefik/6.13.1/templates/deployment.yaml | 47 + stable/traefik/6.13.1/templates/gateway.yaml | 33 + .../6.13.1/templates/gatewayclass.yaml | 9 + stable/traefik/6.13.1/templates/hpa.yaml | 20 + .../6.13.1/templates/ingressclass.yaml | 23 + .../6.13.1/templates/poddisruptionbudget.yaml | 22 + .../6.13.1/templates/rbac/clusterrole.yaml | 112 ++ .../templates/rbac/clusterrolebinding.yaml | 19 + .../templates/rbac/podsecuritypolicy.yaml | 68 + .../traefik/6.13.1/templates/rbac/role.yaml | 61 + .../6.13.1/templates/rbac/rolebinding.yaml | 19 + .../6.13.1/templates/rbac/serviceaccount.yaml | 15 + stable/traefik/6.13.1/templates/service.yaml | 114 ++ .../traefik/6.13.1/templates/tlsoption.yaml | 14 + stable/traefik/6.13.1/test_values.yaml | 438 +++++ stable/traefik/6.13.1/values.yaml | 0 stable/transmission/6.11.2/CONFIG.md | 8 + stable/transmission/6.11.2/Chart.lock | 6 + stable/transmission/6.11.2/Chart.yaml | 28 + stable/transmission/6.11.2/README.md | 43 + stable/transmission/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/transmission/6.11.2/ix_values.yaml | 50 + stable/transmission/6.11.2/questions.yaml | 1591 ++++++++++++++++ .../transmission/6.11.2/templates/common.yaml | 2 + stable/transmission/6.11.2/test_values.yaml | 108 ++ stable/transmission/6.11.2/values.yaml | 0 stable/truecommand/6.11.2/CONFIG.md | 8 + stable/truecommand/6.11.2/Chart.lock | 6 + stable/truecommand/6.11.2/Chart.yaml | 25 + stable/truecommand/6.11.2/README.md | 42 + stable/truecommand/6.11.2/app-readme.md | 4 + .../6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/truecommand/6.11.2/ix_values.yaml | 15 + stable/truecommand/6.11.2/questions.yaml | 1066 +++++++++++ .../truecommand/6.11.2/templates/common.yaml | 1 + stable/truecommand/6.11.2/test_values.yaml | 28 + stable/truecommand/6.11.2/values.yaml | 0 stable/tvheadend/7.11.2/CONFIG.md | 8 + stable/tvheadend/7.11.2/Chart.lock | 6 + stable/tvheadend/7.11.2/Chart.yaml | 25 + stable/tvheadend/7.11.2/README.md | 42 + stable/tvheadend/7.11.2/app-readme.md | 4 + .../tvheadend/7.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/tvheadend/7.11.2/ix_values.yaml | 15 + stable/tvheadend/7.11.2/questions.yaml | 1161 +++++++++++ stable/tvheadend/7.11.2/templates/common.yaml | 1 + stable/tvheadend/7.11.2/test_values.yaml | 38 + stable/tvheadend/7.11.2/values.yaml | 0 stable/unifi/6.11.2/CONFIG.md | 8 + stable/unifi/6.11.2/Chart.lock | 6 + stable/unifi/6.11.2/Chart.yaml | 24 + stable/unifi/6.11.2/README.md | 43 + stable/unifi/6.11.2/app-readme.md | 4 + stable/unifi/6.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/unifi/6.11.2/ix_values.yaml | 19 + stable/unifi/6.11.2/questions.yaml | 1257 ++++++++++++ stable/unifi/6.11.2/templates/common.yaml | 1 + stable/unifi/6.11.2/test_values.yaml | 50 + stable/unifi/6.11.2/values.yaml | 0 stable/unpackerr/1.11.2/CONFIG.md | 8 + stable/unpackerr/1.11.2/Chart.lock | 6 + stable/unpackerr/1.11.2/Chart.yaml | 29 + stable/unpackerr/1.11.2/README.md | 43 + stable/unpackerr/1.11.2/app-readme.md | 4 + .../unpackerr/1.11.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/unpackerr/1.11.2/ix_values.yaml | 32 + stable/unpackerr/1.11.2/questions.yaml | 978 ++++++++++ stable/unpackerr/1.11.2/templates/common.yaml | 1 + stable/unpackerr/1.11.2/test_values.yaml | 53 + stable/unpackerr/1.11.2/values.yaml | 0 stable/vaultwarden/5.0.1/CONFIG.md | 8 + stable/vaultwarden/5.0.1/Chart.lock | 9 + stable/vaultwarden/5.0.1/Chart.yaml | 34 + stable/vaultwarden/5.0.1/README.md | 43 + stable/vaultwarden/5.0.1/app-readme.md | 4 + .../5.0.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../5.0.1/charts/postgresql-1.5.1.tgz | Bin 0 -> 32168 bytes stable/vaultwarden/5.0.1/ix_values.yaml | 55 + stable/vaultwarden/5.0.1/questions.yaml | 1497 +++++++++++++++ .../5.0.1/templates/_configmap.tpl | 116 ++ .../vaultwarden/5.0.1/templates/_secrets.tpl | 59 + .../vaultwarden/5.0.1/templates/_validate.tpl | 17 + .../vaultwarden/5.0.1/templates/common.yaml | 11 + stable/vaultwarden/5.0.1/test_values.yaml | 161 ++ stable/vaultwarden/5.0.1/values.yaml | 0 stable/xteve/1.9.2/CONFIG.md | 8 + stable/xteve/1.9.2/Chart.lock | 6 + stable/xteve/1.9.2/Chart.yaml | 24 + stable/xteve/1.9.2/README.md | 43 + stable/xteve/1.9.2/app-readme.md | 4 + stable/xteve/1.9.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/xteve/1.9.2/ix_values.yaml | 15 + stable/xteve/1.9.2/questions.yaml | 1104 +++++++++++ stable/xteve/1.9.2/templates/common.yaml | 1 + stable/xteve/1.9.2/test_values.yaml | 36 + stable/xteve/1.9.2/values.yaml | 0 stable/zwavejs2mqtt/6.11.3/CONFIG.md | 8 + stable/zwavejs2mqtt/6.11.3/Chart.lock | 6 + stable/zwavejs2mqtt/6.11.3/Chart.yaml | 30 + stable/zwavejs2mqtt/6.11.3/README.md | 43 + stable/zwavejs2mqtt/6.11.3/app-readme.md | 4 + .../6.11.3/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/zwavejs2mqtt/6.11.3/ix_values.yaml | 58 + stable/zwavejs2mqtt/6.11.3/questions.yaml | 1233 ++++++++++++ .../zwavejs2mqtt/6.11.3/templates/common.yaml | 1 + stable/zwavejs2mqtt/6.11.3/test_values.yaml | 105 + stable/zwavejs2mqtt/6.11.3/values.yaml | 0 1066 files changed, 120848 insertions(+) create mode 100644 incubator/authelia/1.4.1/CONFIG.md create mode 100644 incubator/authelia/1.4.1/Chart.lock create mode 100644 incubator/authelia/1.4.1/Chart.yaml create mode 100644 incubator/authelia/1.4.1/README.md create mode 100644 incubator/authelia/1.4.1/app-readme.md create mode 100644 incubator/authelia/1.4.1/charts/common-6.12.1.tgz create mode 100644 incubator/authelia/1.4.1/charts/postgresql-1.5.1.tgz create mode 100644 incubator/authelia/1.4.1/charts/redis-15.0.4.tgz create mode 100644 incubator/authelia/1.4.1/ix_values.yaml create mode 100644 incubator/authelia/1.4.1/questions.yaml create mode 100644 incubator/authelia/1.4.1/templates/_configmap.tpl create mode 100644 incubator/authelia/1.4.1/templates/_secrets.tpl create mode 100644 incubator/authelia/1.4.1/templates/common.yaml create mode 100644 incubator/authelia/1.4.1/test_values.yaml create mode 100644 incubator/authelia/1.4.1/values.yaml create mode 100644 incubator/custom-app/0.2.4/CONFIG.md create mode 100644 incubator/custom-app/0.2.4/Chart.lock create mode 100644 incubator/custom-app/0.2.4/Chart.yaml create mode 100644 incubator/custom-app/0.2.4/README.md create mode 100644 incubator/custom-app/0.2.4/app-readme.md create mode 100644 incubator/custom-app/0.2.4/charts/common-6.12.1.tgz create mode 100644 incubator/custom-app/0.2.4/ix_values.yaml create mode 100644 incubator/custom-app/0.2.4/questions.yaml create mode 100644 incubator/custom-app/0.2.4/templates/common.yaml create mode 100644 incubator/custom-app/0.2.4/test_values.yaml create mode 100644 incubator/custom-app/0.2.4/values.yaml create mode 100644 incubator/jdownloader2/0.3.2/CONFIG.md create mode 100644 incubator/jdownloader2/0.3.2/Chart.lock create mode 100644 incubator/jdownloader2/0.3.2/Chart.yaml create mode 100644 incubator/jdownloader2/0.3.2/README.md create mode 100644 incubator/jdownloader2/0.3.2/app-readme.md create mode 100644 incubator/jdownloader2/0.3.2/charts/common-6.12.1.tgz create mode 100644 incubator/jdownloader2/0.3.2/ix_values.yaml create mode 100644 incubator/jdownloader2/0.3.2/questions.yaml create mode 100644 incubator/jdownloader2/0.3.2/templates/common.yaml create mode 100644 incubator/jdownloader2/0.3.2/test_values.yaml create mode 100644 incubator/jdownloader2/0.3.2/values.yaml create mode 100644 incubator/nextcloud/3.5.1/CONFIG.md create mode 100644 incubator/nextcloud/3.5.1/Chart.lock create mode 100644 incubator/nextcloud/3.5.1/Chart.yaml create mode 100644 incubator/nextcloud/3.5.1/README.md create mode 100644 incubator/nextcloud/3.5.1/app-readme.md create mode 100644 incubator/nextcloud/3.5.1/charts/common-6.12.1.tgz create mode 100644 incubator/nextcloud/3.5.1/charts/postgresql-1.5.1.tgz create mode 100644 incubator/nextcloud/3.5.1/charts/redis-15.0.4.tgz create mode 100644 incubator/nextcloud/3.5.1/ix_values.yaml create mode 100644 incubator/nextcloud/3.5.1/questions.yaml create mode 100644 incubator/nextcloud/3.5.1/templates/_configmap.tpl create mode 100644 incubator/nextcloud/3.5.1/templates/_cronjob.tpl create mode 100644 incubator/nextcloud/3.5.1/templates/_secrets.tpl create mode 100644 incubator/nextcloud/3.5.1/templates/common.yaml create mode 100644 incubator/nextcloud/3.5.1/test_values.yaml create mode 100644 incubator/nextcloud/3.5.1/values.yaml create mode 100644 stable/airsonic/1.11.2/CONFIG.md create mode 100644 stable/airsonic/1.11.2/Chart.lock create mode 100644 stable/airsonic/1.11.2/Chart.yaml create mode 100644 stable/airsonic/1.11.2/README.md create mode 100644 stable/airsonic/1.11.2/app-readme.md create mode 100644 stable/airsonic/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/airsonic/1.11.2/ix_values.yaml create mode 100644 stable/airsonic/1.11.2/questions.yaml create mode 100644 stable/airsonic/1.11.2/templates/common.yaml create mode 100644 stable/airsonic/1.11.2/test_values.yaml create mode 100644 stable/airsonic/1.11.2/values.yaml create mode 100644 stable/appdaemon/3.11.2/CONFIG.md create mode 100644 stable/appdaemon/3.11.2/Chart.lock create mode 100644 stable/appdaemon/3.11.2/Chart.yaml create mode 100644 stable/appdaemon/3.11.2/README.md create mode 100644 stable/appdaemon/3.11.2/app-readme.md create mode 100644 stable/appdaemon/3.11.2/charts/common-6.12.1.tgz create mode 100644 stable/appdaemon/3.11.2/ix_values.yaml create mode 100644 stable/appdaemon/3.11.2/questions.yaml create mode 100644 stable/appdaemon/3.11.2/templates/common.yaml create mode 100644 stable/appdaemon/3.11.2/test_values.yaml create mode 100644 stable/appdaemon/3.11.2/values.yaml create mode 100644 stable/bazarr/6.11.2/CONFIG.md create mode 100644 stable/bazarr/6.11.2/Chart.lock create mode 100644 stable/bazarr/6.11.2/Chart.yaml create mode 100644 stable/bazarr/6.11.2/README.md create mode 100644 stable/bazarr/6.11.2/app-readme.md create mode 100644 stable/bazarr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/bazarr/6.11.2/ix_values.yaml create mode 100644 stable/bazarr/6.11.2/questions.yaml create mode 100644 stable/bazarr/6.11.2/templates/common.yaml create mode 100644 stable/bazarr/6.11.2/test_values.yaml create mode 100644 stable/bazarr/6.11.2/values.yaml create mode 100644 stable/booksonic-air/1.9.2/CONFIG.md create mode 100644 stable/booksonic-air/1.9.2/Chart.lock create mode 100644 stable/booksonic-air/1.9.2/Chart.yaml create mode 100644 stable/booksonic-air/1.9.2/README.md create mode 100644 stable/booksonic-air/1.9.2/app-readme.md create mode 100644 stable/booksonic-air/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/booksonic-air/1.9.2/ix_values.yaml create mode 100644 stable/booksonic-air/1.9.2/questions.yaml create mode 100644 stable/booksonic-air/1.9.2/templates/common.yaml create mode 100644 stable/booksonic-air/1.9.2/test_values.yaml create mode 100644 stable/booksonic-air/1.9.2/values.yaml create mode 100644 stable/calibre-web/6.11.2/CONFIG.md create mode 100644 stable/calibre-web/6.11.2/Chart.lock create mode 100644 stable/calibre-web/6.11.2/Chart.yaml create mode 100644 stable/calibre-web/6.11.2/README.md create mode 100644 stable/calibre-web/6.11.2/app-readme.md create mode 100644 stable/calibre-web/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/calibre-web/6.11.2/ix_values.yaml create mode 100644 stable/calibre-web/6.11.2/questions.yaml create mode 100644 stable/calibre-web/6.11.2/templates/common.yaml create mode 100644 stable/calibre-web/6.11.2/test_values.yaml create mode 100644 stable/calibre-web/6.11.2/values.yaml create mode 100644 stable/calibre/1.9.2/CONFIG.md create mode 100644 stable/calibre/1.9.2/Chart.lock create mode 100644 stable/calibre/1.9.2/Chart.yaml create mode 100644 stable/calibre/1.9.2/README.md create mode 100644 stable/calibre/1.9.2/app-readme.md create mode 100644 stable/calibre/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/calibre/1.9.2/ix_values.yaml create mode 100644 stable/calibre/1.9.2/questions.yaml create mode 100644 stable/calibre/1.9.2/templates/common.yaml create mode 100644 stable/calibre/1.9.2/test_values.yaml create mode 100644 stable/calibre/1.9.2/values.yaml create mode 100644 stable/collabora-online/6.11.2/CONFIG.md create mode 100644 stable/collabora-online/6.11.2/Chart.lock create mode 100644 stable/collabora-online/6.11.2/Chart.yaml create mode 100644 stable/collabora-online/6.11.2/README.md create mode 100644 stable/collabora-online/6.11.2/app-readme.md create mode 100644 stable/collabora-online/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/collabora-online/6.11.2/ix_values.yaml create mode 100644 stable/collabora-online/6.11.2/questions.yaml create mode 100644 stable/collabora-online/6.11.2/templates/common.yaml create mode 100644 stable/collabora-online/6.11.2/test_values.yaml create mode 100644 stable/collabora-online/6.11.2/values.yaml create mode 100644 stable/deconz/1.9.2/CONFIG.md create mode 100644 stable/deconz/1.9.2/Chart.lock create mode 100644 stable/deconz/1.9.2/Chart.yaml create mode 100644 stable/deconz/1.9.2/README.md create mode 100644 stable/deconz/1.9.2/app-readme.md create mode 100644 stable/deconz/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/deconz/1.9.2/ix_values.yaml create mode 100644 stable/deconz/1.9.2/questions.yaml create mode 100644 stable/deconz/1.9.2/templates/common.yaml create mode 100644 stable/deconz/1.9.2/test_values.yaml create mode 100644 stable/deconz/1.9.2/values.yaml create mode 100644 stable/deepstack-cpu/4.11.2/CONFIG.md create mode 100644 stable/deepstack-cpu/4.11.2/Chart.lock create mode 100644 stable/deepstack-cpu/4.11.2/Chart.yaml create mode 100644 stable/deepstack-cpu/4.11.2/README.md create mode 100644 stable/deepstack-cpu/4.11.2/app-readme.md create mode 100644 stable/deepstack-cpu/4.11.2/charts/common-6.12.1.tgz create mode 100644 stable/deepstack-cpu/4.11.2/ix_values.yaml create mode 100644 stable/deepstack-cpu/4.11.2/questions.yaml create mode 100644 stable/deepstack-cpu/4.11.2/templates/common.yaml create mode 100644 stable/deepstack-cpu/4.11.2/test_values.yaml create mode 100644 stable/deepstack-cpu/4.11.2/values.yaml create mode 100644 stable/deluge/6.11.2/CONFIG.md create mode 100644 stable/deluge/6.11.2/Chart.lock create mode 100644 stable/deluge/6.11.2/Chart.yaml create mode 100644 stable/deluge/6.11.2/README.md create mode 100644 stable/deluge/6.11.2/app-readme.md create mode 100644 stable/deluge/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/deluge/6.11.2/ix_values.yaml create mode 100644 stable/deluge/6.11.2/questions.yaml create mode 100644 stable/deluge/6.11.2/templates/common.yaml create mode 100644 stable/deluge/6.11.2/test_values.yaml create mode 100644 stable/deluge/6.11.2/values.yaml create mode 100644 stable/dizquetv/1.9.2/CONFIG.md create mode 100644 stable/dizquetv/1.9.2/Chart.lock create mode 100644 stable/dizquetv/1.9.2/Chart.yaml create mode 100644 stable/dizquetv/1.9.2/README.md create mode 100644 stable/dizquetv/1.9.2/app-readme.md create mode 100644 stable/dizquetv/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/dizquetv/1.9.2/ix_values.yaml create mode 100644 stable/dizquetv/1.9.2/questions.yaml create mode 100644 stable/dizquetv/1.9.2/templates/common.yaml create mode 100644 stable/dizquetv/1.9.2/test_values.yaml create mode 100644 stable/dizquetv/1.9.2/values.yaml create mode 100644 stable/duplicati/1.9.2/CONFIG.md create mode 100644 stable/duplicati/1.9.2/Chart.lock create mode 100644 stable/duplicati/1.9.2/Chart.yaml create mode 100644 stable/duplicati/1.9.2/README.md create mode 100644 stable/duplicati/1.9.2/app-readme.md create mode 100644 stable/duplicati/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/duplicati/1.9.2/ix_values.yaml create mode 100644 stable/duplicati/1.9.2/questions.yaml create mode 100644 stable/duplicati/1.9.2/templates/common.yaml create mode 100644 stable/duplicati/1.9.2/test_values.yaml create mode 100644 stable/duplicati/1.9.2/values.yaml create mode 100644 stable/emby/6.11.2/CONFIG.md create mode 100644 stable/emby/6.11.2/Chart.lock create mode 100644 stable/emby/6.11.2/Chart.yaml create mode 100644 stable/emby/6.11.2/README.md create mode 100644 stable/emby/6.11.2/app-readme.md create mode 100644 stable/emby/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/emby/6.11.2/ix_values.yaml create mode 100644 stable/emby/6.11.2/questions.yaml create mode 100644 stable/emby/6.11.2/templates/common.yaml create mode 100644 stable/emby/6.11.2/test_values.yaml create mode 100644 stable/emby/6.11.2/values.yaml create mode 100644 stable/esphome/6.11.2/CONFIG.md create mode 100644 stable/esphome/6.11.2/Chart.lock create mode 100644 stable/esphome/6.11.2/Chart.yaml create mode 100644 stable/esphome/6.11.2/README.md create mode 100644 stable/esphome/6.11.2/app-readme.md create mode 100644 stable/esphome/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/esphome/6.11.2/ix_values.yaml create mode 100644 stable/esphome/6.11.2/questions.yaml create mode 100644 stable/esphome/6.11.2/templates/common.yaml create mode 100644 stable/esphome/6.11.2/test_values.yaml create mode 100644 stable/esphome/6.11.2/values.yaml create mode 100644 stable/external-service/1.4.1/CONFIG.md create mode 100644 stable/external-service/1.4.1/Chart.lock create mode 100644 stable/external-service/1.4.1/Chart.yaml create mode 100644 stable/external-service/1.4.1/README.md create mode 100644 stable/external-service/1.4.1/app-readme.md create mode 100644 stable/external-service/1.4.1/charts/common-6.12.1.tgz create mode 100644 stable/external-service/1.4.1/ix_values.yaml create mode 100644 stable/external-service/1.4.1/questions.yaml create mode 100644 stable/external-service/1.4.1/templates/common.yaml create mode 100644 stable/external-service/1.4.1/test_values.yaml create mode 100644 stable/external-service/1.4.1/values.yaml create mode 100644 stable/fireflyiii/6.0.1/CONFIG.md create mode 100644 stable/fireflyiii/6.0.1/Chart.lock create mode 100644 stable/fireflyiii/6.0.1/Chart.yaml create mode 100644 stable/fireflyiii/6.0.1/README.md create mode 100644 stable/fireflyiii/6.0.1/app-readme.md create mode 100644 stable/fireflyiii/6.0.1/charts/common-6.12.1.tgz create mode 100644 stable/fireflyiii/6.0.1/charts/postgresql-1.5.1.tgz create mode 100644 stable/fireflyiii/6.0.1/ix_values.yaml create mode 100644 stable/fireflyiii/6.0.1/questions.yaml create mode 100644 stable/fireflyiii/6.0.1/templates/_secrets.tpl create mode 100644 stable/fireflyiii/6.0.1/templates/common.yaml create mode 100644 stable/fireflyiii/6.0.1/test_values.yaml create mode 100644 stable/fireflyiii/6.0.1/values.yaml create mode 100644 stable/flaresolverr/1.9.2/CONFIG.md create mode 100644 stable/flaresolverr/1.9.2/Chart.lock create mode 100644 stable/flaresolverr/1.9.2/Chart.yaml create mode 100644 stable/flaresolverr/1.9.2/README.md create mode 100644 stable/flaresolverr/1.9.2/app-readme.md create mode 100644 stable/flaresolverr/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/flaresolverr/1.9.2/ix_values.yaml create mode 100644 stable/flaresolverr/1.9.2/questions.yaml create mode 100644 stable/flaresolverr/1.9.2/templates/common.yaml create mode 100644 stable/flaresolverr/1.9.2/test_values.yaml create mode 100644 stable/flaresolverr/1.9.2/values.yaml create mode 100644 stable/flood/1.9.2/CONFIG.md create mode 100644 stable/flood/1.9.2/Chart.lock create mode 100644 stable/flood/1.9.2/Chart.yaml create mode 100644 stable/flood/1.9.2/README.md create mode 100644 stable/flood/1.9.2/app-readme.md create mode 100644 stable/flood/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/flood/1.9.2/ci/ct-values.yaml create mode 100644 stable/flood/1.9.2/ix_values.yaml create mode 100644 stable/flood/1.9.2/questions.yaml create mode 100644 stable/flood/1.9.2/templates/common.yaml create mode 100644 stable/flood/1.9.2/test_values.yaml create mode 100644 stable/flood/1.9.2/values.yaml create mode 100644 stable/focalboard/1.9.2/CONFIG.md create mode 100644 stable/focalboard/1.9.2/Chart.lock create mode 100644 stable/focalboard/1.9.2/Chart.yaml create mode 100644 stable/focalboard/1.9.2/README.md create mode 100644 stable/focalboard/1.9.2/app-readme.md create mode 100644 stable/focalboard/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/focalboard/1.9.2/ix_values.yaml create mode 100644 stable/focalboard/1.9.2/questions.yaml create mode 100644 stable/focalboard/1.9.2/templates/common.yaml create mode 100644 stable/focalboard/1.9.2/test_values.yaml create mode 100644 stable/focalboard/1.9.2/values.yaml create mode 100644 stable/freeradius/1.7.2/CONFIG.md create mode 100644 stable/freeradius/1.7.2/Chart.lock create mode 100644 stable/freeradius/1.7.2/Chart.yaml create mode 100644 stable/freeradius/1.7.2/README.md create mode 100644 stable/freeradius/1.7.2/app-readme.md create mode 100644 stable/freeradius/1.7.2/charts/common-6.12.1.tgz create mode 100644 stable/freeradius/1.7.2/ix_values.yaml create mode 100644 stable/freeradius/1.7.2/questions.yaml create mode 100644 stable/freeradius/1.7.2/templates/common.yaml create mode 100644 stable/freeradius/1.7.2/test_values.yaml create mode 100644 stable/freeradius/1.7.2/values.yaml create mode 100644 stable/freshrss/6.11.2/CONFIG.md create mode 100644 stable/freshrss/6.11.2/Chart.lock create mode 100644 stable/freshrss/6.11.2/Chart.yaml create mode 100644 stable/freshrss/6.11.2/README.md create mode 100644 stable/freshrss/6.11.2/app-readme.md create mode 100644 stable/freshrss/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/freshrss/6.11.2/ix_values.yaml create mode 100644 stable/freshrss/6.11.2/questions.yaml create mode 100644 stable/freshrss/6.11.2/templates/common.yaml create mode 100644 stable/freshrss/6.11.2/test_values.yaml create mode 100644 stable/freshrss/6.11.2/values.yaml create mode 100644 stable/gaps/6.11.2/CONFIG.md create mode 100644 stable/gaps/6.11.2/Chart.lock create mode 100644 stable/gaps/6.11.2/Chart.yaml create mode 100644 stable/gaps/6.11.2/README.md create mode 100644 stable/gaps/6.11.2/app-readme.md create mode 100644 stable/gaps/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/gaps/6.11.2/ix_values.yaml create mode 100644 stable/gaps/6.11.2/questions.yaml create mode 100644 stable/gaps/6.11.2/templates/common.yaml create mode 100644 stable/gaps/6.11.2/test_values.yaml create mode 100644 stable/gaps/6.11.2/values.yaml create mode 100644 stable/gonic/1.9.2/CONFIG.md create mode 100644 stable/gonic/1.9.2/Chart.lock create mode 100644 stable/gonic/1.9.2/Chart.yaml create mode 100644 stable/gonic/1.9.2/README.md create mode 100644 stable/gonic/1.9.2/app-readme.md create mode 100644 stable/gonic/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/gonic/1.9.2/ci/ct-values.yaml create mode 100644 stable/gonic/1.9.2/ix_values.yaml create mode 100644 stable/gonic/1.9.2/questions.yaml create mode 100644 stable/gonic/1.9.2/templates/common.yaml create mode 100644 stable/gonic/1.9.2/test_values.yaml create mode 100644 stable/gonic/1.9.2/values.yaml create mode 100644 stable/grocy/6.11.2/CONFIG.md create mode 100644 stable/grocy/6.11.2/Chart.lock create mode 100644 stable/grocy/6.11.2/Chart.yaml create mode 100644 stable/grocy/6.11.2/README.md create mode 100644 stable/grocy/6.11.2/app-readme.md create mode 100644 stable/grocy/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/grocy/6.11.2/ix_values.yaml create mode 100644 stable/grocy/6.11.2/questions.yaml create mode 100644 stable/grocy/6.11.2/templates/common.yaml create mode 100644 stable/grocy/6.11.2/test_values.yaml create mode 100644 stable/grocy/6.11.2/values.yaml create mode 100644 stable/handbrake/6.11.2/CONFIG.md create mode 100644 stable/handbrake/6.11.2/Chart.lock create mode 100644 stable/handbrake/6.11.2/Chart.yaml create mode 100644 stable/handbrake/6.11.2/README.md create mode 100644 stable/handbrake/6.11.2/app-readme.md create mode 100644 stable/handbrake/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/handbrake/6.11.2/ix_values.yaml create mode 100644 stable/handbrake/6.11.2/questions.yaml create mode 100644 stable/handbrake/6.11.2/templates/common.yaml create mode 100644 stable/handbrake/6.11.2/test_values.yaml create mode 100644 stable/handbrake/6.11.2/values.yaml create mode 100644 stable/haste-server/1.11.2/CONFIG.md create mode 100644 stable/haste-server/1.11.2/Chart.lock create mode 100644 stable/haste-server/1.11.2/Chart.yaml create mode 100644 stable/haste-server/1.11.2/README.md create mode 100644 stable/haste-server/1.11.2/app-readme.md create mode 100644 stable/haste-server/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/haste-server/1.11.2/ix_values.yaml create mode 100644 stable/haste-server/1.11.2/questions.yaml create mode 100644 stable/haste-server/1.11.2/templates/common.yaml create mode 100644 stable/haste-server/1.11.2/test_values.yaml create mode 100644 stable/haste-server/1.11.2/values.yaml create mode 100644 stable/healthchecks/1.9.2/CONFIG.md create mode 100644 stable/healthchecks/1.9.2/Chart.lock create mode 100644 stable/healthchecks/1.9.2/Chart.yaml create mode 100644 stable/healthchecks/1.9.2/README.md create mode 100644 stable/healthchecks/1.9.2/app-readme.md create mode 100644 stable/healthchecks/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/healthchecks/1.9.2/ix_values.yaml create mode 100644 stable/healthchecks/1.9.2/questions.yaml create mode 100644 stable/healthchecks/1.9.2/templates/common.yaml create mode 100644 stable/healthchecks/1.9.2/test_values.yaml create mode 100644 stable/healthchecks/1.9.2/values.yaml create mode 100644 stable/heimdall/6.11.2/CONFIG.md create mode 100644 stable/heimdall/6.11.2/Chart.lock create mode 100644 stable/heimdall/6.11.2/Chart.yaml create mode 100644 stable/heimdall/6.11.2/README.md create mode 100644 stable/heimdall/6.11.2/app-readme.md create mode 100644 stable/heimdall/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/heimdall/6.11.2/ix_values.yaml create mode 100644 stable/heimdall/6.11.2/questions.yaml create mode 100644 stable/heimdall/6.11.2/templates/common.yaml create mode 100644 stable/heimdall/6.11.2/test_values.yaml create mode 100644 stable/heimdall/6.11.2/values.yaml create mode 100644 stable/home-assistant/6.11.2/CONFIG.md create mode 100644 stable/home-assistant/6.11.2/Chart.lock create mode 100644 stable/home-assistant/6.11.2/Chart.yaml create mode 100644 stable/home-assistant/6.11.2/README.md create mode 100644 stable/home-assistant/6.11.2/app-readme.md create mode 100644 stable/home-assistant/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/home-assistant/6.11.2/ix_values.yaml create mode 100644 stable/home-assistant/6.11.2/questions.yaml create mode 100644 stable/home-assistant/6.11.2/templates/common.yaml create mode 100644 stable/home-assistant/6.11.2/templates/secret.yaml create mode 100644 stable/home-assistant/6.11.2/test_values.yaml create mode 100644 stable/home-assistant/6.11.2/values.yaml create mode 100644 stable/hyperion-ng/1.9.2/CONFIG.md create mode 100644 stable/hyperion-ng/1.9.2/Chart.lock create mode 100644 stable/hyperion-ng/1.9.2/Chart.yaml create mode 100644 stable/hyperion-ng/1.9.2/README.md create mode 100644 stable/hyperion-ng/1.9.2/app-readme.md create mode 100644 stable/hyperion-ng/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/hyperion-ng/1.9.2/ix_values.yaml create mode 100644 stable/hyperion-ng/1.9.2/questions.yaml create mode 100644 stable/hyperion-ng/1.9.2/templates/common.yaml create mode 100644 stable/hyperion-ng/1.9.2/test_values.yaml create mode 100644 stable/hyperion-ng/1.9.2/values.yaml create mode 100644 stable/jackett/6.11.3/CONFIG.md create mode 100644 stable/jackett/6.11.3/Chart.lock create mode 100644 stable/jackett/6.11.3/Chart.yaml create mode 100644 stable/jackett/6.11.3/README.md create mode 100644 stable/jackett/6.11.3/app-readme.md create mode 100644 stable/jackett/6.11.3/charts/common-6.12.1.tgz create mode 100644 stable/jackett/6.11.3/ix_values.yaml create mode 100644 stable/jackett/6.11.3/questions.yaml create mode 100644 stable/jackett/6.11.3/templates/common.yaml create mode 100644 stable/jackett/6.11.3/test_values.yaml create mode 100644 stable/jackett/6.11.3/values.yaml create mode 100644 stable/jellyfin/6.11.2/CONFIG.md create mode 100644 stable/jellyfin/6.11.2/Chart.lock create mode 100644 stable/jellyfin/6.11.2/Chart.yaml create mode 100644 stable/jellyfin/6.11.2/README.md create mode 100644 stable/jellyfin/6.11.2/app-readme.md create mode 100644 stable/jellyfin/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/jellyfin/6.11.2/ix_values.yaml create mode 100644 stable/jellyfin/6.11.2/questions.yaml create mode 100644 stable/jellyfin/6.11.2/templates/common.yaml create mode 100644 stable/jellyfin/6.11.2/test_values.yaml create mode 100644 stable/jellyfin/6.11.2/values.yaml create mode 100644 stable/kms/6.11.2/CONFIG.md create mode 100644 stable/kms/6.11.2/Chart.lock create mode 100644 stable/kms/6.11.2/Chart.yaml create mode 100644 stable/kms/6.11.2/README.md create mode 100644 stable/kms/6.11.2/app-readme.md create mode 100644 stable/kms/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/kms/6.11.2/ix_values.yaml create mode 100644 stable/kms/6.11.2/questions.yaml create mode 100644 stable/kms/6.11.2/templates/common.yaml create mode 100644 stable/kms/6.11.2/test_values.yaml create mode 100644 stable/kms/6.11.2/values.yaml create mode 100644 stable/komga/1.9.3/CONFIG.md create mode 100644 stable/komga/1.9.3/Chart.lock create mode 100644 stable/komga/1.9.3/Chart.yaml create mode 100644 stable/komga/1.9.3/README.md create mode 100644 stable/komga/1.9.3/app-readme.md create mode 100644 stable/komga/1.9.3/charts/common-6.12.1.tgz create mode 100644 stable/komga/1.9.3/ix_values.yaml create mode 100644 stable/komga/1.9.3/questions.yaml create mode 100644 stable/komga/1.9.3/templates/common.yaml create mode 100644 stable/komga/1.9.3/test_values.yaml create mode 100644 stable/komga/1.9.3/values.yaml create mode 100644 stable/lazylibrarian/6.11.2/CONFIG.md create mode 100644 stable/lazylibrarian/6.11.2/Chart.lock create mode 100644 stable/lazylibrarian/6.11.2/Chart.yaml create mode 100644 stable/lazylibrarian/6.11.2/README.md create mode 100644 stable/lazylibrarian/6.11.2/app-readme.md create mode 100644 stable/lazylibrarian/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/lazylibrarian/6.11.2/ix_values.yaml create mode 100644 stable/lazylibrarian/6.11.2/questions.yaml create mode 100644 stable/lazylibrarian/6.11.2/templates/common.yaml create mode 100644 stable/lazylibrarian/6.11.2/test_values.yaml create mode 100644 stable/lazylibrarian/6.11.2/values.yaml create mode 100644 stable/librespeed/1.9.2/CONFIG.md create mode 100644 stable/librespeed/1.9.2/Chart.lock create mode 100644 stable/librespeed/1.9.2/Chart.yaml create mode 100644 stable/librespeed/1.9.2/README.md create mode 100644 stable/librespeed/1.9.2/app-readme.md create mode 100644 stable/librespeed/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/librespeed/1.9.2/ci/ct-values.yaml create mode 100644 stable/librespeed/1.9.2/ix_values.yaml create mode 100644 stable/librespeed/1.9.2/questions.yaml create mode 100644 stable/librespeed/1.9.2/templates/common.yaml create mode 100644 stable/librespeed/1.9.2/test_values.yaml create mode 100644 stable/librespeed/1.9.2/values.yaml create mode 100644 stable/lidarr/6.11.2/CONFIG.md create mode 100644 stable/lidarr/6.11.2/Chart.lock create mode 100644 stable/lidarr/6.11.2/Chart.yaml create mode 100644 stable/lidarr/6.11.2/README.md create mode 100644 stable/lidarr/6.11.2/app-readme.md create mode 100644 stable/lidarr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/lidarr/6.11.2/ix_values.yaml create mode 100644 stable/lidarr/6.11.2/questions.yaml create mode 100644 stable/lidarr/6.11.2/templates/common.yaml create mode 100644 stable/lidarr/6.11.2/test_values.yaml create mode 100644 stable/lidarr/6.11.2/values.yaml create mode 100644 stable/littlelink/1.5.2/CONFIG.md create mode 100644 stable/littlelink/1.5.2/Chart.lock create mode 100644 stable/littlelink/1.5.2/Chart.yaml create mode 100644 stable/littlelink/1.5.2/README.md create mode 100644 stable/littlelink/1.5.2/app-readme.md create mode 100644 stable/littlelink/1.5.2/charts/common-6.12.1.tgz create mode 100644 stable/littlelink/1.5.2/ix_values.yaml create mode 100644 stable/littlelink/1.5.2/questions.yaml create mode 100644 stable/littlelink/1.5.2/templates/_configmap.tpl create mode 100644 stable/littlelink/1.5.2/templates/common.yaml create mode 100644 stable/littlelink/1.5.2/test_values.yaml create mode 100644 stable/littlelink/1.5.2/values.yaml create mode 100644 stable/lychee/6.11.2/CONFIG.md create mode 100644 stable/lychee/6.11.2/Chart.lock create mode 100644 stable/lychee/6.11.2/Chart.yaml create mode 100644 stable/lychee/6.11.2/README.md create mode 100644 stable/lychee/6.11.2/app-readme.md create mode 100644 stable/lychee/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/lychee/6.11.2/ix_values.yaml create mode 100644 stable/lychee/6.11.2/questions.yaml create mode 100644 stable/lychee/6.11.2/templates/common.yaml create mode 100644 stable/lychee/6.11.2/test_values.yaml create mode 100644 stable/lychee/6.11.2/values.yaml create mode 100644 stable/mealie/1.11.2/CONFIG.md create mode 100644 stable/mealie/1.11.2/Chart.lock create mode 100644 stable/mealie/1.11.2/Chart.yaml create mode 100644 stable/mealie/1.11.2/README.md create mode 100644 stable/mealie/1.11.2/app-readme.md create mode 100644 stable/mealie/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/mealie/1.11.2/ix_values.yaml create mode 100644 stable/mealie/1.11.2/questions.yaml create mode 100644 stable/mealie/1.11.2/templates/common.yaml create mode 100644 stable/mealie/1.11.2/test_values.yaml create mode 100644 stable/mealie/1.11.2/values.yaml create mode 100644 stable/mosquitto/1.11.2/CONFIG.md create mode 100644 stable/mosquitto/1.11.2/Chart.lock create mode 100644 stable/mosquitto/1.11.2/Chart.yaml create mode 100644 stable/mosquitto/1.11.2/README.md create mode 100644 stable/mosquitto/1.11.2/app-readme.md create mode 100644 stable/mosquitto/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/mosquitto/1.11.2/ix_values.yaml create mode 100644 stable/mosquitto/1.11.2/questions.yaml create mode 100644 stable/mosquitto/1.11.2/templates/common.yaml create mode 100644 stable/mosquitto/1.11.2/templates/configmap.yaml create mode 100644 stable/mosquitto/1.11.2/test_values.yaml create mode 100644 stable/mosquitto/1.11.2/values.yaml create mode 100644 stable/mylar/1.9.2/CONFIG.md create mode 100644 stable/mylar/1.9.2/Chart.lock create mode 100644 stable/mylar/1.9.2/Chart.yaml create mode 100644 stable/mylar/1.9.2/README.md create mode 100644 stable/mylar/1.9.2/app-readme.md create mode 100644 stable/mylar/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/mylar/1.9.2/ix_values.yaml create mode 100644 stable/mylar/1.9.2/questions.yaml create mode 100644 stable/mylar/1.9.2/templates/common.yaml create mode 100644 stable/mylar/1.9.2/test_values.yaml create mode 100644 stable/mylar/1.9.2/values.yaml create mode 100644 stable/navidrome/6.11.2/CONFIG.md create mode 100644 stable/navidrome/6.11.2/Chart.lock create mode 100644 stable/navidrome/6.11.2/Chart.yaml create mode 100644 stable/navidrome/6.11.2/README.md create mode 100644 stable/navidrome/6.11.2/app-readme.md create mode 100644 stable/navidrome/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/navidrome/6.11.2/ix_values.yaml create mode 100644 stable/navidrome/6.11.2/questions.yaml create mode 100644 stable/navidrome/6.11.2/templates/common.yaml create mode 100644 stable/navidrome/6.11.2/test_values.yaml create mode 100644 stable/navidrome/6.11.2/values.yaml create mode 100644 stable/node-red/6.11.2/CONFIG.md create mode 100644 stable/node-red/6.11.2/Chart.lock create mode 100644 stable/node-red/6.11.2/Chart.yaml create mode 100644 stable/node-red/6.11.2/README.md create mode 100644 stable/node-red/6.11.2/app-readme.md create mode 100644 stable/node-red/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/node-red/6.11.2/ix_values.yaml create mode 100644 stable/node-red/6.11.2/questions.yaml create mode 100644 stable/node-red/6.11.2/templates/common.yaml create mode 100644 stable/node-red/6.11.2/test_values.yaml create mode 100644 stable/node-red/6.11.2/values.yaml create mode 100644 stable/nullserv/1.9.2/CONFIG.md create mode 100644 stable/nullserv/1.9.2/Chart.lock create mode 100644 stable/nullserv/1.9.2/Chart.yaml create mode 100644 stable/nullserv/1.9.2/README.md create mode 100644 stable/nullserv/1.9.2/app-readme.md create mode 100644 stable/nullserv/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/nullserv/1.9.2/ix_values.yaml create mode 100644 stable/nullserv/1.9.2/questions.yaml create mode 100644 stable/nullserv/1.9.2/templates/common.yaml create mode 100644 stable/nullserv/1.9.2/test_values.yaml create mode 100644 stable/nullserv/1.9.2/values.yaml create mode 100644 stable/nzbget/6.11.2/CONFIG.md create mode 100644 stable/nzbget/6.11.2/Chart.lock create mode 100644 stable/nzbget/6.11.2/Chart.yaml create mode 100644 stable/nzbget/6.11.2/README.md create mode 100644 stable/nzbget/6.11.2/app-readme.md create mode 100644 stable/nzbget/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/nzbget/6.11.2/ix_values.yaml create mode 100644 stable/nzbget/6.11.2/questions.yaml create mode 100644 stable/nzbget/6.11.2/templates/common.yaml create mode 100644 stable/nzbget/6.11.2/test_values.yaml create mode 100644 stable/nzbget/6.11.2/values.yaml create mode 100644 stable/nzbhydra/6.11.2/CONFIG.md create mode 100644 stable/nzbhydra/6.11.2/Chart.lock create mode 100644 stable/nzbhydra/6.11.2/Chart.yaml create mode 100644 stable/nzbhydra/6.11.2/README.md create mode 100644 stable/nzbhydra/6.11.2/app-readme.md create mode 100644 stable/nzbhydra/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/nzbhydra/6.11.2/ix_values.yaml create mode 100644 stable/nzbhydra/6.11.2/questions.yaml create mode 100644 stable/nzbhydra/6.11.2/templates/common.yaml create mode 100644 stable/nzbhydra/6.11.2/test_values.yaml create mode 100644 stable/nzbhydra/6.11.2/values.yaml create mode 100644 stable/octoprint/1.9.2/CONFIG.md create mode 100644 stable/octoprint/1.9.2/Chart.lock create mode 100644 stable/octoprint/1.9.2/Chart.yaml create mode 100644 stable/octoprint/1.9.2/README.md create mode 100644 stable/octoprint/1.9.2/app-readme.md create mode 100644 stable/octoprint/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/octoprint/1.9.2/ix_values.yaml create mode 100644 stable/octoprint/1.9.2/questions.yaml create mode 100644 stable/octoprint/1.9.2/templates/common.yaml create mode 100644 stable/octoprint/1.9.2/test_values.yaml create mode 100644 stable/octoprint/1.9.2/values.yaml create mode 100644 stable/omada-controller/1.9.2/CONFIG.md create mode 100644 stable/omada-controller/1.9.2/Chart.lock create mode 100644 stable/omada-controller/1.9.2/Chart.yaml create mode 100644 stable/omada-controller/1.9.2/README.md create mode 100644 stable/omada-controller/1.9.2/app-readme.md create mode 100644 stable/omada-controller/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/omada-controller/1.9.2/ix_values.yaml create mode 100644 stable/omada-controller/1.9.2/questions.yaml create mode 100644 stable/omada-controller/1.9.2/templates/common.yaml create mode 100644 stable/omada-controller/1.9.2/test_values.yaml create mode 100644 stable/omada-controller/1.9.2/values.yaml create mode 100644 stable/ombi/6.11.2/CONFIG.md create mode 100644 stable/ombi/6.11.2/Chart.lock create mode 100644 stable/ombi/6.11.2/Chart.yaml create mode 100644 stable/ombi/6.11.2/README.md create mode 100644 stable/ombi/6.11.2/app-readme.md create mode 100644 stable/ombi/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/ombi/6.11.2/ix_values.yaml create mode 100644 stable/ombi/6.11.2/questions.yaml create mode 100644 stable/ombi/6.11.2/templates/common.yaml create mode 100644 stable/ombi/6.11.2/test_values.yaml create mode 100644 stable/ombi/6.11.2/values.yaml create mode 100644 stable/openldap/1.7.2/CONFIG.md create mode 100644 stable/openldap/1.7.2/Chart.lock create mode 100644 stable/openldap/1.7.2/Chart.yaml create mode 100644 stable/openldap/1.7.2/README.md create mode 100644 stable/openldap/1.7.2/app-readme.md create mode 100644 stable/openldap/1.7.2/charts/common-6.12.1.tgz create mode 100644 stable/openldap/1.7.2/ix_values.yaml create mode 100644 stable/openldap/1.7.2/questions.yaml create mode 100644 stable/openldap/1.7.2/templates/_configmap.tpl create mode 100644 stable/openldap/1.7.2/templates/common.yaml create mode 100644 stable/openldap/1.7.2/test_values.yaml create mode 100644 stable/openldap/1.7.2/values.yaml create mode 100644 stable/organizr/6.11.2/CONFIG.md create mode 100644 stable/organizr/6.11.2/Chart.lock create mode 100644 stable/organizr/6.11.2/Chart.yaml create mode 100644 stable/organizr/6.11.2/README.md create mode 100644 stable/organizr/6.11.2/app-readme.md create mode 100644 stable/organizr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/organizr/6.11.2/ix_values.yaml create mode 100644 stable/organizr/6.11.2/questions.yaml create mode 100644 stable/organizr/6.11.2/templates/common.yaml create mode 100644 stable/organizr/6.11.2/test_values.yaml create mode 100644 stable/organizr/6.11.2/values.yaml create mode 100644 stable/overseerr/1.9.2/CONFIG.md create mode 100644 stable/overseerr/1.9.2/Chart.lock create mode 100644 stable/overseerr/1.9.2/Chart.yaml create mode 100644 stable/overseerr/1.9.2/README.md create mode 100644 stable/overseerr/1.9.2/app-readme.md create mode 100644 stable/overseerr/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/overseerr/1.9.2/ix_values.yaml create mode 100644 stable/overseerr/1.9.2/questions.yaml create mode 100644 stable/overseerr/1.9.2/templates/common.yaml create mode 100644 stable/overseerr/1.9.2/test_values.yaml create mode 100644 stable/overseerr/1.9.2/values.yaml create mode 100644 stable/owncast/1.9.2/CONFIG.md create mode 100644 stable/owncast/1.9.2/Chart.lock create mode 100644 stable/owncast/1.9.2/Chart.yaml create mode 100644 stable/owncast/1.9.2/README.md create mode 100644 stable/owncast/1.9.2/app-readme.md create mode 100644 stable/owncast/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/owncast/1.9.2/ix_values.yaml create mode 100644 stable/owncast/1.9.2/questions.yaml create mode 100644 stable/owncast/1.9.2/templates/common.yaml create mode 100644 stable/owncast/1.9.2/test_values.yaml create mode 100644 stable/owncast/1.9.2/values.yaml create mode 100644 stable/owncloud-ocis/1.9.2/CONFIG.md create mode 100644 stable/owncloud-ocis/1.9.2/Chart.lock create mode 100644 stable/owncloud-ocis/1.9.2/Chart.yaml create mode 100644 stable/owncloud-ocis/1.9.2/README.md create mode 100644 stable/owncloud-ocis/1.9.2/app-readme.md create mode 100644 stable/owncloud-ocis/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/owncloud-ocis/1.9.2/ix_values.yaml create mode 100644 stable/owncloud-ocis/1.9.2/questions.yaml create mode 100644 stable/owncloud-ocis/1.9.2/templates/common.yaml create mode 100644 stable/owncloud-ocis/1.9.2/test_values.yaml create mode 100644 stable/owncloud-ocis/1.9.2/values.yaml create mode 100644 stable/pgadmin/1.8.2/CONFIG.md create mode 100644 stable/pgadmin/1.8.2/Chart.lock create mode 100644 stable/pgadmin/1.8.2/Chart.yaml create mode 100644 stable/pgadmin/1.8.2/README.md create mode 100644 stable/pgadmin/1.8.2/app-readme.md create mode 100644 stable/pgadmin/1.8.2/charts/common-6.12.1.tgz create mode 100644 stable/pgadmin/1.8.2/ix_values.yaml create mode 100644 stable/pgadmin/1.8.2/questions.yaml create mode 100644 stable/pgadmin/1.8.2/templates/common.yaml create mode 100644 stable/pgadmin/1.8.2/test_values.yaml create mode 100644 stable/pgadmin/1.8.2/values.yaml create mode 100644 stable/photoprism/1.9.2/CONFIG.md create mode 100644 stable/photoprism/1.9.2/Chart.lock create mode 100644 stable/photoprism/1.9.2/Chart.yaml create mode 100644 stable/photoprism/1.9.2/README.md create mode 100644 stable/photoprism/1.9.2/app-readme.md create mode 100644 stable/photoprism/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/photoprism/1.9.2/ix_values.yaml create mode 100644 stable/photoprism/1.9.2/questions.yaml create mode 100644 stable/photoprism/1.9.2/templates/common.yaml create mode 100644 stable/photoprism/1.9.2/test_values.yaml create mode 100644 stable/photoprism/1.9.2/values.yaml create mode 100644 stable/phpldapadmin/1.8.2/CONFIG.md create mode 100644 stable/phpldapadmin/1.8.2/Chart.lock create mode 100644 stable/phpldapadmin/1.8.2/Chart.yaml create mode 100644 stable/phpldapadmin/1.8.2/README.md create mode 100644 stable/phpldapadmin/1.8.2/app-readme.md create mode 100644 stable/phpldapadmin/1.8.2/charts/common-6.12.1.tgz create mode 100644 stable/phpldapadmin/1.8.2/ix_values.yaml create mode 100644 stable/phpldapadmin/1.8.2/questions.yaml create mode 100644 stable/phpldapadmin/1.8.2/templates/common.yaml create mode 100644 stable/phpldapadmin/1.8.2/test_values.yaml create mode 100644 stable/phpldapadmin/1.8.2/values.yaml create mode 100644 stable/piaware/1.9.2/CONFIG.md create mode 100644 stable/piaware/1.9.2/Chart.lock create mode 100644 stable/piaware/1.9.2/Chart.yaml create mode 100644 stable/piaware/1.9.2/README.md create mode 100644 stable/piaware/1.9.2/app-readme.md create mode 100644 stable/piaware/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/piaware/1.9.2/ci/ct-values.yaml create mode 100644 stable/piaware/1.9.2/ix_values.yaml create mode 100644 stable/piaware/1.9.2/questions.yaml create mode 100644 stable/piaware/1.9.2/templates/common.yaml create mode 100644 stable/piaware/1.9.2/test_values.yaml create mode 100644 stable/piaware/1.9.2/values.yaml create mode 100644 stable/plex/5.11.2/CONFIG.md create mode 100644 stable/plex/5.11.2/Chart.lock create mode 100644 stable/plex/5.11.2/Chart.yaml create mode 100644 stable/plex/5.11.2/README.md create mode 100644 stable/plex/5.11.2/app-readme.md create mode 100644 stable/plex/5.11.2/charts/common-6.12.1.tgz create mode 100644 stable/plex/5.11.2/ix_values.yaml create mode 100644 stable/plex/5.11.2/questions.yaml create mode 100644 stable/plex/5.11.2/templates/common.yaml create mode 100644 stable/plex/5.11.2/test_values.yaml create mode 100644 stable/plex/5.11.2/values.yaml create mode 100644 stable/podgrab/4.11.2/CONFIG.md create mode 100644 stable/podgrab/4.11.2/Chart.lock create mode 100644 stable/podgrab/4.11.2/Chart.yaml create mode 100644 stable/podgrab/4.11.2/README.md create mode 100644 stable/podgrab/4.11.2/app-readme.md create mode 100644 stable/podgrab/4.11.2/charts/common-6.12.1.tgz create mode 100644 stable/podgrab/4.11.2/ix_values.yaml create mode 100644 stable/podgrab/4.11.2/questions.yaml create mode 100644 stable/podgrab/4.11.2/templates/common.yaml create mode 100644 stable/podgrab/4.11.2/test_values.yaml create mode 100644 stable/podgrab/4.11.2/values.yaml create mode 100644 stable/postgresql/1.5.2/CONFIG.md create mode 100644 stable/postgresql/1.5.2/Chart.lock create mode 100644 stable/postgresql/1.5.2/Chart.yaml create mode 100644 stable/postgresql/1.5.2/README.md create mode 100644 stable/postgresql/1.5.2/app-readme.md create mode 100644 stable/postgresql/1.5.2/charts/common-6.12.1.tgz create mode 100644 stable/postgresql/1.5.2/ix_values.yaml create mode 100644 stable/postgresql/1.5.2/questions.yaml create mode 100644 stable/postgresql/1.5.2/templates/backup-postgres-config.yaml create mode 100644 stable/postgresql/1.5.2/templates/common.yaml create mode 100644 stable/postgresql/1.5.2/templates/secret.yaml create mode 100644 stable/postgresql/1.5.2/templates/upgrade-backup-postgres-hook.yaml create mode 100644 stable/postgresql/1.5.2/test_values.yaml create mode 100644 stable/postgresql/1.5.2/values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/CONFIG.md create mode 100644 stable/pretend-youre-xyzzy/1.9.2/Chart.lock create mode 100644 stable/pretend-youre-xyzzy/1.9.2/Chart.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/README.md create mode 100644 stable/pretend-youre-xyzzy/1.9.2/app-readme.md create mode 100644 stable/pretend-youre-xyzzy/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/pretend-youre-xyzzy/1.9.2/ix_values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/questions.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/templates/common.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/test_values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.2/values.yaml create mode 100644 stable/protonmail-bridge/1.9.2/CONFIG.md create mode 100644 stable/protonmail-bridge/1.9.2/Chart.lock create mode 100644 stable/protonmail-bridge/1.9.2/Chart.yaml create mode 100644 stable/protonmail-bridge/1.9.2/README.md create mode 100644 stable/protonmail-bridge/1.9.2/app-readme.md create mode 100644 stable/protonmail-bridge/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/protonmail-bridge/1.9.2/ix_values.yaml create mode 100644 stable/protonmail-bridge/1.9.2/questions.yaml create mode 100644 stable/protonmail-bridge/1.9.2/templates/common.yaml create mode 100644 stable/protonmail-bridge/1.9.2/test_values.yaml create mode 100644 stable/protonmail-bridge/1.9.2/values.yaml create mode 100644 stable/prowlarr/1.11.3/CONFIG.md create mode 100644 stable/prowlarr/1.11.3/Chart.lock create mode 100644 stable/prowlarr/1.11.3/Chart.yaml create mode 100644 stable/prowlarr/1.11.3/README.md create mode 100644 stable/prowlarr/1.11.3/app-readme.md create mode 100644 stable/prowlarr/1.11.3/charts/common-6.12.1.tgz create mode 100644 stable/prowlarr/1.11.3/ix_values.yaml create mode 100644 stable/prowlarr/1.11.3/questions.yaml create mode 100644 stable/prowlarr/1.11.3/templates/common.yaml create mode 100644 stable/prowlarr/1.11.3/test_values.yaml create mode 100644 stable/prowlarr/1.11.3/values.yaml create mode 100644 stable/pyload/1.9.2/CONFIG.md create mode 100644 stable/pyload/1.9.2/Chart.lock create mode 100644 stable/pyload/1.9.2/Chart.yaml create mode 100644 stable/pyload/1.9.2/README.md create mode 100644 stable/pyload/1.9.2/app-readme.md create mode 100644 stable/pyload/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/pyload/1.9.2/ix_values.yaml create mode 100644 stable/pyload/1.9.2/questions.yaml create mode 100644 stable/pyload/1.9.2/templates/common.yaml create mode 100644 stable/pyload/1.9.2/test_values.yaml create mode 100644 stable/pyload/1.9.2/values.yaml create mode 100644 stable/qbittorrent/6.11.2/CONFIG.md create mode 100644 stable/qbittorrent/6.11.2/Chart.lock create mode 100644 stable/qbittorrent/6.11.2/Chart.yaml create mode 100644 stable/qbittorrent/6.11.2/README.md create mode 100644 stable/qbittorrent/6.11.2/app-readme.md create mode 100644 stable/qbittorrent/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/qbittorrent/6.11.2/ix_values.yaml create mode 100644 stable/qbittorrent/6.11.2/questions.yaml create mode 100644 stable/qbittorrent/6.11.2/templates/_configmap.tpl create mode 100644 stable/qbittorrent/6.11.2/templates/common.yaml create mode 100644 stable/qbittorrent/6.11.2/test_values.yaml create mode 100644 stable/qbittorrent/6.11.2/values.yaml create mode 100644 stable/radarr/6.11.2/CONFIG.md create mode 100644 stable/radarr/6.11.2/Chart.lock create mode 100644 stable/radarr/6.11.2/Chart.yaml create mode 100644 stable/radarr/6.11.2/README.md create mode 100644 stable/radarr/6.11.2/app-readme.md create mode 100644 stable/radarr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/radarr/6.11.2/ix_values.yaml create mode 100644 stable/radarr/6.11.2/questions.yaml create mode 100644 stable/radarr/6.11.2/templates/common.yaml create mode 100644 stable/radarr/6.11.2/test_values.yaml create mode 100644 stable/radarr/6.11.2/values.yaml create mode 100644 stable/readarr/6.11.2/CONFIG.md create mode 100644 stable/readarr/6.11.2/Chart.lock create mode 100644 stable/readarr/6.11.2/Chart.yaml create mode 100644 stable/readarr/6.11.2/README.md create mode 100644 stable/readarr/6.11.2/app-readme.md create mode 100644 stable/readarr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/readarr/6.11.2/ix_values.yaml create mode 100644 stable/readarr/6.11.2/questions.yaml create mode 100644 stable/readarr/6.11.2/templates/common.yaml create mode 100644 stable/readarr/6.11.2/test_values.yaml create mode 100644 stable/readarr/6.11.2/values.yaml create mode 100644 stable/reg/1.11.2/CONFIG.md create mode 100644 stable/reg/1.11.2/Chart.lock create mode 100644 stable/reg/1.11.2/Chart.yaml create mode 100644 stable/reg/1.11.2/README.md create mode 100644 stable/reg/1.11.2/app-readme.md create mode 100644 stable/reg/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/reg/1.11.2/ci/ct-values.yaml create mode 100644 stable/reg/1.11.2/ix_values.yaml create mode 100644 stable/reg/1.11.2/questions.yaml create mode 100644 stable/reg/1.11.2/templates/common.yaml create mode 100644 stable/reg/1.11.2/test_values.yaml create mode 100644 stable/reg/1.11.2/values.yaml create mode 100644 stable/resilio-sync/1.9.2/CONFIG.md create mode 100644 stable/resilio-sync/1.9.2/Chart.lock create mode 100644 stable/resilio-sync/1.9.2/Chart.yaml create mode 100644 stable/resilio-sync/1.9.2/README.md create mode 100644 stable/resilio-sync/1.9.2/app-readme.md create mode 100644 stable/resilio-sync/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/resilio-sync/1.9.2/ix_values.yaml create mode 100644 stable/resilio-sync/1.9.2/questions.yaml create mode 100644 stable/resilio-sync/1.9.2/templates/common.yaml create mode 100644 stable/resilio-sync/1.9.2/test_values.yaml create mode 100644 stable/resilio-sync/1.9.2/values.yaml create mode 100644 stable/sabnzbd/6.11.2/CONFIG.md create mode 100644 stable/sabnzbd/6.11.2/Chart.lock create mode 100644 stable/sabnzbd/6.11.2/Chart.yaml create mode 100644 stable/sabnzbd/6.11.2/README.md create mode 100644 stable/sabnzbd/6.11.2/app-readme.md create mode 100644 stable/sabnzbd/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/sabnzbd/6.11.2/ix_values.yaml create mode 100644 stable/sabnzbd/6.11.2/questions.yaml create mode 100644 stable/sabnzbd/6.11.2/templates/common.yaml create mode 100644 stable/sabnzbd/6.11.2/test_values.yaml create mode 100644 stable/sabnzbd/6.11.2/values.yaml create mode 100644 stable/ser2sock/1.9.2/CONFIG.md create mode 100644 stable/ser2sock/1.9.2/Chart.lock create mode 100644 stable/ser2sock/1.9.2/Chart.yaml create mode 100644 stable/ser2sock/1.9.2/README.md create mode 100644 stable/ser2sock/1.9.2/app-readme.md create mode 100644 stable/ser2sock/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/ser2sock/1.9.2/ix_values.yaml create mode 100644 stable/ser2sock/1.9.2/questions.yaml create mode 100644 stable/ser2sock/1.9.2/templates/common.yaml create mode 100644 stable/ser2sock/1.9.2/test_values.yaml create mode 100644 stable/ser2sock/1.9.2/values.yaml create mode 100644 stable/sonarr/6.11.2/CONFIG.md create mode 100644 stable/sonarr/6.11.2/Chart.lock create mode 100644 stable/sonarr/6.11.2/Chart.yaml create mode 100644 stable/sonarr/6.11.2/README.md create mode 100644 stable/sonarr/6.11.2/app-readme.md create mode 100644 stable/sonarr/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/sonarr/6.11.2/ix_values.yaml create mode 100644 stable/sonarr/6.11.2/questions.yaml create mode 100644 stable/sonarr/6.11.2/templates/common.yaml create mode 100644 stable/sonarr/6.11.2/test_values.yaml create mode 100644 stable/sonarr/6.11.2/values.yaml create mode 100644 stable/stash/1.9.3/CONFIG.md create mode 100644 stable/stash/1.9.3/Chart.lock create mode 100644 stable/stash/1.9.3/Chart.yaml create mode 100644 stable/stash/1.9.3/README.md create mode 100644 stable/stash/1.9.3/app-readme.md create mode 100644 stable/stash/1.9.3/charts/common-6.12.1.tgz create mode 100644 stable/stash/1.9.3/ci/ct-values.yaml create mode 100644 stable/stash/1.9.3/ix_values.yaml create mode 100644 stable/stash/1.9.3/questions.yaml create mode 100644 stable/stash/1.9.3/templates/common.yaml create mode 100644 stable/stash/1.9.3/test_values.yaml create mode 100644 stable/stash/1.9.3/values.yaml create mode 100644 stable/syncthing/6.11.2/CONFIG.md create mode 100644 stable/syncthing/6.11.2/Chart.lock create mode 100644 stable/syncthing/6.11.2/Chart.yaml create mode 100644 stable/syncthing/6.11.2/README.md create mode 100644 stable/syncthing/6.11.2/app-readme.md create mode 100644 stable/syncthing/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/syncthing/6.11.2/ix_values.yaml create mode 100644 stable/syncthing/6.11.2/questions.yaml create mode 100644 stable/syncthing/6.11.2/templates/common.yaml create mode 100644 stable/syncthing/6.11.2/test_values.yaml create mode 100644 stable/syncthing/6.11.2/values.yaml create mode 100644 stable/tautulli/6.11.2/CONFIG.md create mode 100644 stable/tautulli/6.11.2/Chart.lock create mode 100644 stable/tautulli/6.11.2/Chart.yaml create mode 100644 stable/tautulli/6.11.2/README.md create mode 100644 stable/tautulli/6.11.2/app-readme.md create mode 100644 stable/tautulli/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/tautulli/6.11.2/ix_values.yaml create mode 100644 stable/tautulli/6.11.2/questions.yaml create mode 100644 stable/tautulli/6.11.2/templates/common.yaml create mode 100644 stable/tautulli/6.11.2/test_values.yaml create mode 100644 stable/tautulli/6.11.2/values.yaml create mode 100644 stable/thelounge/1.11.2/CONFIG.md create mode 100644 stable/thelounge/1.11.2/Chart.lock create mode 100644 stable/thelounge/1.11.2/Chart.yaml create mode 100644 stable/thelounge/1.11.2/README.md create mode 100644 stable/thelounge/1.11.2/app-readme.md create mode 100644 stable/thelounge/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/thelounge/1.11.2/ix_values.yaml create mode 100644 stable/thelounge/1.11.2/questions.yaml create mode 100644 stable/thelounge/1.11.2/templates/common.yaml create mode 100644 stable/thelounge/1.11.2/test_values.yaml create mode 100644 stable/thelounge/1.11.2/values.yaml create mode 100644 stable/traefik/6.13.1/CONFIG.md create mode 100644 stable/traefik/6.13.1/Chart.lock create mode 100644 stable/traefik/6.13.1/Chart.yaml create mode 100644 stable/traefik/6.13.1/LICENSE create mode 100644 stable/traefik/6.13.1/README.md create mode 100644 stable/traefik/6.13.1/app-readme.md create mode 100644 stable/traefik/6.13.1/charts/common-6.12.1.tgz create mode 100644 stable/traefik/6.13.1/crds/ingressroute.yaml create mode 100644 stable/traefik/6.13.1/crds/ingressroutetcp.yaml create mode 100644 stable/traefik/6.13.1/crds/ingressrouteudp.yaml create mode 100644 stable/traefik/6.13.1/crds/middlewares.yaml create mode 100644 stable/traefik/6.13.1/crds/serverstransports.yaml create mode 100644 stable/traefik/6.13.1/crds/tlsoptions.yaml create mode 100644 stable/traefik/6.13.1/crds/tlsstores.yaml create mode 100644 stable/traefik/6.13.1/crds/traefikservices.yaml create mode 100644 stable/traefik/6.13.1/ix_values.yaml create mode 100644 stable/traefik/6.13.1/questions.yaml create mode 100644 stable/traefik/6.13.1/templates/_helpers.tpl create mode 100644 stable/traefik/6.13.1/templates/_podtemplate.tpl create mode 100644 stable/traefik/6.13.1/templates/custom/common.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middleware-namespace.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/basic-middleware.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/basicauth.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/chain.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/forwardauth.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/ratelimit.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/middlewares/redirectScheme.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/portal.yaml create mode 100644 stable/traefik/6.13.1/templates/custom/portalhook.yaml create mode 100644 stable/traefik/6.13.1/templates/daemonset.yaml create mode 100644 stable/traefik/6.13.1/templates/dashboard-hook-ingressroute.yaml create mode 100644 stable/traefik/6.13.1/templates/deployment.yaml create mode 100644 stable/traefik/6.13.1/templates/gateway.yaml create mode 100644 stable/traefik/6.13.1/templates/gatewayclass.yaml create mode 100644 stable/traefik/6.13.1/templates/hpa.yaml create mode 100644 stable/traefik/6.13.1/templates/ingressclass.yaml create mode 100644 stable/traefik/6.13.1/templates/poddisruptionbudget.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/clusterrole.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/clusterrolebinding.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/podsecuritypolicy.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/role.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/rolebinding.yaml create mode 100644 stable/traefik/6.13.1/templates/rbac/serviceaccount.yaml create mode 100644 stable/traefik/6.13.1/templates/service.yaml create mode 100644 stable/traefik/6.13.1/templates/tlsoption.yaml create mode 100644 stable/traefik/6.13.1/test_values.yaml create mode 100644 stable/traefik/6.13.1/values.yaml create mode 100644 stable/transmission/6.11.2/CONFIG.md create mode 100644 stable/transmission/6.11.2/Chart.lock create mode 100644 stable/transmission/6.11.2/Chart.yaml create mode 100644 stable/transmission/6.11.2/README.md create mode 100644 stable/transmission/6.11.2/app-readme.md create mode 100644 stable/transmission/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/transmission/6.11.2/ix_values.yaml create mode 100644 stable/transmission/6.11.2/questions.yaml create mode 100644 stable/transmission/6.11.2/templates/common.yaml create mode 100644 stable/transmission/6.11.2/test_values.yaml create mode 100644 stable/transmission/6.11.2/values.yaml create mode 100644 stable/truecommand/6.11.2/CONFIG.md create mode 100644 stable/truecommand/6.11.2/Chart.lock create mode 100644 stable/truecommand/6.11.2/Chart.yaml create mode 100644 stable/truecommand/6.11.2/README.md create mode 100644 stable/truecommand/6.11.2/app-readme.md create mode 100644 stable/truecommand/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/truecommand/6.11.2/ix_values.yaml create mode 100644 stable/truecommand/6.11.2/questions.yaml create mode 100644 stable/truecommand/6.11.2/templates/common.yaml create mode 100644 stable/truecommand/6.11.2/test_values.yaml create mode 100644 stable/truecommand/6.11.2/values.yaml create mode 100644 stable/tvheadend/7.11.2/CONFIG.md create mode 100644 stable/tvheadend/7.11.2/Chart.lock create mode 100644 stable/tvheadend/7.11.2/Chart.yaml create mode 100644 stable/tvheadend/7.11.2/README.md create mode 100644 stable/tvheadend/7.11.2/app-readme.md create mode 100644 stable/tvheadend/7.11.2/charts/common-6.12.1.tgz create mode 100644 stable/tvheadend/7.11.2/ix_values.yaml create mode 100644 stable/tvheadend/7.11.2/questions.yaml create mode 100644 stable/tvheadend/7.11.2/templates/common.yaml create mode 100644 stable/tvheadend/7.11.2/test_values.yaml create mode 100644 stable/tvheadend/7.11.2/values.yaml create mode 100644 stable/unifi/6.11.2/CONFIG.md create mode 100644 stable/unifi/6.11.2/Chart.lock create mode 100644 stable/unifi/6.11.2/Chart.yaml create mode 100644 stable/unifi/6.11.2/README.md create mode 100644 stable/unifi/6.11.2/app-readme.md create mode 100644 stable/unifi/6.11.2/charts/common-6.12.1.tgz create mode 100644 stable/unifi/6.11.2/ix_values.yaml create mode 100644 stable/unifi/6.11.2/questions.yaml create mode 100644 stable/unifi/6.11.2/templates/common.yaml create mode 100644 stable/unifi/6.11.2/test_values.yaml create mode 100644 stable/unifi/6.11.2/values.yaml create mode 100644 stable/unpackerr/1.11.2/CONFIG.md create mode 100644 stable/unpackerr/1.11.2/Chart.lock create mode 100644 stable/unpackerr/1.11.2/Chart.yaml create mode 100644 stable/unpackerr/1.11.2/README.md create mode 100644 stable/unpackerr/1.11.2/app-readme.md create mode 100644 stable/unpackerr/1.11.2/charts/common-6.12.1.tgz create mode 100644 stable/unpackerr/1.11.2/ix_values.yaml create mode 100644 stable/unpackerr/1.11.2/questions.yaml create mode 100644 stable/unpackerr/1.11.2/templates/common.yaml create mode 100644 stable/unpackerr/1.11.2/test_values.yaml create mode 100644 stable/unpackerr/1.11.2/values.yaml create mode 100644 stable/vaultwarden/5.0.1/CONFIG.md create mode 100644 stable/vaultwarden/5.0.1/Chart.lock create mode 100644 stable/vaultwarden/5.0.1/Chart.yaml create mode 100644 stable/vaultwarden/5.0.1/README.md create mode 100644 stable/vaultwarden/5.0.1/app-readme.md create mode 100644 stable/vaultwarden/5.0.1/charts/common-6.12.1.tgz create mode 100644 stable/vaultwarden/5.0.1/charts/postgresql-1.5.1.tgz create mode 100644 stable/vaultwarden/5.0.1/ix_values.yaml create mode 100644 stable/vaultwarden/5.0.1/questions.yaml create mode 100644 stable/vaultwarden/5.0.1/templates/_configmap.tpl create mode 100644 stable/vaultwarden/5.0.1/templates/_secrets.tpl create mode 100644 stable/vaultwarden/5.0.1/templates/_validate.tpl create mode 100644 stable/vaultwarden/5.0.1/templates/common.yaml create mode 100644 stable/vaultwarden/5.0.1/test_values.yaml create mode 100644 stable/vaultwarden/5.0.1/values.yaml create mode 100644 stable/xteve/1.9.2/CONFIG.md create mode 100644 stable/xteve/1.9.2/Chart.lock create mode 100644 stable/xteve/1.9.2/Chart.yaml create mode 100644 stable/xteve/1.9.2/README.md create mode 100644 stable/xteve/1.9.2/app-readme.md create mode 100644 stable/xteve/1.9.2/charts/common-6.12.1.tgz create mode 100644 stable/xteve/1.9.2/ix_values.yaml create mode 100644 stable/xteve/1.9.2/questions.yaml create mode 100644 stable/xteve/1.9.2/templates/common.yaml create mode 100644 stable/xteve/1.9.2/test_values.yaml create mode 100644 stable/xteve/1.9.2/values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/CONFIG.md create mode 100644 stable/zwavejs2mqtt/6.11.3/Chart.lock create mode 100644 stable/zwavejs2mqtt/6.11.3/Chart.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/README.md create mode 100644 stable/zwavejs2mqtt/6.11.3/app-readme.md create mode 100644 stable/zwavejs2mqtt/6.11.3/charts/common-6.12.1.tgz create mode 100644 stable/zwavejs2mqtt/6.11.3/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/questions.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/test_values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.3/values.yaml diff --git a/incubator/authelia/1.4.1/CONFIG.md b/incubator/authelia/1.4.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/authelia/1.4.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/authelia/1.4.1/Chart.lock b/incubator/authelia/1.4.1/Chart.lock new file mode 100644 index 00000000000..6a26c87139c --- /dev/null +++ b/incubator/authelia/1.4.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.4 +digest: sha256:4f5f0f1b5c6ad97d7f0cce7325137fc5ce0901bf9a2bde98eb621040bf72e0b4 +generated: "2021-08-31T03:20:50.267382961Z" diff --git a/incubator/authelia/1.4.1/Chart.yaml b/incubator/authelia/1.4.1/Chart.yaml new file mode 100644 index 00000000000..d91925e382a --- /dev/null +++ b/incubator/authelia/1.4.1/Chart.yaml @@ -0,0 +1,41 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +- condition: redis.enabled + name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.4 +deprecated: false +description: Authelia is a Single Sign-On Multi-Factor portal for web apps +home: https://github.com/truecharts/apps/tree/master/charts/stable/authelia +icon: https://avatars2.githubusercontent.com/u/59122411?s=200&v=4 +keywords: +- authelia +- authentication +- login +- SSO +- Authentication +- Security +- Two-Factor +- U2F +- YubiKey +- Push Notifications +- LDAP +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: authelia +sources: +- https://github.com/authelia/chartrepo +- https://github.com/authelia/authelia +type: application +version: 1.4.1 diff --git a/incubator/authelia/1.4.1/README.md b/incubator/authelia/1.4.1/README.md new file mode 100644 index 00000000000..0714762eafe --- /dev/null +++ b/incubator/authelia/1.4.1/README.md @@ -0,0 +1,45 @@ +# Introduction + +![Version: 1.4.1](https://img.shields.io/badge/Version-1.4.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Authelia is a Single Sign-On Multi-Factor portal for web apps + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | redis | 15.0.4 | +| https://truecharts.org/ | common | 6.12.1 | +| https://truecharts.org/ | postgresql | 1.5.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/authelia/1.4.1/app-readme.md b/incubator/authelia/1.4.1/app-readme.md new file mode 100644 index 00000000000..4e71e18c315 --- /dev/null +++ b/incubator/authelia/1.4.1/app-readme.md @@ -0,0 +1,4 @@ +Authelia is a Single Sign-On Multi-Factor portal for web apps + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Authelia is a Single Sign-On Multi-Factor portal for web apps diff --git a/incubator/authelia/1.4.1/charts/common-6.12.1.tgz b/incubator/authelia/1.4.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.4.1/charts/postgresql-1.5.1.tgz b/incubator/authelia/1.4.1/charts/postgresql-1.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8e827c8eff81247e723d1304eef80ec4ffb6a818 GIT binary patch literal 32168 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 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.4.1/charts/redis-15.0.4.tgz b/incubator/authelia/1.4.1/charts/redis-15.0.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cc2248fdd1dee6b07b5fd55bd1065b41fef603c5 GIT binary patch literal 77276 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 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.4.1/ix_values.yaml b/incubator/authelia/1.4.1/ix_values.yaml new file mode 100644 index 00000000000..32637a28eec --- /dev/null +++ b/incubator/authelia/1.4.1/ix_values.yaml @@ -0,0 +1,231 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/authelia/authelia + pullPolicy: IfNotPresent + tag: "4.30.4" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: authelia + postgresqlDatabase: authelia + existingSecret: "{{ .Release.Name }}-dbcreds" + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-paths' + +probes: + liveness: + type: HTTP + path: /api/health" + + readiness: + type: HTTP + path: "/api/health" + + startup: + type: HTTP + path: "/api/health" + +## +## Storage Provider Configuration +## +## The available providers are: `local`, `mysql`, `postgres`. You must use one and only one of these providers. +storage: + ## + ## PostgreSQL (Storage Provider) + ## + postgres: + port: 5432 + database: authelia + username: authelia + sslmode: disable + timeout: 5s + +## +## Server Configuration +## +server: + ## + ## Port sets the configured port for the daemon, service, and the probes. + ## Default is 9091 and should not need to be changed. + ## + port: 9091 + + ## Buffers usually should be configured to be the same value. + ## Explanation at https://www.authelia.com/docs/configuration/server.html + ## Read buffer size adjusts the server's max incoming request size in bytes. + ## Write buffer size does the same for outgoing responses. + read_buffer_size: 4096 + write_buffer_size: 4096 + ## Set the single level path Authelia listens on. + ## Must be alphanumeric chars and should not contain any slashes. + path: "" + +## +## Redis Provider +## +## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html +## +## The redis connection details +redisProvider: + port: 6379 + + ## Optional username to be used with authentication. + # username: authelia + username: "" + + ## This is the Redis DB Index https://redis.io/commands/select (sometimes referred to as database number, DB, etc). + database_index: 0 + + ## The maximum number of concurrent active connections to Redis. + maximum_active_connections: 8 + + ## The target number of idle connections to have open ready for work. Useful when opening connections is slow. + minimum_idle_connections: 0 + + ## The Redis TLS configuration. If defined will require a TLS connection to the Redis instance(s). + tls: + enabled: false + + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for the connection. + minimum_version: TLS1.2 + + ## The Redis HA configuration options. + ## This provides specific options to Redis Sentinel, sentinel_name must be defined (Master Name). + high_availability: + enabled: false + enabledSecret: false + ## Sentinel Name / Master Name + sentinel_name: mysentinel + + ## The additional nodes to pre-seed the redis provider with (for sentinel). + ## If the host in the above section is defined, it will be combined with this list to connect to sentinel. + ## For high availability to be used you must have either defined; the host above or at least one node below. + nodes: [] + # nodes: + # - host: sentinel-0.databases.svc.cluster.local + # port: 26379 + # - host: sentinel-1.databases.svc.cluster.local + # port: 26379 + + ## Choose the host with the lowest latency. + route_by_latency: false + + ## Choose the host randomly. + route_randomly: false + +identity_providers: + oidc: + ## Enables this in the config map. Currently in beta stage. + ## See https://www.authelia.com/docs/configuration/identity-providers/oidc.html#roadmap + enabled: false + + access_token_lifespan: 1h + authorize_code_lifespan: 1m + id_token_lifespan: 1h + refresh_token_lifespan: 90m + + enable_client_debug_messages: false + + ## SECURITY NOTICE: It's not recommended changing this option, and highly discouraged to have it below 8 for + ## security reasons. + minimum_parameter_entropy: 8 + + clients: [] + # clients: + # - + ## The ID is the OpenID Connect ClientID which is used to link an application to a configuration. + # id: myapp + + ## The description to show to users when they end up on the consent screen. Defaults to the ID above. + # description: My Application + + ## The client secret is a shared secret between Authelia and the consumer of this client. + # secret: apple123 + + ## Sets the client to public. This should typically not be set, please see the documentation for usage. + # public: false + + ## The policy to require for this client; one_factor or two_factor. + # authorization_policy: two_factor + + ## Audience this client is allowed to request. + # audience: [] + + ## Scopes this client is allowed to request. + # scopes: + # - openid + # - profile + # - email + # - groups + + ## Redirect URI's specifies a list of valid case-sensitive callbacks for this client. + # redirect_uris: + # - https://oidc.example.com/oauth2/callback + + ## Grant Types configures which grants this client can obtain. + ## It's not recommended to configure this unless you know what you're doing. + # grant_types: + # - refresh_token + # - authorization_code + + ## Response Types configures which responses this client can be sent. + ## It's not recommended to configure this unless you know what you're doing. + # response_types: + # - code + + ## Response Modes configures which response modes this client supports. + ## It's not recommended to configure this unless you know what you're doing. + # response_modes: + # - form_post + # - query + # - fragment + + ## The algorithm used to sign userinfo endpoint responses for this client, either none or RS256. + # userinfo_signing_algorithm: none + + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/authelia/1.4.1/questions.yaml b/incubator/authelia/1.4.1/questions.yaml new file mode 100644 index 00000000000..bf246bc7434 --- /dev/null +++ b/incubator/authelia/1.4.1/questions.yaml @@ -0,0 +1,1697 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: domain + group: "App Configuration" + label: "Domain" + description: "The highest domain level possible, for example: domain.com when using app.domain.com" + schema: + type: string + default: "" + required: true + + - variable: default_redirection_url + group: "App Configuration" + label: "Default Redirection Url" + description: "If user tries to authenticate without any referer, this is used" + schema: + type: string + default: "" + required: false + + - variable: theme + group: "App Configuration" + label: "Theme" + schema: + type: string + default: "light" + enum: + - value: "light" + description: "info" + - value: "gray" + description: "gray" + - value: "dark" + description: "dark" + + - variable: log + group: "App Configuration" + label: "Log Configuration " + schema: + type: dict + attrs: + - variable: level + label: "Log Level" + schema: + type: string + default: "info" + enum: + - value: "info" + description: "info" + - value: "debug" + description: "debug" + - value: "trace" + description: "trace" + - variable: format + label: "Log Format" + schema: + type: string + default: "text" + enum: + - value: "json" + description: "json" + - value: "text" + description: "text" + + - variable: totp + group: "App Configuration" + label: "TOTP Configuration" + schema: + type: dict + attrs: + - variable: issuer + label: "Issuer" + description: "The issuer name displayed in the Authenticator application of your choice" + schema: + type: string + default: "" + - variable: period + label: "Period" + description: "The period in seconds a one-time password is current for" + schema: + type: int + default: 30 + - variable: skew + label: "skew" + description: "Controls number of one-time passwords either side of the current one that are valid." + schema: + type: int + default: 1 + + - variable: duo_api + group: "App Configuration" + label: "DUO API Configuration" + description: "Parameters used to contact the Duo API." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostname + label: "Hostname" + schema: + type: string + required: true + default: "" + + - variable: integration_key + label: "integration_key" + schema: + type: string + defaults: "" + required: true + - variable: plain_api_key + label: "plain_api_key" + schema: + type: string + defaults: "" + required: true + + - variable: session + group: "App Configuration" + label: "Session Provider" + description: "The session cookies identify the user once logged in." + schema: + type: dict + attrs: + - variable: name + label: "Cookie Name" + description: "The name of the session cookie." + schema: + type: string + required: true + default: "authelia_session" + - variable: same_site + label: "SameSite Value" + description: "Sets the Cookie SameSite value" + schema: + type: string + default: "lax" + enum: + - value: "lax" + description: "lax" + - value: "strict" + description: "strict" + - variable: expiration + label: "Expiration Time" + description: "The time in seconds before the cookie expires and session is reset." + schema: + type: string + defaults: "1h" + required: true + - variable: inactivity + label: "Inactivity Time" + description: "The inactivity time in seconds before the session is reset." + schema: + type: string + defaults: "5m" + required: true + - variable: inactivity + label: "Remember-Me duration" + description: "The remember me duration" + schema: + type: string + defaults: "5M" + required: true + + - variable: regulation + group: "App Configuration" + label: "Regulation Configuration" + description: "his mechanism prevents attackers from brute forcing the first factor." + schema: + type: dict + attrs: + - variable: max_retries + label: "Maximum Retries" + description: "The number of failed login attempts before user is banned. Set it to 0 to disable regulation." + schema: + type: int + default: 3 + - variable: find_time + label: "Find Time" + description: "The time range during which the user can attempt login before being banned." + schema: + type: string + defaults: "2m" + required: true + - variable: ban_time + label: "Ban Duration" + description: "The length of time before a banned user can login again" + schema: + type: string + defaults: "5m" + required: true + + + - variable: authentication_backend + group: "App Configuration" + label: "Authentication Backend Provider" + description: "sed for verifying user passwords and retrieve information such as email address and groups users belong to." + schema: + type: dict + attrs: + - variable: disable_reset_password + label: "Disable Reset Password" + description: "Disable both the HTML element and the API for reset password functionality" + schema: + type: boolean + default: false + - variable: refresh_interval + label: "Reset Interval" + description: "The amount of time to wait before we refresh data from the authentication backend" + schema: + type: string + defaults: "5m" + required: true + - variable: ldap + label: "LDAP backend configuration" + description: "Used for verifying user passwords and retrieve information such as email address and groups users belong to" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: implementation + label: "Implementation" + description: "The LDAP implementation, this affects elements like the attribute utilised for resetting a password" + schema: + type: string + default: "custom" + enum: + - value: "activedirectory" + description: "activedirectory" + - value: "custom" + description: "custom" + - variable: url + label: "URL" + description: "The url to the ldap server. Format: ://
[:]" + schema: + type: string + default: "ldap://openldap.default.svc.cluster.local" + required: true + - variable: timeout + label: "Connection Timeout" + schema: + type: string + default: "5s" + required: true + - variable: start_tls + label: "Start TLS" + description: "Use StartTLS with the LDAP connection" + schema: + type: boolean + default: false + - variable: tls + label: "TLS Settings" + schema: + type: dict + attrs: + - variable: server_name + label: "Server Name" + description: "Server Name for certificate validation (in case it's not set correctly in the URL)." + schema: + type: string + default: "" + - variable: skip_verify + label: "Skip Certificate Verification" + description: "Skip verifying the server certificate (to allow a self-signed certificate)" + schema: + type: boolean + default: false + - variable: minimum_version + label: "Minimum TLS version" + description: "Minimum TLS version for either Secure LDAP or LDAP StartTLS." + schema: + type: string + default: "TLS1.2" + enum: + - value: "TLS1.0" + description: "TLS1.0" + - value: "TLS1.1" + description: "TLS1.1" + - value: "TLS1.2" + description: "TLS1.2" + - value: "TLS1.3" + description: "TLS1.3" + - variable: base_dn + label: "Base DN" + description: "The base dn for every LDAP query." + schema: + type: string + defaults: "DC=example,DC=com" + required: true + - variable: username_attribute + label: "Username Attribute" + description: "The attribute holding the username of the user" + schema: + type: string + defaults: "" + required: true + - variable: additional_users_dn + label: "Additional Users DN" + description: "An additional dn to define the scope to all users." + schema: + type: string + defaults: "OU=Users" + required: true + - variable: users_filter + label: "Users Filter" + description: "The groups filter used in search queries to find the groups of the user." + schema: + type: string + defaults: "" + required: true + - variable: additional_groups_dn + label: "Additional Groups DN" + description: "An additional dn to define the scope of groups." + schema: + type: string + defaults: "OU=Groups" + required: true + - variable: groups_filter + label: "Groups Filter" + description: "The groups filter used in search queries to find the groups of the user." + schema: + type: string + defaults: "" + required: true + - variable: group_name_attribute + label: "Group name Attribute" + description: "The attribute holding the name of the group" + schema: + type: string + defaults: "" + required: true + - variable: mail_attribute + label: "Mail Attribute" + description: "The attribute holding the primary mail address of the user" + schema: + type: string + defaults: "" + required: true + - variable: display_name_attribute + label: "Display Name Attribute" + description: "he attribute holding the display name of the user. This will be used to greet an authenticated user." + schema: + type: string + defaults: "" + - variable: user + label: "Admin User" + description: "The username of the admin user used to connect to LDAP." + schema: + type: string + defaults: "CN=Authelia,DC=example,DC=com" + required: true + - variable: plain_password + label: "Password" + schema: + type: string + defaults: "" + required: true + - variable: file + label: "File backend configuration" + description: "With this backend, the users database is stored in a file which is updated when users reset their passwords." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: path + label: "Path" + schema: + type: string + defaults: "/config/users_database.yml" + required: true + - variable: password + label: "Password Settings" + schema: + type: dict + attrs: + - variable: algorithm + label: "Algorithm" + schema: + type: string + default: "argon2id" + enum: + - value: "argon2id" + description: "argon2id" + - value: "sha512" + description: "sha512" + - variable: iterations + label: "Iterations" + schema: + type: int + default: 1 + required: true + - variable: key_length + label: "Key Length" + schema: + type: int + default: 32 + required: true + - variable: salt_length + label: "Salt Length" + schema: + type: int + default: 16 + required: true + - variable: memory + label: "Memory" + schema: + type: int + default: 1024 + required: true + - variable: parallelism + label: "Parallelism" + schema: + type: int + default: 8 + required: true + + + - variable: notifier + group: "App Configuration" + label: "Notifier Configuration" + description: "otifications are sent to users when they require a password reset, a u2f registration or a TOTP registration." + schema: + type: dict + attrs: + - variable: disable_startup_check + label: "Disable Startup Check" + schema: + type: boolean + default: false + - variable: filesystem + label: "Filesystem Provider" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: filename + label: "File Path" + schema: + type: string + defaults: "/config/notification.txt" + required: true + - variable: smtp + label: "SMTP Provider" + description: "Use a SMTP server for sending notifications. Authelia uses the PLAIN or LOGIN methods to authenticate." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: host + label: "Host" + schema: + type: string + defaults: "smtp.mail.svc.cluster.local" + required: true + - variable: port + label: "Port" + schema: + type: int + defaults: 25 + required: true + - variable: timeout + label: "Timeout" + schema: + type: string + defaults: "5s" + required: true + - variable: username + label: "Username" + schema: + type: string + defaults: "" + required: true + - variable: plain_password + label: "Password" + schema: + type: string + defaults: "" + required: true + - variable: sender + label: "Sender" + schema: + type: string + defaults: "" + required: true + - variable: identifier + label: "Identifier" + description: "HELO/EHLO Identifier. Some SMTP Servers may reject the default of localhost." + schema: + type: string + defaults: "localhost" + required: true + - variable: subject + label: "Subject" + description: "Subject configuration of the emails sent, {title} is replaced by the text from the notifier" + schema: + type: string + defaults: "[Authelia] {title}" + required: true + - variable: startup_check_address + label: "Startup Check Address" + description: "This address is used during the startup check to verify the email configuration is correct." + schema: + type: string + defaults: "test@authelia.com" + required: true + - variable: disable_require_tls + label: "Disable Require TLS" + schema: + type: boolean + default: false + - variable: disable_html_emails + label: "Disable HTML emails" + schema: + type: boolean + default: false + - variable: tls + label: "TLS Settings" + schema: + type: dict + attrs: + - variable: server_name + label: "Server Name" + description: "Server Name for certificate validation (in case it's not set correctly in the URL)." + schema: + type: string + default: "" + - variable: skip_verify + label: "Skip Certificate Verification" + description: "Skip verifying the server certificate (to allow a self-signed certificate)" + schema: + type: boolean + default: false + - variable: minimum_version + label: "Minimum TLS version" + description: "Minimum TLS version for either Secure LDAP or LDAP StartTLS." + schema: + type: string + default: "TLS1.2" + enum: + - value: "TLS1.0" + description: "TLS1.0" + - value: "TLS1.1" + description: "TLS1.1" + - value: "TLS1.2" + description: "TLS1.2" + - value: "TLS1.3" + description: "TLS1.3" + - variable: access_control + group: "App Configuration" + label: "Access Control Configuration" + description: "Access control is a list of rules defining the authorizations applied for one resource to users or group of users." + schema: + type: dict + attrs: + - variable: default_policy + label: "Default Policy" + description: "Default policy can either be 'bypass', 'one_factor', 'two_factor' or 'deny'." + schema: + type: string + default: "two_factor" + enum: + - value: "bypass" + description: "bypass" + - value: "one_factor" + description: "one_factor" + - value: "two_factor" + description: "two_factor" + - value: "deny" + description: "deny" + + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: networkItem + label: "Network Item" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: network + label: "network" + schema: + type: string + default: "" + required: true + + - variable: rules + label: "Rules" + schema: + type: list + default: [] + items: + - variable: rulesItem + label: "Rule" + schema: + type: dict + attrs: + - variable: domain + label: "Domain" + description: "defines which domain or set of domains the rule applies to." + schema: + type: string + default: "" + required: true + - variable: policy + label: "Policy" + description: "The policy to apply to resources. It must be either 'bypass', 'one_factor', 'two_factor' or 'deny'." + schema: + type: string + default: "two_factor" + enum: + - value: "bypass" + description: "bypass" + - value: "one_factor" + description: "one_factor" + - value: "two_factor" + description: "two_factor" + - value: "deny" + description: "two_factor" + - variable: subject + label: "Subject" + description: "defines the subject to apply authorizations to. This parameter is optional and matching any user if not provided" + schema: + type: list + default: [] + items: + - variable: subjectitem + label: "Subject" + schema: + type: string + default: "" + required: true + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: network + label: "Network" + schema: + type: string + default: "" + required: true + - variable: resources + label: "Resources" + description: "is a list of regular expressions that matches a set of resources to apply the policy to" + schema: + type: list + default: [] + items: + - variable: resource + label: "Resource" + schema: + type: string + default: "" + required: true + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36095 + required: true + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/incubator/authelia/1.4.1/templates/_configmap.tpl b/incubator/authelia/1.4.1/templates/_configmap.tpl new file mode 100644 index 00000000000..4bdeefd71cd --- /dev/null +++ b/incubator/authelia/1.4.1/templates/_configmap.tpl @@ -0,0 +1,245 @@ +{{/* Define the configmap */}} +{{- define "authelia.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-paths +data: + AUTHELIA_SERVER_DISABLE_HEALTHCHECK: "true" + AUTHELIA_JWT_SECRET_FILE: "/secrets/JWT_TOKEN" + AUTHELIA_SESSION_SECRET_FILE: "/secrets/SESSION_ENCRYPTION_KEY" + AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE: "/secrets/STORAGE_PASSWORD" + {{- if .Values.authentication_backend.ldap.enabled }} + AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD_FILE: "/secrets/LDAP_PASSWORD" + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE: "/secrets/SMTP_PASSWORD" + {{- end }} + AUTHELIA_SESSION_REDIS_PASSWORD_FILE: "/secrets/REDIS_PASSWORD" + {{- if and .Values.redisProvider.high_availability.enabled}} + AUTHELIA_SESSION_REDIS_HIGH_AVAILABILITY_SENTINEL_PASSWORD_FILE: "/secrets/REDIS_SENTINEL_PASSWORD" + {{- end }} + {{- if .Values.duo_api.enabled }} + AUTHELIA_DUO_API_SECRET_KEY_FILE: "/secrets/DUO_API_KEY" + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET_FILE: "/secrets/OIDC_HMAC_SECRET" + AUTHELIA_IDENTITY_PROVIDERS_OIDC_ISSUER_PRIVATE_KEY_FILE: "/secrets/OIDC_PRIVATE_KEY" + {{- end }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-configfile +data: + configuration.yaml: | + --- + theme: {{ default "light" .Values.theme }} + default_redirection_url: {{ default (printf "https://www.%s" .Values.domain) .Values.default_redirection_url }} + server: + host: 0.0.0.0 + port: {{ default 9091 .Values.server.port }} + {{- if not (eq "" (default "" .Values.server.path)) }} + path: {{ .Values.server.path }} + {{- end }} + read_buffer_size: {{ default 4096 .Values.server.read_buffer_size }} + write_buffer_size: {{ default 4096 .Values.server.write_buffer_size }} + enable_pprof: {{ default false .Values.server.enable_pprof }} + enable_expvars: {{ default false .Values.server.enable_expvars }} + log: + level: {{ default "info" .Values.log.level }} + format: {{ default "text" .Values.log.format }} + {{- if not (eq "" (default "" .Values.log.file_path)) }} + file_path: {{ .Values.log.file_path }} + keep_stdout: true + {{- end }} + totp: + issuer: {{ default .Values.domain .Values.totp.issuer }} + period: {{ default 30 .Values.totp.period }} + skew: {{ default 1 .Values.totp.skew }} + {{- if .Values.duo_api.enabled }} + duo_api: + hostname: {{ .Values.duo_api.hostname }} + integration_key: {{ .Values.duo_api.integration_key }} + {{- end }} + {{- with $auth := .Values.authentication_backend }} + authentication_backend: + disable_reset_password: {{ $auth.disable_reset_password }} + {{- if $auth.file.enabled }} + file: + path: {{ $auth.file.path }} + password: {{ toYaml $auth.file.password | nindent 10 }} + {{- end }} + {{- if $auth.ldap.enabled }} + ldap: + implementation: {{ default "custom" $auth.ldap.implementation }} + url: {{ $auth.ldap.url }} + timeout: {{ default "5s" $auth.ldap.timeout }} + start_tls: {{ $auth.ldap.start_tls }} + tls: + {{- if hasKey $auth.ldap.tls "server_name" }} + server_name: {{ default $auth.ldap.host $auth.ldap.tls.server_name }} + {{- end }} + minimum_version: {{ default "TLS1.2" $auth.ldap.tls.minimum_version }} + skip_verify: {{ default false $auth.ldap.tls.skip_verify }} + {{- if $auth.ldap.base_dn }} + base_dn: {{ $auth.ldap.base_dn }} + {{- end }} + {{- if $auth.ldap.username_attribute }} + username_attribute: {{ $auth.ldap.username_attribute }} + {{- end }} + {{- if $auth.ldap.additional_users_dn }} + additional_users_dn: {{ $auth.ldap.additional_users_dn }} + {{- end }} + {{- if $auth.ldap.users_filter }} + users_filter: {{ $auth.ldap.users_filter }} + {{- end }} + {{- if $auth.ldap.additional_groups_dn }} + additional_groups_dn: {{ $auth.ldap.additional_groups_dn }} + {{- end }} + {{- if $auth.ldap.groups_filter }} + groups_filter: {{ $auth.ldap.groups_filter }} + {{- end }} + {{- if $auth.ldap.group_name_attribute }} + group_name_attribute: {{ $auth.ldap.group_name_attribute }} + {{- end }} + {{- if $auth.ldap.mail_attribute }} + mail_attribute: {{ $auth.ldap.mail_attribute }} + {{- end }} + {{- if $auth.ldap.display_name_attribute }} + display_name_attribute: {{ $auth.ldap.display_name_attribute }} + {{- end }} + user: {{ $auth.ldap.user }} + {{- end }} + {{- end }} + {{- with $session := .Values.session }} + session: + name: {{ default "authelia_session" $session.name }} + domain: {{ required "A valid .Values.domain entry required!" $.Values.domain }} + same_site: {{ default "lax" $session.same_site }} + expiration: {{ default "1M" $session.expiration }} + inactivity: {{ default "5m" $session.inactivity }} + remember_me_duration: {{ default "1M" $session.remember_me_duration }} + {{- end }} + redis: + host: {{ ( printf "%v-%v" .Release.Name "redis-master" ) }} + {{- with $redis := .Values.redisProvider }} + port: {{ default 6379 $redis.port }} + {{- if not (eq $redis.username "") }} + username: {{ $redis.username }} + {{- end }} + maximum_active_connections: {{ default 8 $redis.maximum_active_connections }} + minimum_idle_connections: {{ default 0 $redis.minimum_idle_connections }} + {{- if $redis.tls.enabled }} + tls: + server_name: {{ $redis.tls.server_name }} + minimum_version: {{ default "TLS1.2" $redis.tls.minimum_version }} + skip_verify: {{ $redis.tls.skip_verify }} + {{- end }} + {{- if $redis.high_availability.enabled }} + high_availability: + sentinel_name: {{ $redis.high_availability.sentinel_name }} + {{- if $redis.high_availability.nodes }} + nodes: {{ toYaml $redis.high_availability.nodes | nindent 10 }} + {{- end }} + route_by_latency: {{ $redis.high_availability.route_by_latency }} + route_randomly: {{ $redis.high_availability.route_randomly }} + {{- end }} + {{- end }} + + regulation: {{ toYaml .Values.regulation | nindent 6 }} + storage: + postgres: + host: {{ printf "%v-%v" .Release.Name "postgresql" }} + {{- with $storage := .Values.storage }} + port: {{ default 5432 $storage.postgres.port }} + database: {{ default "authelia" $storage.postgres.database }} + username: {{ default "authelia" $storage.postgres.username }} + timeout: {{ default "5s" $storage.postgres.timeout }} + sslmode: {{ default "disable" $storage.postgres.sslmode }} + {{- end }} + {{- with $notifier := .Values.notifier }} + notifier: + disable_startup_check: {{ $.Values.notifier.disable_startup_check }} + {{- if $notifier.filesystem.enabled }} + filesystem: + filename: {{ $notifier.filesystem.filename }} + {{- end }} + {{- if $notifier.smtp.enabled }} + smtp: + host: {{ $notifier.smtp.host }} + port: {{ default 25 $notifier.smtp.port }} + timeout: {{ default "5s" $notifier.smtp.timeout }} + username: {{ $notifier.smtp.username }} + sender: {{ $notifier.smtp.sender }} + identifier: {{ $notifier.smtp.identifier }} + subject: {{ $notifier.smtp.subject | quote }} + startup_check_address: {{ $notifier.smtp.startup_check_address }} + disable_require_tls: {{ $notifier.smtp.disable_require_tls }} + disable_html_emails: {{ $notifier.smtp.disable_html_emails }} + tls: + server_name: {{ default $notifier.smtp.host $notifier.smtp.tls.server_name }} + minimum_version: {{ default "TLS1.2" $notifier.smtp.tls.minimum_version }} + skip_verify: {{ default false $notifier.smtp.tls.skip_verify }} + {{- end }} + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + identity_providers: + oidc: + access_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.access_token_lifespan }} + authorize_code_lifespan: {{ default "1m" .Values.identity_providers.oidc.authorize_code_lifespan }} + id_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.id_token_lifespan }} + refresh_token_lifespan: {{ default "90m" .Values.identity_providers.oidc.refresh_token_lifespan }} + enable_client_debug_messages: {{ default false .Values.identity_providers.oidc.enable_client_debug_messages }} + minimum_parameter_entropy: {{ default 8 .Values.identity_providers.oidc.minimum_parameter_entropy }} + {{- if gt (len .Values.identity_providers.oidc.clients) 0 }} + clients: + {{- range $client := .Values.identity_providers.oidc.clients }} + - id: {{ $client.id }} + description: {{ default $client.id $client.description }} + secret: {{ default (randAlphaNum 128) $client.secret }} + {{- if hasKey $client "public" }} + public: {{ $client.public }} + {{- end }} + authorization_policy: {{ default "two_factor" $client.authorization_policy }} + redirect_uris: {{ toYaml $client.redirect_uris | nindent 10 }} + {{- if hasKey $client "audience" }} + audience: {{ toYaml $client.audience | nindent 10 }} + {{- end }} + scopes: {{ toYaml (default (list "openid" "profile" "email" "groups") $client.scopes) | nindent 10 }} + grant_types: {{ toYaml (default (list "refresh_token" "authorization_code") $client.grant_types) | nindent 10 }} + response_types: {{ toYaml (default (list "code") $client.response_types) | nindent 10 }} + {{- if hasKey $client "response_modes" }} + response_modes: {{ toYaml $client.response_modes | nindent 10 }} + {{- end }} + userinfo_signing_algorithm: {{ default "none" $client.userinfo_signing_algorithm }} + {{- end }} + {{- end }} + {{- end }} + access_control: + {{- if (eq (len .Values.access_control.rules) 0) }} + {{- if (eq .Values.access_control.default_policy "bypass") }} + default_policy: one_factor + {{- else if (eq .Values.access_control.default_policy "deny") }} + default_policy: two_factor + {{- else }} + default_policy: {{ .Values.access_control.default_policy }} + {{- end }} + {{- else }} + default_policy: {{ .Values.access_control.default_policy }} + {{- end }} + {{- if (eq (len .Values.access_control.networks) 0) }} + networks: [] + {{- else }} + networks: {{ toYaml .Values.access_control.networks | nindent 6 }} + {{- end }} + {{- if (eq (len .Values.access_control.rules) 0) }} + rules: [] + {{- else }} + rules: {{ toYaml .Values.access_control.rules | nindent 6 }} + {{- end }} + ... +{{- end -}} diff --git a/incubator/authelia/1.4.1/templates/_secrets.tpl b/incubator/authelia/1.4.1/templates/_secrets.tpl new file mode 100644 index 00000000000..44f8b0e1548 --- /dev/null +++ b/incubator/authelia/1.4.1/templates/_secrets.tpl @@ -0,0 +1,112 @@ +{{/* Define the secrets */}} +{{- define "authelia.secrets" -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: {{ .Release.Name }}-dbcreds +{{- $dbprevious := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" .Release.Name "dbcreds" ) | quote ) }} +{{- $dbPass := "" }} +data: +{{- if $dbprevious }} + postgresql-password: {{ ( index $dbprevious.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $dbprevious.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque + + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: rediscreds +{{- $redisprevious := lookup "v1" "Secret" .Release.Namespace "rediscreds" }} +{{- $redisPass := "" }} +{{- $sentinelPass := "" }} +data: +{{- if $redisprevious }} + redis-password: {{ ( index $redisprevious.data "redis-password" ) }} + sentinel-password: {{ ( index $redisprevious.data "sentinel-password" ) }} +{{- else }} + {{- $redisPass = randAlphaNum 50 }} + {{- $sentinelPass = randAlphaNum 50 }} + redis-password: {{ $redisPass | b64enc | quote }} + sentinel-password: {{ $sentinelPass | b64enc | quote }} +{{- end }} + masterhost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} + slavehost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} +type: Opaque + + +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ include "common.names.fullname" . }}-secrets +{{- $autheliaprevious := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" ( ( include "common.names.fullname" . ) | quote ) "-secrets" ) | quote ) }} +{{- $oidckey := "" }} +{{- $oidcsecret := "" }} +{{- $jwtsecret := "" }} +{{- $sessionsecret := "" }} +data: + {{- if $autheliaprevious }} + SESSION_ENCRYPTION_KEY: {{ index $autheliaprevious.data "SESSION_ENCRYPTION_KEY" }} + JWT_TOKEN: {{ index $autheliaprevious.data "JWT_TOKEN" }} + {{- else }} + {{- $jwtsecret := randAlphaNum 50 }} + {{- $sessionsecret := randAlphaNum 50 }} + SESSION_ENCRYPTION_KEY: {{ $jwtsecret | b64enc | quote }} + JWT_TOKEN: {{ $jwtsecret | b64enc | quote }} + {{- end }} + {{- if .Values.authentication_backend.ldap.enabled }} + LDAP_PASSWORD: {{ .Values.authentication_backend.ldap.plain_password }} + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + SMTP_PASSWORD: {{ .Values.notifier.smtp.plain_password }} + {{- end }} + {{- if .Values.duo_api.enabled }} + DUO_API_KEY: {{ .Values.duo_api.plain_api_key | b64enc }} + {{- end }} + {{- if $dbprevious }} + STORAGE_PASSWORD: {{ ( index $dbprevious.data "postgresql-password" ) }} + {{- else }} + STORAGE_PASSWORD: {{ $dbPass | b64enc | quote }} + {{- end }} + {{- if $redisprevious }} + REDIS_PASSWORD: {{ ( index $redisprevious.data "redis-password" ) }} + {{- if .Values.redisProvider.high_availability.enabled}} + REDIS_SENTINEL_PASSWORD: {{ ( index $redisprevious.data "sentinel-password" ) }} + {{- end }} + {{- else }} + REDIS_PASSWORD: {{ $redisPass | b64enc | quote }} + {{- if .Values.redisProvider.high_availability.enabled}} + REDIS_SENTINEL_PASSWORD: {{ $sentinelPass | b64enc | quote }} + {{- end }} + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + {{- if $autheliaprevious }} + OIDC_PRIVATE_KEY: {{ index $autheliaprevious.data "OIDC_PRIVATE_KEY" }} + OIDC_HMAC_SECRET: {{index $autheliaprevious.data "OIDC_HMAC_SECRET" }} + {{- else }} + {{- $oidckey := genPrivateKey "rsa" }} + {{- $oidcsecret := randAlphaNum 32 }} + OIDC_PRIVATE_KEY: {{ $oidckey | b64enc }} + OIDC_HMAC_SECRET: {{ $oidcsecret | b64enc }} + {{- end }} + {{- end }} + + +{{- end -}} diff --git a/incubator/authelia/1.4.1/templates/common.yaml b/incubator/authelia/1.4.1/templates/common.yaml new file mode 100644 index 00000000000..caa2c91f302 --- /dev/null +++ b/incubator/authelia/1.4.1/templates/common.yaml @@ -0,0 +1,72 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render configmap for authelia */}} +{{- include "authelia.configmap" . }} + +{{/* Render secrets for authelia */}} +{{- include "authelia.secrets" . }} + +{{/* Append the general configMap volume to the volumes */}} +{{- define "authelia.configmapVolume" -}} +enabled: "true" +mountPath: " /configuration.yaml" +readOnly: true +subPath: configuration.yaml +type: "custom" +volumeSpec: + configMap: + name: {{ include "common.names.fullname" . }}-configfile + items: + - key: configuration.yaml + path: configuration.yaml +{{- end -}} + +{{/* Append the general secret volumes to the volumes */}} +{{- define "authelia.secretVolumes" -}} +enabled: "true" +mountPath: " /secrets" +readOnly: true +type: "custom" +volumeSpec: + secret: + secretName: {{ include "common.names.fullname" . }}-secrets + items: + - key: "JWT_TOKEN" + path: JWT_TOKEN + - key: "SESSION_ENCRYPTION_KEY" + path: SESSION_ENCRYPTION_KEY + - key: "STORAGE_PASSWORD" + path: STORAGE_PASSWORD + {{- if .Values.authentication_backend.ldap.enabled }} + - key: "LDAP_PASSWORD" + path: LDAP_PASSWORD + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + - key: "SMTP_PASSWORD" + path: SMTP_PASSWORD + {{- end }} + - key: "REDIS_PASSWORD" + path: REDIS_PASSWORD + {{- if .Values.redisProvider.high_availability.enabled}} + - key: "REDIS_SENTINEL_PASSWORD" + path: REDIS_SENTINEL_PASSWORD + {{- end }} + {{- if .Values.duo_api.enabled }} + - key: "DUO_API_KEY" + path: DUO_API_KEY + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + - key: "OIDC_PRIVATE_KEY" + path: OIDC_PRIVATE_KEY + - key: "OIDC_HMAC_SECRET" + path: OIDC_HMAC_SECRET + {{- end }} +{{- end -}} + +{{- $_ := set .Values.persistence "authelia-configfile" (include "authelia.configmapVolume" . | fromYaml) -}} +{{- $_ := set .Values.persistence "authelia-secrets" (include "authelia.secretVolumes" . | fromYaml) -}} + + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/incubator/authelia/1.4.1/test_values.yaml b/incubator/authelia/1.4.1/test_values.yaml new file mode 100644 index 00000000000..f416a33a438 --- /dev/null +++ b/incubator/authelia/1.4.1/test_values.yaml @@ -0,0 +1,662 @@ +# Default values for Bitwarden. + +image: + repository: ghcr.io/authelia/authelia + pullPolicy: IfNotPresent + tag: "4.30.4" + +command: ["authelia"] +args: ["--config=/configuration.yaml"] + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 9091 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + redismaster: + noMount: true + forceName: "redismaster" + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: authelia + postgresqlDatabase: authelia + existingSecret: "{{ .Release.Name }}-dbcreds" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + + +podSecurityContext: + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + privileged: false + + +resources: + limits: {} + # limits: + # cpu: "4.00" + # memory: 125Mi + requests: {} + # requests: + # cpu: "0.25" + # memory: 50Mi + +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-paths' + +probes: + liveness: + type: HTTP + path: /api/health" + + readiness: + type: HTTP + path: "/api/health" + + startup: + type: HTTP + path: "/api/health" + +domain: example.com + +## +## Server Configuration +## +server: + ## + ## Port sets the configured port for the daemon, service, and the probes. + ## Default is 9091 and should not need to be changed. + ## + port: 9091 + + ## Buffers usually should be configured to be the same value. + ## Explanation at https://www.authelia.com/docs/configuration/server.html + ## Read buffer size adjusts the server's max incoming request size in bytes. + ## Write buffer size does the same for outgoing responses. + read_buffer_size: 4096 + write_buffer_size: 4096 + ## Set the single level path Authelia listens on. + ## Must be alphanumeric chars and should not contain any slashes. + path: "" + +log: + ## Level of verbosity for logs: info, debug, trace. + level: trace + + ## Format the logs are written as: json, text. + format: text + + ## TODO: Statefulness check should check if this is set, and the configMap should enable it. + ## File path where the logs will be written. If not set logs are written to stdout. + # file_path: /config/authelia.log + +## Default redirection URL +## +## If user tries to authenticate without any referer, Authelia does not know where to redirect the user to at the end +## of the authentication process. This parameter allows you to specify the default redirection URL Authelia will use +## in such a case. +## +## Note: this parameter is optional. If not provided, user won't be redirected upon successful authentication. +## Default is https://www. (value at the top of the values.yaml). +default_redirection_url: "" +# default_redirection_url: https://example.com + +theme: light + +## +## TOTP Configuration +## +## Parameters used for TOTP generation +totp: + ## The issuer name displayed in the Authenticator application of your choice + ## See: https://github.com/google/google-authenticator/wiki/Key-Uri-Format for more info on issuer names + ## Defaults to . + issuer: "" + ## The period in seconds a one-time password is current for. Changing this will require all users to register + ## their TOTP applications again. Warning: before changing period read the docs link below. + period: 30 + ## The skew controls number of one-time passwords either side of the current one that are valid. + ## Warning: before changing skew read the docs link below. + ## See: https://www.authelia.com/docs/configuration/one-time-password.html#period-and-skew to read the documentation. + skew: 1 + +## +## Duo Push API Configuration +## +## Parameters used to contact the Duo API. Those are generated when you protect an application of type +## "Partner Auth API" in the management panel. +duo_api: + enabled: false + hostname: api-123456789.example.com + integration_key: ABCDEF + plain_api_key: "" + +## +## Authentication Backend Provider Configuration +## +## Used for verifying user passwords and retrieve information such as email address and groups users belong to. +## +## The available providers are: `file`, `ldap`. You must use one and only one of these providers. +authentication_backend: + ## Disable both the HTML element and the API for reset password functionality + disable_reset_password: false + + ## The amount of time to wait before we refresh data from the authentication backend. Uses duration notation. + ## To disable this feature set it to 'disable', this will slightly reduce security because for Authelia, users will + ## always belong to groups they belonged to at the time of login even if they have been removed from them in LDAP. + ## To force update on every request you can set this to '0' or 'always', this will increase processor demand. + ## See the below documentation for more information. + ## Duration Notation docs: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ## Refresh Interval docs: https://www.authelia.com/docs/configuration/authentication/ldap.html#refresh-interval + refresh_interval: 5m + + ## LDAP backend configuration. + ## + ## This backend allows Authelia to be scaled to more + ## than one instance and therefore is recommended for + ## production. + ldap: + + ## Enable LDAP Backend. + enabled: false + + ## The LDAP implementation, this affects elements like the attribute utilised for resetting a password. + ## Acceptable options are as follows: + ## - 'activedirectory' - For Microsoft Active Directory. + ## - 'custom' - For custom specifications of attributes and filters. + ## This currently defaults to 'custom' to maintain existing behaviour. + ## + ## Depending on the option here certain other values in this section have a default value, notably all of the + ## attribute mappings have a default value that this config overrides, you can read more about these default values + ## at https://www.authelia.com/docs/configuration/authentication/ldap.html#defaults + implementation: activedirectory + + ## The url to the ldap server. Format: ://
[:]. + ## Scheme can be ldap or ldaps in the format (port optional). + url: ldap://openldap.default.svc.cluster.local + + ## Connection Timeout. + timeout: 5s + + ## Use StartTLS with the LDAP connection. + start_tls: false + + tls: + ## Server Name for certificate validation (in case it's not set correctly in the URL). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for either Secure LDAP or LDAP StartTLS. + minimum_version: TLS1.2 + + ## The base dn for every LDAP query. + base_dn: DC=example,DC=com + + ## The attribute holding the username of the user. This attribute is used to populate the username in the session + ## information. It was introduced due to #561 to handle case insensitive search queries. For you information, + ## Microsoft Active Directory usually uses 'sAMAccountName' and OpenLDAP usually uses 'uid'. Beware that this + ## attribute holds the unique identifiers for the users binding the user and the configuration stored in database. + ## Therefore only single value attributes are allowed and the value must never be changed once attributed to a user + ## otherwise it would break the configuration for that user. Technically, non-unique attributes like 'mail' can also + ## be used but we don't recommend using them, we instead advise to use the attributes mentioned above + ## (sAMAccountName and uid) to follow https://www.ietf.org/rfc/rfc2307.txt. + username_attribute: "" + + ## An additional dn to define the scope to all users. + additional_users_dn: OU=Users + + ## The users filter used in search queries to find the user profile based on input filled in login form. + ## Various placeholders are available in the user filter: + ## - {input} is a placeholder replaced by what the user inputs in the login form. + ## - {username_attribute} is a mandatory placeholder replaced by what is configured in `username_attribute`. + ## - {mail_attribute} is a placeholder replaced by what is configured in `mail_attribute`. + ## - DON'T USE - {0} is an alias for {input} supported for backward compatibility but it will be deprecated in later + ## versions, so please don't use it. + ## + ## Recommended settings are as follows: + ## - Microsoft Active Directory: (&({username_attribute}={input})(objectCategory=person)(objectClass=user)) + ## - OpenLDAP: + ## - (&({username_attribute}={input})(objectClass=person)) + ## - (&({username_attribute}={input})(objectClass=inetOrgPerson)) + ## + ## To allow sign in both with username and email, one can use a filter like + ## (&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=person)) + users_filter: "" + + ## An additional dn to define the scope of groups. + additional_groups_dn: OU=Groups + + ## The groups filter used in search queries to find the groups of the user. + ## - {input} is a placeholder replaced by what the user inputs in the login form. + ## - {username} is a placeholder replace by the username stored in LDAP (based on `username_attribute`). + ## - {dn} is a matcher replaced by the user distinguished name, aka, user DN. + ## - {username_attribute} is a placeholder replaced by what is configured in `username_attribute`. + ## - {mail_attribute} is a placeholder replaced by what is configured in `mail_attribute`. + ## - DON'T USE - {0} is an alias for {input} supported for backward compatibility but it will be deprecated in later + ## versions, so please don't use it. + ## - DON'T USE - {1} is an alias for {username} supported for backward compatibility but it will be deprecated in + ## later version, so please don't use it. + ## + ## If your groups use the `groupOfUniqueNames` structure use this instead: + ## (&(uniquemember={dn})(objectclass=groupOfUniqueNames)) + groups_filter: "" + + ## The attribute holding the name of the group + group_name_attribute: "" + + ## The attribute holding the mail address of the user. If multiple email addresses are defined for a user, only the + ## first one returned by the LDAP server is used. + mail_attribute: "" + + ## The attribute holding the display name of the user. This will be used to greet an authenticated user. + display_name_attribute: "" + + ## The username of the admin user. + user: CN=Authelia,DC=example,DC=com + plain_password: "" + + ## + ## File (Authentication Provider) + ## + ## With this backend, the users database is stored in a file which is updated when users reset their passwords. + ## Therefore, this backend is meant to be used in a dev environment and not in production since it prevents Authelia + ## to be scaled to more than one instance. The options under 'password' have sane defaults, and as it has security + ## implications it is highly recommended you leave the default values. Before considering changing these settings + ## please read the docs page below: + ## https://www.authelia.com/docs/configuration/authentication/file.html#password-hash-algorithm-tuning + ## + ## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html + ## + file: + enabled: true + path: /config/users_database.yml + password: + algorithm: argon2id + iterations: 1 + key_length: 32 + salt_length: 16 + memory: 1024 + parallelism: 8 + +## +## Access Control Configuration +## +## Access control is a list of rules defining the authorizations applied for one resource to users or group of users. +## +## If 'access_control' is not defined, ACL rules are disabled and the 'bypass' rule is applied, i.e., access is allowed +## to anyone. Otherwise restrictions follow the rules defined. +## +## Note: One can use the wildcard * to match any subdomain. +## It must stand at the beginning of the pattern. (example: *.mydomain.com) +## +## Note: You must put patterns containing wildcards between simple quotes for the YAML to be syntactically correct. +## +## Definition: A 'rule' is an object with the following keys: 'domain', 'subject', 'policy' and 'resources'. +## +## - 'domain' defines which domain or set of domains the rule applies to. +## +## - 'subject' defines the subject to apply authorizations to. This parameter is optional and matching any user if not +## provided. If provided, the parameter represents either a user or a group. It should be of the form +## 'user:' or 'group:'. +## +## - 'policy' is the policy to apply to resources. It must be either 'bypass', 'one_factor', 'two_factor' or 'deny'. +## +## - 'resources' is a list of regular expressions that matches a set of resources to apply the policy to. This parameter +## is optional and matches any resource if not provided. +## +## Note: the order of the rules is important. The first policy matching (domain, resource, subject) applies. +access_control: + ## Default policy can either be 'bypass', 'one_factor', 'two_factor' or 'deny'. It is the policy applied to any + ## resource if there is no policy to be applied to the user. + default_policy: deny + + networks: [] + # networks: + # - name: private + # networks: + # - 10.0.0.0/8 + # - 172.16.0.0/12 + # - 192.168.0.0/16 + # - name: vpn + # networks: + # - 10.9.0.0/16 + + rules: [] + # rules: + # - domain: public.example.com + # policy: bypass + # - domain: "*.example.com" + # policy: bypass + # methods: + # - OPTIONS + # - domain: secure.example.com + # policy: one_factor + # networks: + # - private + # - vpn + # - 192.168.1.0/24 + # - 10.0.0.1 + # - domain: + # - secure.example.com + # - private.example.com + # policy: two_factor + # - domain: singlefactor.example.com + # policy: one_factor + # - domain: "mx2.mail.example.com" + # subject: "group:admins" + # policy: deny + # - domain: "*.example.com" + # subject: + # - "group:admins" + # - "group:moderators" + # policy: two_factor + # - domain: dev.example.com + # resources: + # - "^/groups/dev/.*$" + # subject: "group:dev" + # policy: two_factor + # - domain: dev.example.com + # resources: + # - "^/users/john/.*$" + # subject: + # - ["group:dev", "user:john"] + # - "group:admins" + # policy: two_factor + # - domain: "{user}.example.com" + # policy: bypass + +## +## Session Provider Configuration +## +## The session cookies identify the user once logged in. +## The available providers are: `memory`, `redis`. Memory is the provider unless redis is defined. +session: + ## The name of the session cookie. (default: authelia_session). + name: authelia_session + + ## Sets the Cookie SameSite value. Possible options are none, lax, or strict. + ## Please read https://www.authelia.com/docs/configuration/session.html#same_site + same_site: lax + + ## The time in seconds before the cookie expires and session is reset. + expiration: 1h + + ## The inactivity time in seconds before the session is reset. + inactivity: 5m + + ## The remember me duration. + ## Value is in seconds, or duration notation. Value of 0 disables remember me. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ## Longer periods are considered less secure because a stolen cookie will last longer giving attackers more time to + ## spy or attack. Currently the default is 1M or 1 month. + remember_me_duration: 1M + +## +## Redis Provider +## +## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html +## +## The redis connection details +redisProvider: + port: 6379 + + ## Optional username to be used with authentication. + # username: authelia + username: "" + + ## This is the Redis DB Index https://redis.io/commands/select (sometimes referred to as database number, DB, etc). + database_index: 0 + + ## The maximum number of concurrent active connections to Redis. + maximum_active_connections: 8 + + ## The target number of idle connections to have open ready for work. Useful when opening connections is slow. + minimum_idle_connections: 0 + + ## The Redis TLS configuration. If defined will require a TLS connection to the Redis instance(s). + tls: + enabled: false + + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for the connection. + minimum_version: TLS1.2 + + ## The Redis HA configuration options. + ## This provides specific options to Redis Sentinel, sentinel_name must be defined (Master Name). + high_availability: + enabled: false + enabledSecret: false + ## Sentinel Name / Master Name + sentinel_name: mysentinel + + ## The additional nodes to pre-seed the redis provider with (for sentinel). + ## If the host in the above section is defined, it will be combined with this list to connect to sentinel. + ## For high availability to be used you must have either defined; the host above or at least one node below. + nodes: [] + # nodes: + # - host: sentinel-0.databases.svc.cluster.local + # port: 26379 + # - host: sentinel-1.databases.svc.cluster.local + # port: 26379 + + ## Choose the host with the lowest latency. + route_by_latency: false + + ## Choose the host randomly. + route_randomly: false + +## +## Regulation Configuration +## +## This mechanism prevents attackers from brute forcing the first factor. It bans the user if too many attempts are done +## in a short period of time. +regulation: + ## The number of failed login attempts before user is banned. Set it to 0 to disable regulation. + max_retries: 3 + + ## The time range during which the user can attempt login before being banned. The user is banned if the + ## authentication failed 'max_retries' times in a 'find_time' seconds window. Find Time accepts duration notation. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + find_time: 2m + + ## The length of time before a banned user can login again. Ban Time accepts duration notation. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ban_time: 5m + + +## +## Storage Provider Configuration +## +## The available providers are: `local`, `mysql`, `postgres`. You must use one and only one of these providers. +storage: + ## + ## PostgreSQL (Storage Provider) + ## + postgres: + port: 5432 + database: authelia + username: authelia + sslmode: disable + timeout: 5s + +## +## Notification Provider +## +## +## Notifications are sent to users when they require a password reset, a u2f registration or a TOTP registration. +## The available providers are: filesystem, smtp. You must use one and only one of these providers. +notifier: + ## You can disable the notifier startup check by setting this to true. + disable_startup_check: false + + ## + ## File System (Notification Provider) + ## + ## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html + ## + filesystem: + enabled: true + filename: /config/notification.txt + + ## + ## SMTP (Notification Provider) + ## + ## Use a SMTP server for sending notifications. Authelia uses the PLAIN or LOGIN methods to authenticate. + ## [Security] By default Authelia will: + ## - force all SMTP connections over TLS including unauthenticated connections + ## - use the disable_require_tls boolean value to disable this requirement + ## (only works for unauthenticated connections) + ## - validate the SMTP server x509 certificate during the TLS handshake against the hosts trusted certificates + ## (configure in tls section) + smtp: + enabled: false + enabledSecret: false + host: smtp.mail.svc.cluster.local + port: 25 + timeout: 5s + username: test + plain_password: test + sender: admin@example.com + ## HELO/EHLO Identifier. Some SMTP Servers may reject the default of localhost. + identifier: localhost + ## Subject configuration of the emails sent. + ## {title} is replaced by the text from the notifier + subject: "[Authelia] {title}" + ## This address is used during the startup check to verify the email configuration is correct. + ## It's not important what it is except if your email server only allows local delivery. + startup_check_address: test@authelia.com + disable_require_tls: false + disable_html_emails: false + + tls: + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for either StartTLS or SMTPS. + minimum_version: TLS1.2 + +identity_providers: + oidc: + ## Enables this in the config map. Currently in beta stage. + ## See https://www.authelia.com/docs/configuration/identity-providers/oidc.html#roadmap + enabled: false + + access_token_lifespan: 1h + authorize_code_lifespan: 1m + id_token_lifespan: 1h + refresh_token_lifespan: 90m + + enable_client_debug_messages: false + + ## SECURITY NOTICE: It's not recommended changing this option, and highly discouraged to have it below 8 for + ## security reasons. + minimum_parameter_entropy: 8 + + clients: [] + # clients: + # - + ## The ID is the OpenID Connect ClientID which is used to link an application to a configuration. + # id: myapp + + ## The description to show to users when they end up on the consent screen. Defaults to the ID above. + # description: My Application + + ## The client secret is a shared secret between Authelia and the consumer of this client. + # secret: apple123 + + ## Sets the client to public. This should typically not be set, please see the documentation for usage. + # public: false + + ## The policy to require for this client; one_factor or two_factor. + # authorization_policy: two_factor + + ## Audience this client is allowed to request. + # audience: [] + + ## Scopes this client is allowed to request. + # scopes: + # - openid + # - profile + # - email + # - groups + + ## Redirect URI's specifies a list of valid case-sensitive callbacks for this client. + # redirect_uris: + # - https://oidc.example.com/oauth2/callback + + ## Grant Types configures which grants this client can obtain. + ## It's not recommended to configure this unless you know what you're doing. + # grant_types: + # - refresh_token + # - authorization_code + + ## Response Types configures which responses this client can be sent. + ## It's not recommended to configure this unless you know what you're doing. + # response_types: + # - code + + ## Response Modes configures which response modes this client supports. + ## It's not recommended to configure this unless you know what you're doing. + # response_modes: + # - form_post + # - query + # - fragment + + ## The algorithm used to sign userinfo endpoint responses for this client, either none or RS256. + # userinfo_signing_algorithm: none diff --git a/incubator/authelia/1.4.1/values.yaml b/incubator/authelia/1.4.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/custom-app/0.2.4/CONFIG.md b/incubator/custom-app/0.2.4/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/custom-app/0.2.4/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/custom-app/0.2.4/Chart.lock b/incubator/custom-app/0.2.4/Chart.lock new file mode 100644 index 00000000000..12cf39366ab --- /dev/null +++ b/incubator/custom-app/0.2.4/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:59.649204844Z" diff --git a/incubator/custom-app/0.2.4/Chart.yaml b/incubator/custom-app/0.2.4/Chart.yaml new file mode 100644 index 00000000000..0d1921bac80 --- /dev/null +++ b/incubator/custom-app/0.2.4/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Advanced tool to create your own TrueCharts-based App +home: https://github.com/truecharts/apps/tree/master/charts/stable/custom-app +icon: https://truecharts.org/_static/img/custom-app-icon.png +keywords: +- custom +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: custom-app +sources: +- https://github.com/truecharts/apps/tree/master/charts/stable/custom-app +type: application +version: 0.2.4 diff --git a/incubator/custom-app/0.2.4/README.md b/incubator/custom-app/0.2.4/README.md new file mode 100644 index 00000000000..1913b57e1ec --- /dev/null +++ b/incubator/custom-app/0.2.4/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 0.2.4](https://img.shields.io/badge/Version-0.2.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Advanced tool to create your own TrueCharts-based App + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/custom-app/0.2.4/app-readme.md b/incubator/custom-app/0.2.4/app-readme.md new file mode 100644 index 00000000000..500e691f792 --- /dev/null +++ b/incubator/custom-app/0.2.4/app-readme.md @@ -0,0 +1,4 @@ +Advanced tool to create your own TrueCharts-based App + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Advanced tool to create your own TrueCharts-based App diff --git a/incubator/custom-app/0.2.4/charts/common-6.12.1.tgz b/incubator/custom-app/0.2.4/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/custom-app/0.2.4/ix_values.yaml b/incubator/custom-app/0.2.4/ix_values.yaml new file mode 100644 index 00000000000..18f32919de7 --- /dev/null +++ b/incubator/custom-app/0.2.4/ix_values.yaml @@ -0,0 +1,10 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/custom-app/0.2.4/questions.yaml b/incubator/custom-app/0.2.4/questions.yaml new file mode 100644 index 00000000000..dc5457b4bc8 --- /dev/null +++ b/incubator/custom-app/0.2.4/questions.yaml @@ -0,0 +1,1194 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + - variable: image + group: "Container Image" + label: "Container" + schema: + type: dict + attrs: + - variable: repository + label: "Container Repository" + schema: + type: string + default: "ghcr.io/k8s-at-home/jackett" + required: true + - variable: tag + label: "Container Tag" + schema: + type: string + default: "v0.18.616" + required: true + - variable: pullPolicy + label: "Container Pullpolicy" + schema: + type: string + default: "IfNotPresent" + enum: + - value: "IfNotPresent" + description: "IfNotPresent" + - value: "Always" + description: "Always" + - value: "Never" + description: "Never" + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplementalGroups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplementalGroup" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: deviceList + label: "Mount (USB) devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + + - variable: resources + group: "Resources and Devices" + label: "Resource Limits" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/incubator/custom-app/0.2.4/templates/common.yaml b/incubator/custom-app/0.2.4/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/custom-app/0.2.4/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/custom-app/0.2.4/test_values.yaml b/incubator/custom-app/0.2.4/test_values.yaml new file mode 100644 index 00000000000..dea556b3d85 --- /dev/null +++ b/incubator/custom-app/0.2.4/test_values.yaml @@ -0,0 +1,43 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.632 + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 9117 + portsList: + - name: "extraport" + enabled: true + port: 9118 + +serviceList: + - name: extraservice + enabled: true + portsList: + - name: "extrasvcport" + enabled: true + port: 9119 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/incubator/custom-app/0.2.4/values.yaml b/incubator/custom-app/0.2.4/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/jdownloader2/0.3.2/CONFIG.md b/incubator/jdownloader2/0.3.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/jdownloader2/0.3.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/jdownloader2/0.3.2/Chart.lock b/incubator/jdownloader2/0.3.2/Chart.lock new file mode 100644 index 00000000000..f3d93d72f2b --- /dev/null +++ b/incubator/jdownloader2/0.3.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:21:04.915576176Z" diff --git a/incubator/jdownloader2/0.3.2/Chart.yaml b/incubator/jdownloader2/0.3.2/Chart.yaml new file mode 100644 index 00000000000..e6aceec5f47 --- /dev/null +++ b/incubator/jdownloader2/0.3.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: JDownloader is a free, open-source download management tool with a huge + community of developers that makes downloading as easy and fast as it should be. +home: https://github.com/truecharts/apps/tree/master/charts/stable/jackett +icon: https://jdownloader.org/_media/knowledge/wiki/jdownloader.png?w=150 +keywords: +- jdownloader +- download +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: Simoneu01@users.noreply.github.com + name: Simoneu01 + url: truecharts.org +name: jdownloader2 +sources: +- https://github.com/jlesage/docker-jdownloader-2 +- https://hub.docker.com/r/jlesage/jdownloader-2 +- https://jdownloader.org/ +type: application +version: 0.3.2 diff --git a/incubator/jdownloader2/0.3.2/README.md b/incubator/jdownloader2/0.3.2/README.md new file mode 100644 index 00000000000..c844228bba8 --- /dev/null +++ b/incubator/jdownloader2/0.3.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 0.3.2](https://img.shields.io/badge/Version-0.3.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/jdownloader2/0.3.2/app-readme.md b/incubator/jdownloader2/0.3.2/app-readme.md new file mode 100644 index 00000000000..fcc6e45d8ae --- /dev/null +++ b/incubator/jdownloader2/0.3.2/app-readme.md @@ -0,0 +1,4 @@ +JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +JDownloader is a free, open-source download management tool with a huge diff --git a/incubator/jdownloader2/0.3.2/charts/common-6.12.1.tgz b/incubator/jdownloader2/0.3.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/jdownloader2/0.3.2/ix_values.yaml b/incubator/jdownloader2/0.3.2/ix_values.yaml new file mode 100644 index 00000000000..f54d8d42d59 --- /dev/null +++ b/incubator/jdownloader2/0.3.2/ix_values.yaml @@ -0,0 +1,21 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/jdownloader-2 + tag: v1.7.1 + pullPolicy: IfNotPresent + +#All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/jdownloader2/0.3.2/questions.yaml b/incubator/jdownloader2/0.3.2/questions.yaml new file mode 100644 index 00000000000..dbc87cce0db --- /dev/null +++ b/incubator/jdownloader2/0.3.2/questions.yaml @@ -0,0 +1,1187 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for jdownloader2 containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for jdownloader2 containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for jdownloader2 containers" + schema: + type: string + default: "022" + - variable: KEEP_APP_RUNNING + label: "KEEP_APP_RUNNING" + description: "When set to 1, the application will be automatically restarted if it crashes or if a user quits it." + schema: + type: int + default: 0 + - variable: gui + label: "GUI Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: DISPLAY_WIDTH + label: "DISPLAY_WIDTH" + description: "Width (in pixels) of the application's window." + schema: + type: string + default: "1280" + required: true + - variable: DISPLAY_HEIGHT + label: "DISPLAY_HEIGHT" + description: "Height (in pixels) of the application's window." + schema: + type: string + default: "768" + required: true + - variable: SECURE_CONNECTION + label: "SECURE_CONNECTION" + description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." + schema: + type: string + default: "0" + required: true + - variable: VNC_PASSWORD + label: "VNC_PASSWORD" + description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." + schema: + private: true + type: string + default: "" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5580 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + - variable: myjd + label: "MyJDownloader" + description: "Port used by MyJDownloader mobile applications and browser extensions to establish a direct connect to the JDownloader" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: myjd + label: "myjd Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3129 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3129 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: vnc + label: "VNC Service" + description: "The VNC service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "VNC Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36094 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/incubator/jdownloader2/0.3.2/templates/common.yaml b/incubator/jdownloader2/0.3.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/jdownloader2/0.3.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/jdownloader2/0.3.2/test_values.yaml b/incubator/jdownloader2/0.3.2/test_values.yaml new file mode 100644 index 00000000000..bf467dbc38c --- /dev/null +++ b/incubator/jdownloader2/0.3.2/test_values.yaml @@ -0,0 +1,50 @@ +# Default values for jdownloader2. + +image: + repository: jlesage/jdownloader-2 + pullPolicy: IfNotPresent + tag: v1.7.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5800 + vnc: + enabled: true + type: ClusterIP + ports: + vnc: + enabled: true + port: 5900 + protocol: "TCP" + +# All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + # Permissions Settings + PUID: "568" + PGID: "568" + # General Settings + KEEP_APP_RUNNING: "0" + CLEAN_TMP_DIR: "1" + # GUI Settings + DISPLAY_WIDTH: "1280" + DISPLAY_HEIGHT: "768" + SECURE_CONNECTION: "0" + VNC_PASSWORD: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/incubator/jdownloader2/0.3.2/values.yaml b/incubator/jdownloader2/0.3.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/nextcloud/3.5.1/CONFIG.md b/incubator/nextcloud/3.5.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/nextcloud/3.5.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/nextcloud/3.5.1/Chart.lock b/incubator/nextcloud/3.5.1/Chart.lock new file mode 100644 index 00000000000..f67c8bf62b0 --- /dev/null +++ b/incubator/nextcloud/3.5.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.4 +digest: sha256:4f5f0f1b5c6ad97d7f0cce7325137fc5ce0901bf9a2bde98eb621040bf72e0b4 +generated: "2021-08-31T03:21:13.162563544Z" diff --git a/incubator/nextcloud/3.5.1/Chart.yaml b/incubator/nextcloud/3.5.1/Chart.yaml new file mode 100644 index 00000000000..700aac5aba1 --- /dev/null +++ b/incubator/nextcloud/3.5.1/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +- condition: redis.enabled + name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.4 +deprecated: false +description: A private cloud server that puts the control and security of your own + data back into your hands. +home: https://nextcloud.com/ +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Nextcloud_Logo.svg/1280px-Nextcloud_Logo.svg.png +keywords: +- nextcloud +- storage +- http +- web +- php +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: nextcloud +sources: +- https://github.com/nextcloud/docker +- https://github.com/nextcloud/helm +type: application +version: 3.5.1 diff --git a/incubator/nextcloud/3.5.1/README.md b/incubator/nextcloud/3.5.1/README.md new file mode 100644 index 00000000000..1146df895b1 --- /dev/null +++ b/incubator/nextcloud/3.5.1/README.md @@ -0,0 +1,45 @@ +# Introduction + +![Version: 3.5.1](https://img.shields.io/badge/Version-3.5.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A private cloud server that puts the control and security of your own data back into your hands. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | redis | 15.0.4 | +| https://truecharts.org/ | common | 6.12.1 | +| https://truecharts.org/ | postgresql | 1.5.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/nextcloud/3.5.1/app-readme.md b/incubator/nextcloud/3.5.1/app-readme.md new file mode 100644 index 00000000000..e7f74fea014 --- /dev/null +++ b/incubator/nextcloud/3.5.1/app-readme.md @@ -0,0 +1,4 @@ +A private cloud server that puts the control and security of your own data back into your hands. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A private cloud server that puts the control and security of your own diff --git a/incubator/nextcloud/3.5.1/charts/common-6.12.1.tgz b/incubator/nextcloud/3.5.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.5.1/charts/postgresql-1.5.1.tgz b/incubator/nextcloud/3.5.1/charts/postgresql-1.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8e827c8eff81247e723d1304eef80ec4ffb6a818 GIT binary patch literal 32168 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 literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.5.1/charts/redis-15.0.4.tgz b/incubator/nextcloud/3.5.1/charts/redis-15.0.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cc2248fdd1dee6b07b5fd55bd1065b41fef603c5 GIT binary patch literal 77276 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 literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.5.1/ix_values.yaml b/incubator/nextcloud/3.5.1/ix_values.yaml new file mode 100644 index 00000000000..05175685dff --- /dev/null +++ b/incubator/nextcloud/3.5.1/ix_values.yaml @@ -0,0 +1,187 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nextcloud + pullPolicy: IfNotPresent + tag: 22.1.0 + +strategy: + type: Recreate + +env: {} + + +envTpl: + POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envFrom: + - configMapRef: + name: nextcloudconfig + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: host + REDIS_HOST: + secretKeyRef: + name: rediscreds + key: masterhost + REDIS_HOST_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + +initContainers: + - name: init-postgresdb + image: postgres:13.1 + command: + - "sh" + - "-c" + - "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +additionalContainers: +- name: hpb + image: nextcloud:21.0.2 + imagePullPolicy: IfNotPresent + command: + - "/bin/bash" + - "-c" + - "--" + args: + - 'while [ ! -f "/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push" ]; do sleep 30; echo "notify_push not found, waiting"; done && /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php' + env: + - name: PORT + value: "7867" + envFrom: + - configMapRef: + name: hpbconfig + ports: + - name: hpb + containerPort: 7867 + volumeMounts: + - mountPath: /var/www/html + name: data + securityContext: + runAsUser: 33 + runAsGroup: 33 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Redainess probe configuration + # @default -- See below + readiness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Startup probe configuration + # @default -- See below + startup: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: true + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/nextcloud/3.5.1/questions.yaml b/incubator/nextcloud/3.5.1/questions.yaml new file mode 100644 index 00000000000..6d98702aae1 --- /dev/null +++ b/incubator/nextcloud/3.5.1/questions.yaml @@ -0,0 +1,1278 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: NEXTCLOUD_ADMIN_USER + label: "NEXTCLOUD_ADMIN_USER" + description: "Sets nextcloud admin username" + schema: + type: string + required: true + default: "" + - variable: NEXTCLOUD_ADMIN_PASSWORD + label: "NEXTCLOUD_ADMIN_PASSWORD" + description: "Sets nextcloud admin password" + schema: + type: string + required: true + default: "" + - variable: TRUSTED_PROXIES + label: "TRUSTED_PROXIES" + description: "Sets nextcloud Trusted Proxies" + schema: + type: string + default: "172.16.0.0/16" + - variable: NODE_IP + label: "NODE_IP" + description: "Sets nextcloud nodeip for nodeport connections" + schema: + type: string + $ref: + - "definitions/nodeIP" + + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36091 + required: true + - variable: hpb + label: "High Performance Backend Service" + description: "The service which runs the High Performance Backend" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: false + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: hpb + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7867 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7867 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36092 + required: true + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/www/html" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: redismaster + label: "Redis Storage" + description: "Stores the Application redis-master-database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "redismaster" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: hpb + label: "High Performance Backend Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/push" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Service" + schema: + type: dict + hidden: true + attrs: + - variable: name + label: "service name" + schema: + type: string + hidden: true + default: "{{ .Release.Name }}-nextcloud-hpb" + - variable: port + label: "serviceport" + schema: + type: int + hidden: true + default: 7867 + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 33 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/incubator/nextcloud/3.5.1/templates/_configmap.tpl b/incubator/nextcloud/3.5.1/templates/_configmap.tpl new file mode 100644 index 00000000000..aa6473aaf29 --- /dev/null +++ b/incubator/nextcloud/3.5.1/templates/_configmap.tpl @@ -0,0 +1,33 @@ +{{/* Define the configmap */}} +{{- define "nextcloud.configmap" -}} + +{{- $hosts := "" }} +{{- if .Values.ingress.main.enabled }} +{{ range $index, $host := .Values.ingress.main.hosts }} + {{- if $index }} + {{ $hosts = ( printf "%v %v" $hosts $host.host ) }} + {{- else }} + {{ $hosts = ( printf "%s" $host.host ) }} + {{- end }} +{{ end }} +{{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nextcloudconfig +data: + NEXTCLOUD_TRUSTED_DOMAINS: {{ ( printf "%v %v %v %v %v" "test.fakedomain.dns" ( .Values.env.NODE_IP | default "localhost" ) ( printf "%v-%v" .Release.Name "nextcloud" ) ( printf "%v-%v" .Release.Name "nextcloud-hpb" ) $hosts ) | quote }} + {{- if .Values.ingress.main.enabled }} + APACHE_DISABLE_REWRITE_IP: "1" + {{- end }} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: hpbconfig +data: + NEXTCLOUD_URL: {{ ( printf "%v-%v" .Release.Name "nextcloud" ) | quote }} + +{{- end -}} diff --git a/incubator/nextcloud/3.5.1/templates/_cronjob.tpl b/incubator/nextcloud/3.5.1/templates/_cronjob.tpl new file mode 100644 index 00000000000..c2ed1ca20f8 --- /dev/null +++ b/incubator/nextcloud/3.5.1/templates/_cronjob.tpl @@ -0,0 +1,51 @@ +{{/* Define the cronjob */}} +{{- define "nextcloud.cronjob" -}} +{{- $jobName := include "common.names.fullname" . -}} + +--- +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ printf "%s-cronjob" $jobName }} + labels: + {{- include "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: + restartPolicy: Never + {{- with (include "common.controller.volumes" . | trim) }} + volumes: + {{- nindent 12 . }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ default .Values.image.tag }}" + imagePullPolicy: {{ default .Values.image.pullPolicy }} + command: [ "php" ] + args: + - "-f" + - "/var/www/html/cron.php" + # Will mount configuration files as www-data (id: 33) by default for nextcloud + {{- with (include "common.controller.volumeMounts" . | trim) }} + volumeMounts: + {{ nindent 16 . }} + {{- end }} + securityContext: + runAsUser: 33 + runAsGroup: 33 + resources: +{{ toYaml .Values.resources | indent 16 }} + +{{- end -}} diff --git a/incubator/nextcloud/3.5.1/templates/_secrets.tpl b/incubator/nextcloud/3.5.1/templates/_secrets.tpl new file mode 100644 index 00000000000..d9ae0df858c --- /dev/null +++ b/incubator/nextcloud/3.5.1/templates/_secrets.tpl @@ -0,0 +1,50 @@ +{{/* Define the secrets */}} +{{- define "nextcloud.secrets" -}} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} + host: {{ ( printf "%v-%v:5432" .Release.Name "postgresql" ) | b64enc | quote }} + plainhost: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }} +type: Opaque + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: rediscreds +{{- $redisprevious := lookup "v1" "Secret" .Release.Namespace "rediscreds" }} +{{- $redisPass := "" }} +data: +{{- if $redisprevious }} + {{- $redisPass = ( index $redisprevious.data "redis-password" ) | b64dec }} + redis-password: {{ ( index $redisprevious.data "redis-password" ) }} +{{- else }} + {{- $redisPass = randAlphaNum 50 }} + redis-password: {{ $redisPass | b64enc | quote }} +{{- end }} + masterhost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} + slavehost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/incubator/nextcloud/3.5.1/templates/common.yaml b/incubator/nextcloud/3.5.1/templates/common.yaml new file mode 100644 index 00000000000..8e72c538b1d --- /dev/null +++ b/incubator/nextcloud/3.5.1/templates/common.yaml @@ -0,0 +1,14 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for nextcloud */}} +{{- include "nextcloud.configmap" . }} + +{{/* Render secrets for nextcloud */}} +{{- include "nextcloud.secrets" . }} + +{{/* Render cronjob for nextcloud */}} +{{- include "nextcloud.cronjob" . }} diff --git a/incubator/nextcloud/3.5.1/test_values.yaml b/incubator/nextcloud/3.5.1/test_values.yaml new file mode 100644 index 00000000000..8c35bcd5a0b --- /dev/null +++ b/incubator/nextcloud/3.5.1/test_values.yaml @@ -0,0 +1,210 @@ +# Default values for Bitwarden. + +image: + repository: nextcloud + pullPolicy: IfNotPresent + tag: 22.1.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + hpb: + enabled: true + ports: + hpb: + enabled: true + port: 7867 + +env: + NEXTCLOUD_ADMIN_USER: "admin" + NEXTCLOUD_ADMIN_PASSWORD: "adminpass" + TRUSTED_PROXIES: "172.16.0.0/16" + +envTpl: + POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envFrom: + - configMapRef: + name: nextcloudconfig + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: host + REDIS_HOST: + secretKeyRef: + name: rediscreds + key: masterhost + REDIS_HOST_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + redismaster: + noMount: true + forceName: "redismaster" + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +initContainers: + - name: init-postgresdb + image: postgres:13.1 + command: + - "sh" + - "-c" + - "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +additionalContainers: +- name: hpb + image: nextcloud:21.0.2 + imagePullPolicy: IfNotPresent + command: + - "/bin/bash" + - "-c" + - "--" + args: + - 'while [ ! -f "/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push" ]; do sleep 30; echo "notify_push not found, waiting"; done && /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php' + env: + - name: PORT + value: "7867" + envFrom: + - configMapRef: + name: hpbconfig + ports: + - name: hpb + containerPort: 7867 + volumeMounts: + - mountPath: /var/www/html + name: data + securityContext: + runAsUser: 33 + runAsGroup: 33 + + +podSecurityContext: + fsGroup: 33 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Redainess probe configuration + # @default -- See below + readiness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Startup probe configuration + # @default -- See below + startup: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false diff --git a/incubator/nextcloud/3.5.1/values.yaml b/incubator/nextcloud/3.5.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/airsonic/1.11.2/CONFIG.md b/stable/airsonic/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/airsonic/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/airsonic/1.11.2/Chart.lock b/stable/airsonic/1.11.2/Chart.lock new file mode 100644 index 00000000000..a183847dbed --- /dev/null +++ b/stable/airsonic/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:07.532273876Z" diff --git a/stable/airsonic/1.11.2/Chart.yaml b/stable/airsonic/1.11.2/Chart.yaml new file mode 100644 index 00000000000..558ebbc44b7 --- /dev/null +++ b/stable/airsonic/1.11.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Airsonic is a Free and Open Source community driven media server +home: https://github.com/truecharts/apps/tree/master/charts/incubator/airsonic +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/airsonic-logo.png +keywords: +- airsonic +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: airsonic +sources: +- https://github.com/airsonic/airsonic +- https://github.com/linuxserver/docker-airsonic +- https://github.com/k8s-at-home/charts/tree/master/charts/airsonic +version: 1.11.2 diff --git a/stable/airsonic/1.11.2/README.md b/stable/airsonic/1.11.2/README.md new file mode 100644 index 00000000000..f9b8d7b1f21 --- /dev/null +++ b/stable/airsonic/1.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Airsonic is a Free and Open Source community driven media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/airsonic/1.11.2/app-readme.md b/stable/airsonic/1.11.2/app-readme.md new file mode 100644 index 00000000000..497aca64338 --- /dev/null +++ b/stable/airsonic/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +Airsonic is a Free and Open Source community driven media server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Airsonic is a Free and Open Source community driven media server diff --git a/stable/airsonic/1.11.2/charts/common-6.12.1.tgz b/stable/airsonic/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/airsonic/1.11.2/ix_values.yaml b/stable/airsonic/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..8771a6489cf --- /dev/null +++ b/stable/airsonic/1.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: linuxserver/airsonic + # -- image tag + tag: version-v10.6.2 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/airsonic/1.11.2/questions.yaml b/stable/airsonic/1.11.2/questions.yaml new file mode 100644 index 00000000000..9821c4964ab --- /dev/null +++ b/stable/airsonic/1.11.2/questions.yaml @@ -0,0 +1,1069 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36050 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/airsonic/1.11.2/templates/common.yaml b/stable/airsonic/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/airsonic/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/airsonic/1.11.2/test_values.yaml b/stable/airsonic/1.11.2/test_values.yaml new file mode 100644 index 00000000000..fcb38fedac1 --- /dev/null +++ b/stable/airsonic/1.11.2/test_values.yaml @@ -0,0 +1,63 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: linuxserver/airsonic + # -- image tag + tag: version-v10.6.2 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-airsonic#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Used to set the base path for reverse proxies eg. /booksonic, /books, etc. + CONTEXT_PATH: # "url-base" + # -- For passing additional java options. For some reverse proxies, you may need to pass `JAVA_OPTS=-Dserver.use-forward-headers=true` for airsonic to generate the proper URL schemes. + JAVA_OPTS: + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 4040 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + music: + enabled: false + mountPath: /music + playlists: + enabled: false + mountPath: /playlists + podcasts: + enabled: false + mountPath: /podcasts + media: + enabled: false + mountPath: /media diff --git a/stable/airsonic/1.11.2/values.yaml b/stable/airsonic/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/appdaemon/3.11.2/CONFIG.md b/stable/appdaemon/3.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/appdaemon/3.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/appdaemon/3.11.2/Chart.lock b/stable/appdaemon/3.11.2/Chart.lock new file mode 100644 index 00000000000..38bb780e558 --- /dev/null +++ b/stable/appdaemon/3.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:13.021209139Z" diff --git a/stable/appdaemon/3.11.2/Chart.yaml b/stable/appdaemon/3.11.2/Chart.yaml new file mode 100644 index 00000000000..2f2afde0ccf --- /dev/null +++ b/stable/appdaemon/3.11.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: v4.0.8 +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: AppDaemon is a loosely coupled, multithreaded, sandboxed python execution + environment for writing automation apps for Home Assistant home automation software. + It also provides a configurable dashboard (HADashboard) suitable for wall mounted + tablets. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/appdaemon +icon: https://github.com/hassio-addons/addon-appdaemon/blob/main/appdaemon/icon.png?raw=true +keywords: +- appdaemon +- homeautomation +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: appdaemon +sources: +- https://github.com/AppDaemon/appdaemon +type: application +version: 3.11.2 diff --git a/stable/appdaemon/3.11.2/README.md b/stable/appdaemon/3.11.2/README.md new file mode 100644 index 00000000000..41a873304be --- /dev/null +++ b/stable/appdaemon/3.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 3.11.2](https://img.shields.io/badge/Version-3.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v4.0.8](https://img.shields.io/badge/AppVersion-v4.0.8-informational?style=flat-square) + +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution environment for writing automation apps for Home Assistant home automation software. It also provides a configurable dashboard (HADashboard) suitable for wall mounted tablets. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/appdaemon/3.11.2/app-readme.md b/stable/appdaemon/3.11.2/app-readme.md new file mode 100644 index 00000000000..0fa940d8b6f --- /dev/null +++ b/stable/appdaemon/3.11.2/app-readme.md @@ -0,0 +1,4 @@ +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution environment for writing automation apps for Home Assistant home automation software. It also provides a configurable dashboard (HADashboard) suitable for wall mounted tablets. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution diff --git a/stable/appdaemon/3.11.2/charts/common-6.12.1.tgz b/stable/appdaemon/3.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/appdaemon/3.11.2/ix_values.yaml b/stable/appdaemon/3.11.2/ix_values.yaml new file mode 100644 index 00000000000..37a0ce9a4bc --- /dev/null +++ b/stable/appdaemon/3.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: acockburn/appdaemon + pullPolicy: IfNotPresent + tag: "4.1.0" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/appdaemon/3.11.2/questions.yaml b/stable/appdaemon/3.11.2/questions.yaml new file mode 100644 index 00000000000..d765bc5c918 --- /dev/null +++ b/stable/appdaemon/3.11.2/questions.yaml @@ -0,0 +1,1040 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: HA_URL + label: "HA URL" + description: "Your HomeAssistant URL" + schema: + type: string + default: "" + required: true + - variable: TOKEN + label: "HA Token" + description: "Your HomeAssistant Token" + schema: + type: string + default: "" + required: true + - variable: DASH_URL + label: "Dashboard URL" + description: "URL of your appdaemon dashboard" + schema: + type: string + default: "http://$HOSTNAME:5050" + required: true + - variable: LATITUDE + label: "Latitude" + description: "Latitude of your home assistant instance" + schema: + type: string + default: "" + valid_chars: '^[0-9]{1,}\.{1}[0-9]{1,}$' + required: true + - variable: LONGITUDE + label: "Longitude" + description: "Longitude of your home assistant instance" + schema: + type: string + default: "" + valid_chars: '^[0-9]{1,}\.{1}[0-9]{1,}$' + required: true + - variable: ELEVATION + label: "Elevation" + description: "Longitude of your home assistant instance" + schema: + type: int + default: 0 + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5050 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51050 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36051 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: conf + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/conf" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/appdaemon/3.11.2/templates/common.yaml b/stable/appdaemon/3.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/appdaemon/3.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/appdaemon/3.11.2/test_values.yaml b/stable/appdaemon/3.11.2/test_values.yaml new file mode 100644 index 00000000000..28a79f5375a --- /dev/null +++ b/stable/appdaemon/3.11.2/test_values.yaml @@ -0,0 +1,43 @@ +image: + repository: ghcr.io/k8s-at-home/appdaemon + pullPolicy: IfNotPresent + tag: "v4.0.8" + +strategy: + type: Recreate + +# Configure the Security Context for the Pod +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +env: + TZ: "America/Chicago" + LATITUDE: 46 + LONGITUDE: -94 + ELEVATION: 1217 + DASH_URL: "http://$HOSTNAME:5050" + +service: + main: + ports: + main: + port: 5050 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51050 + protocol: TCP + +hostPathMounts: + - name: config + enabled: true + mountPath: /conf + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/appdaemon/3.11.2/values.yaml b/stable/appdaemon/3.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/bazarr/6.11.2/CONFIG.md b/stable/bazarr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/bazarr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/bazarr/6.11.2/Chart.lock b/stable/bazarr/6.11.2/Chart.lock new file mode 100644 index 00000000000..b448facb453 --- /dev/null +++ b/stable/bazarr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:18.273990776Z" diff --git a/stable/bazarr/6.11.2/Chart.yaml b/stable/bazarr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..7863ab56eda --- /dev/null +++ b/stable/bazarr/6.11.2/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Bazarr is a companion application to Bazarr and Radarr. It manages and + downloads subtitles based on your requirements +home: https://github.com/truecharts/apps/tree/master/charts/incubator/bazarr +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png +keywords: +- bazarr +- radarr +- bazarr +- subtitles +- usenet +- torrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: bazarr +sources: +- https://github.com/Bazarr/Bazarr +- https://hub.docker.com/r/linuxserver/bazarr +type: application +version: 6.11.2 diff --git a/stable/bazarr/6.11.2/README.md b/stable/bazarr/6.11.2/README.md new file mode 100644 index 00000000000..77ae869142c --- /dev/null +++ b/stable/bazarr/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/bazarr/6.11.2/app-readme.md b/stable/bazarr/6.11.2/app-readme.md new file mode 100644 index 00000000000..f4b7ce82a42 --- /dev/null +++ b/stable/bazarr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Bazarr is a companion application to Bazarr and Radarr. It manages and diff --git a/stable/bazarr/6.11.2/charts/common-6.12.1.tgz b/stable/bazarr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/bazarr/6.11.2/ix_values.yaml b/stable/bazarr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..c6397b4077e --- /dev/null +++ b/stable/bazarr/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/bazarr + pullPolicy: IfNotPresent + tag: v0.9.7 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/bazarr/6.11.2/questions.yaml b/stable/bazarr/6.11.2/questions.yaml new file mode 100644 index 00000000000..799b46274b8 --- /dev/null +++ b/stable/bazarr/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6767 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36025 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/bazarr/6.11.2/templates/common.yaml b/stable/bazarr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/bazarr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/bazarr/6.11.2/test_values.yaml b/stable/bazarr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..1f2fc717768 --- /dev/null +++ b/stable/bazarr/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Bazarr. + +image: + repository: ghcr.io/k8s-at-home/bazarr + pullPolicy: IfNotPresent + tag: v0.9.7 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6767 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/bazarr/6.11.2/values.yaml b/stable/bazarr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/booksonic-air/1.9.2/CONFIG.md b/stable/booksonic-air/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/booksonic-air/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/booksonic-air/1.9.2/Chart.lock b/stable/booksonic-air/1.9.2/Chart.lock new file mode 100644 index 00000000000..8667f84c445 --- /dev/null +++ b/stable/booksonic-air/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:13:23.473599816Z" diff --git a/stable/booksonic-air/1.9.2/Chart.yaml b/stable/booksonic-air/1.9.2/Chart.yaml new file mode 100644 index 00000000000..5236142b4f7 --- /dev/null +++ b/stable/booksonic-air/1.9.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Booksonic is a platform for accessing the audibooks you own wherever + you are +home: https://github.com/truechartsapps/tree/master/charts/incubator/booksonic-air +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/booksonic-air.png +keywords: +- booksonic +- audiobook +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: booksonic-air +sources: +- https://github.com/popeen/Booksonic-Air +- https://hub.docker.com/r/linuxserver/booksonic-air +version: 1.9.2 diff --git a/stable/booksonic-air/1.9.2/README.md b/stable/booksonic-air/1.9.2/README.md new file mode 100644 index 00000000000..b3e228d7398 --- /dev/null +++ b/stable/booksonic-air/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Booksonic is a platform for accessing the audibooks you own wherever you are + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/booksonic-air/1.9.2/app-readme.md b/stable/booksonic-air/1.9.2/app-readme.md new file mode 100644 index 00000000000..9a471b5ea13 --- /dev/null +++ b/stable/booksonic-air/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Booksonic is a platform for accessing the audibooks you own wherever you are + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Booksonic is a platform for accessing the audibooks you own wherever diff --git a/stable/booksonic-air/1.9.2/charts/common-6.12.1.tgz b/stable/booksonic-air/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/booksonic-air/1.9.2/ix_values.yaml b/stable/booksonic-air/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..d4514d8f9dd --- /dev/null +++ b/stable/booksonic-air/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/booksonic-air + pullPolicy: IfNotPresent + tag: version-v2009.1.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/booksonic-air/1.9.2/questions.yaml b/stable/booksonic-air/1.9.2/questions.yaml new file mode 100644 index 00000000000..913099261ce --- /dev/null +++ b/stable/booksonic-air/1.9.2/questions.yaml @@ -0,0 +1,1067 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/booksonic-air/1.9.2/templates/common.yaml b/stable/booksonic-air/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/booksonic-air/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/booksonic-air/1.9.2/test_values.yaml b/stable/booksonic-air/1.9.2/test_values.yaml new file mode 100644 index 00000000000..2f2ff35eade --- /dev/null +++ b/stable/booksonic-air/1.9.2/test_values.yaml @@ -0,0 +1,50 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/booksonic-air + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: version-v2009.1.0 + +# See more environment variables in the [booksonic-air documentation](https://github.com/linuxserver/docker-booksonic-air#parameters) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "568" + # -- Specify the group ID the application will run as + PGID: "568" + # -- Used to set the base path for reverse proxies eg. /booksonic, /books, etc. + # CONTEXT_PATH=url-base + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 4040 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + audiobooks: + enabled: false + podcasts: + enabled: false + othermedia: + enabled: false diff --git a/stable/booksonic-air/1.9.2/values.yaml b/stable/booksonic-air/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/calibre-web/6.11.2/CONFIG.md b/stable/calibre-web/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/calibre-web/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/calibre-web/6.11.2/Chart.lock b/stable/calibre-web/6.11.2/Chart.lock new file mode 100644 index 00000000000..6b81fe4ca8b --- /dev/null +++ b/stable/calibre-web/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:33.546735307Z" diff --git a/stable/calibre-web/6.11.2/Chart.yaml b/stable/calibre-web/6.11.2/Chart.yaml new file mode 100644 index 00000000000..345f1f1fbbc --- /dev/null +++ b/stable/calibre-web/6.11.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Calibre-Web is a web app providing a clean interface for browsing, reading + and downloading eBooks using an existing Calibre database. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/calibre-web +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png +keywords: +- calibre-web +- calibre +- ebook +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: calibre-web +sources: +- https://hub.docker.com/r/linuxserver/calibre-web/ +- https://github.com/janeczku/calibre-web +type: application +version: 6.11.2 diff --git a/stable/calibre-web/6.11.2/README.md b/stable/calibre-web/6.11.2/README.md new file mode 100644 index 00000000000..d2fe2907546 --- /dev/null +++ b/stable/calibre-web/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/calibre-web/6.11.2/app-readme.md b/stable/calibre-web/6.11.2/app-readme.md new file mode 100644 index 00000000000..af83432d07c --- /dev/null +++ b/stable/calibre-web/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Calibre-Web is a web app providing a clean interface for browsing, reading diff --git a/stable/calibre-web/6.11.2/charts/common-6.12.1.tgz b/stable/calibre-web/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/calibre-web/6.11.2/ix_values.yaml b/stable/calibre-web/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..1f6e24d1545 --- /dev/null +++ b/stable/calibre-web/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.12 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/calibre-web/6.11.2/questions.yaml b/stable/calibre-web/6.11.2/questions.yaml new file mode 100644 index 00000000000..e52edfec4ed --- /dev/null +++ b/stable/calibre-web/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8083 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36015 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/calibre-web/6.11.2/templates/common.yaml b/stable/calibre-web/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/calibre-web/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/calibre-web/6.11.2/test_values.yaml b/stable/calibre-web/6.11.2/test_values.yaml new file mode 100644 index 00000000000..b424b2ad247 --- /dev/null +++ b/stable/calibre-web/6.11.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Calibre-Web. + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.12 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8083 + +env: {} + # TZ: + # PUID: + # PGID: + # UMASK: + # DOCKER_MODS: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/calibre-web/6.11.2/values.yaml b/stable/calibre-web/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/calibre/1.9.2/CONFIG.md b/stable/calibre/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/calibre/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/calibre/1.9.2/Chart.lock b/stable/calibre/1.9.2/Chart.lock new file mode 100644 index 00000000000..6c13ff4a700 --- /dev/null +++ b/stable/calibre/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:13:28.546269646Z" diff --git a/stable/calibre/1.9.2/Chart.yaml b/stable/calibre/1.9.2/Chart.yaml new file mode 100644 index 00000000000..ace202b696e --- /dev/null +++ b/stable/calibre/1.9.2/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Calibre is a powerful and easy to use e-book manager. +home: https://github.com/truechartsapps/tree/master/charts/incubator/calibre +icon: https://github.com/kovidgoyal/calibre/raw/master/resources/images/lt.png +keywords: +- calibre +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: calibre +sources: +- https://hub.docker.com/r/linuxserver/calibre/ +- https://github.com/kovidgoyal/calibre/ +version: 1.9.2 diff --git a/stable/calibre/1.9.2/README.md b/stable/calibre/1.9.2/README.md new file mode 100644 index 00000000000..28fe7b19dfa --- /dev/null +++ b/stable/calibre/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Calibre is a powerful and easy to use e-book manager. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/calibre/1.9.2/app-readme.md b/stable/calibre/1.9.2/app-readme.md new file mode 100644 index 00000000000..0fa01f56f15 --- /dev/null +++ b/stable/calibre/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Calibre is a powerful and easy to use e-book manager. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Calibre is a powerful and easy to use e-book manager. diff --git a/stable/calibre/1.9.2/charts/common-6.12.1.tgz b/stable/calibre/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/calibre/1.9.2/ix_values.yaml b/stable/calibre/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..a7e2dac960f --- /dev/null +++ b/stable/calibre/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre + pullPolicy: IfNotPresent + tag: version-v5.26.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/calibre/1.9.2/questions.yaml b/stable/calibre/1.9.2/questions.yaml new file mode 100644 index 00000000000..67b2bc2b8fa --- /dev/null +++ b/stable/calibre/1.9.2/questions.yaml @@ -0,0 +1,1182 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK_SET + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: GUAC_USER + label: "GUAC_USER" + description: "Username for the calibre gui" + schema: + type: string + default: "" + - variable: GUAC_PASS + label: "GUAC_PASS" + description: "Password's md5 hash for the calibre gui" + schema: + type: string + default: "" + - variable: CLI_ARGS + label: "CLI_ARGS" + description: "Optionally pass cli start arguments to calibre" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36053 + - variable: webserver + label: "webserver Service" + description: "The webserver service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: webserver + label: "webserver Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8081 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8081 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36054 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/calibre/1.9.2/templates/common.yaml b/stable/calibre/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..c53fdc73fbd --- /dev/null +++ b/stable/calibre/1.9.2/templates/common.yaml @@ -0,0 +1,3 @@ +--- + +{{ include "common.all" . }} diff --git a/stable/calibre/1.9.2/test_values.yaml b/stable/calibre/1.9.2/test_values.yaml new file mode 100644 index 00000000000..a1c3cce0c2d --- /dev/null +++ b/stable/calibre/1.9.2/test_values.yaml @@ -0,0 +1,61 @@ +--- + +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +# -- This is the default, you can also use requarks/wiki +image: + # -- image repository + repository: linuxserver/calibre + # -- image tag + tag: version-v5.26.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-calibre#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Username for the calibre gui + GUAC_USER: + # -- Password's md5 hash for the calibre gui + GUAC_PASS: + # -- for umask setting of Calibre, default if left unset is 022. + UMASK_SET: "022" + # -- Optionally pass cli start arguments to calibre. + CLI_ARGS: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + webserver: + enabled: false + type: ClusterIP + ports: + webserver: + enabled: true + port: 8081 + protocol: TCP + targetPort: 8081 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/calibre/1.9.2/values.yaml b/stable/calibre/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/collabora-online/6.11.2/CONFIG.md b/stable/collabora-online/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/collabora-online/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/collabora-online/6.11.2/Chart.lock b/stable/collabora-online/6.11.2/Chart.lock new file mode 100644 index 00000000000..d61a6210448 --- /dev/null +++ b/stable/collabora-online/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:38.726078628Z" diff --git a/stable/collabora-online/6.11.2/Chart.yaml b/stable/collabora-online/6.11.2/Chart.yaml new file mode 100644 index 00000000000..196b47fb98e --- /dev/null +++ b/stable/collabora-online/6.11.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: "Collabora Online Development Edition \u2013 an awesome, Online Office\ + \ suite image suitable for home use." +home: https://github.com/truecharts/apps/tree/master/charts/stable/collabora-online +icon: https://truecharts.org/_static/img/collabora-icon.png +keywords: +- collabora-online +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: collabora-online +sources: +- https://hub.docker.com/r/collabora/code +- https://sdk.collaboraonline.com/contents.html +- https://github.com/CollaboraOnline/online/tree/master/kubernetes/helm +type: application +version: 6.11.2 diff --git a/stable/collabora-online/6.11.2/README.md b/stable/collabora-online/6.11.2/README.md new file mode 100644 index 00000000000..f1a3c96c8f8 --- /dev/null +++ b/stable/collabora-online/6.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/collabora-online/6.11.2/app-readme.md b/stable/collabora-online/6.11.2/app-readme.md new file mode 100644 index 00000000000..1e3bedd43a5 --- /dev/null +++ b/stable/collabora-online/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"Collabora Online Development Edition \u2013 an awesome, Online Office\ diff --git a/stable/collabora-online/6.11.2/charts/common-6.12.1.tgz b/stable/collabora-online/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/collabora-online/6.11.2/ix_values.yaml b/stable/collabora-online/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..7aeb071aae8 --- /dev/null +++ b/stable/collabora-online/6.11.2/ix_values.yaml @@ -0,0 +1,14 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: collabora/code + tag: 6.4.10.10 + pullPolicy: IfNotPresent +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/collabora-online/6.11.2/questions.yaml b/stable/collabora-online/6.11.2/questions.yaml new file mode 100644 index 00000000000..eb37768a5c9 --- /dev/null +++ b/stable/collabora-online/6.11.2/questions.yaml @@ -0,0 +1,983 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/loleaflet/dist/admin/admin.html" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: domain + label: "Domain(s) using collabora" + description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' + schema: + type: string + default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld' + valid_chars: '^([a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}\|{0,1})*$' + required: true + - variable: username + label: "Username for WebUI" + schema: + type: string + default: "admin" + required: true + - variable: password + label: "Password for WebUI" + schema: + type: string + private: true + default: "" + valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}" + required: true + - variable: dictionaries + label: "Dictionaries to use, leave empty to use all" + schema: + type: string + default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" + - variable: extra_params + label: "Extra Parameters to add" + description: 'e.g. "--o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space' + schema: + type: string + default: "--o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true --o:ssl.enable=false" + - variable: DONT_GEN_SSL_CERT + label: "DONT_GEN_SSL_CERT" + description: "When set to true it does NOT generate an SSL cert, you have to use your own" + schema: + type: string + default: "true" + enum: + - value: "true" + description: "true" + - value: "" + description: "false" + - variable: server_name + label: "Server Name" + description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it." + schema: + type: string + default: 'collabora\.domain\.tld' + valid_chars: '^[a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}$' + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9980 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36004 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/collabora-online/6.11.2/templates/common.yaml b/stable/collabora-online/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/collabora-online/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/collabora-online/6.11.2/test_values.yaml b/stable/collabora-online/6.11.2/test_values.yaml new file mode 100644 index 00000000000..2bbc50b4948 --- /dev/null +++ b/stable/collabora-online/6.11.2/test_values.yaml @@ -0,0 +1,22 @@ +image: + repository: collabora/code + tag: 6.4.10.10 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + type: NodePort + ports: + main: + port: 9980 + +env: + domain: nextcloud\.domain\.tld + dictionaries: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + username: admin + password: changeme + extra_params: "-o:welcome.enable=false -o:user_interface.mode=notebookbar -o:ssl.termination=true -o:ssl.enable=false" + server_name: collabora\.domain\.tld diff --git a/stable/collabora-online/6.11.2/values.yaml b/stable/collabora-online/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deconz/1.9.2/CONFIG.md b/stable/deconz/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deconz/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deconz/1.9.2/Chart.lock b/stable/deconz/1.9.2/Chart.lock new file mode 100644 index 00000000000..0bdc03e54f5 --- /dev/null +++ b/stable/deconz/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:13:43.904915093Z" diff --git a/stable/deconz/1.9.2/Chart.yaml b/stable/deconz/1.9.2/Chart.yaml new file mode 100644 index 00000000000..19a7bbf9d5b --- /dev/null +++ b/stable/deconz/1.9.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: deCONZ is an easy to use control software, with which you can set up + and control Zigbee networks of any size without further programming effort. +home: https://github.com/truechartsapps/tree/master/charts/incubator/deconz +icon: https://avatars1.githubusercontent.com/u/4217524?s=400&v=4 +keywords: +- deconz +- home-automation +- zigbee +- conbee +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: deconz +sources: +- https://github.com/dresden-elektronik/deconz-rest-plugin +- https://github.com/marthoc/docker-deconz +version: 1.9.2 diff --git a/stable/deconz/1.9.2/README.md b/stable/deconz/1.9.2/README.md new file mode 100644 index 00000000000..941f2a50dec --- /dev/null +++ b/stable/deconz/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +deCONZ is an easy to use control software, with which you can set up and control Zigbee networks of any size without further programming effort. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deconz/1.9.2/app-readme.md b/stable/deconz/1.9.2/app-readme.md new file mode 100644 index 00000000000..a986a5c28af --- /dev/null +++ b/stable/deconz/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +deCONZ is an easy to use control software, with which you can set up and control Zigbee networks of any size without further programming effort. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +deCONZ is an easy to use control software, with which you can set up diff --git a/stable/deconz/1.9.2/charts/common-6.12.1.tgz b/stable/deconz/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deconz/1.9.2/ix_values.yaml b/stable/deconz/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..bc0f860f664 --- /dev/null +++ b/stable/deconz/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: marthoc/deconz + pullPolicy: IfNotPresent + tag: 2.12.06 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deconz/1.9.2/questions.yaml b/stable/deconz/1.9.2/questions.yaml new file mode 100644 index 00000000000..1374668885e --- /dev/null +++ b/stable/deconz/1.9.2/questions.yaml @@ -0,0 +1,1286 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: DECONZ_DEVICE + label: "DECONZ_DEVICE" + description: "Override the location where deCONZ looks for the RaspBee/Conbee device" + schema: + type: string + default: "/dev/ttyUSB0" + - variable: DECONZ_VNC_MODE + label: "DECONZ_VNC_MODE" + description: "Enable VNC access to the container to view the deCONZ ZigBee mesh" + schema: + type: string + default: "1" + - variable: DECONZ_WEB_PORT + label: "DECONZ_WEB_PORT" + description: "Web UI listen port" + schema: + type: string + default: "80" + - variable: DECONZ_WS_PORT + label: "DECONZ_WS_PORT" + description: "Websocket listen port" + schema: + type: string + default: "443" + - variable: DECONZ_VNC_PORT + label: "DECONZ_VNC_PORT" + description: " VNC server listen port" + schema: + type: string + default: "5900" + - variable: DECONZ_VNC_PASSWORD + label: "DECONZ_VNC_PASSWORD" + description: "If VNC is enabled (DECONZ_VNC_MODE=1) you can change the default password" + schema: + type: string + required: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36055 + - variable: websocket + label: "websocket Service" + description: "The websocket service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: websocket + label: "websocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36056 + - variable: vnc + label: "vnc Service" + description: "The vnc service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "vnc Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36057 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.local/share/dresden-elektronik/deCONZ" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/deconz/1.9.2/templates/common.yaml b/stable/deconz/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deconz/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deconz/1.9.2/test_values.yaml b/stable/deconz/1.9.2/test_values.yaml new file mode 100644 index 00000000000..13f990cab24 --- /dev/null +++ b/stable/deconz/1.9.2/test_values.yaml @@ -0,0 +1,75 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: marthoc/deconz + # -- image tag + tag: 2.12.06 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://github.com/marthoc/docker-deconz/blob/master/README.md) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Override the location where deCONZ looks for the RaspBee/Conbee device. + DECONZ_DEVICE: # /dev/ttyUSB0 + # -- Enable VNC access to the container to view the deCONZ ZigBee mesh + DECONZ_VNC_MODE: 1 + # -- Web UI listen port + DECONZ_WEB_PORT: 80 + # -- Websocket listen port + DECONZ_WS_PORT: 443 + # -- VNC server listen port + DECONZ_VNC_PORT: 5900 + # -- If VNC is enabled (DECONZ_VNC_MODE=1) you can change the default password "changeme" using a Secret. + DECONZ_VNC_PASSWORD: + # secretKeyRef: + # name: deconz-vnc-password + # key: password + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + websocket: + enabled: true + port: 443 + vnc: + enabled: true + port: 5900 + +securityContext: + # -- (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine + privileged: # true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.local/share/dresden-elektronik/deCONZ + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zigbee-controller diff --git a/stable/deconz/1.9.2/values.yaml b/stable/deconz/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deepstack-cpu/4.11.2/CONFIG.md b/stable/deepstack-cpu/4.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deepstack-cpu/4.11.2/Chart.lock b/stable/deepstack-cpu/4.11.2/Chart.lock new file mode 100644 index 00000000000..423f9ab4c86 --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:49.117576473Z" diff --git a/stable/deepstack-cpu/4.11.2/Chart.yaml b/stable/deepstack-cpu/4.11.2/Chart.yaml new file mode 100644 index 00000000000..757a2111b0f --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: DeepStack AI provides AI features including Face Recognition, Object + Detection, Scene Recognition and custom AI Models +home: https://github.com/truecharts/apps/tree/master/charts/stable/deepstack-cpu +icon: https://deepquest.sfo2.digitaloceanspaces.com/deepstackcc/static/img/deepstacklogo.png +keywords: +- AI +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: deepstack-cpu +sources: +- https://github.com/johnolafenwa/DeepStack +- https://hub.docker.com/r/deepquestai/deepstack +- https://www.deepstack.cc/ +type: application +version: 4.11.2 diff --git a/stable/deepstack-cpu/4.11.2/README.md b/stable/deepstack-cpu/4.11.2/README.md new file mode 100644 index 00000000000..6d3498bff0b --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 4.11.2](https://img.shields.io/badge/Version-4.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +DeepStack AI provides AI features including Face Recognition, Object Detection, Scene Recognition and custom AI Models + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deepstack-cpu/4.11.2/app-readme.md b/stable/deepstack-cpu/4.11.2/app-readme.md new file mode 100644 index 00000000000..0f75582169b --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/app-readme.md @@ -0,0 +1,4 @@ +DeepStack AI provides AI features including Face Recognition, Object Detection, Scene Recognition and custom AI Models + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +DeepStack AI provides AI features including Face Recognition, Object diff --git a/stable/deepstack-cpu/4.11.2/charts/common-6.12.1.tgz b/stable/deepstack-cpu/4.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deepstack-cpu/4.11.2/ix_values.yaml b/stable/deepstack-cpu/4.11.2/ix_values.yaml new file mode 100644 index 00000000000..4bff0fb6e80 --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deepquestai/deepstack + pullPolicy: IfNotPresent + tag: cpu-2021.02.1 + +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deepstack-cpu/4.11.2/questions.yaml b/stable/deepstack-cpu/4.11.2/questions.yaml new file mode 100644 index 00000000000..6684f3f006c --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/questions.yaml @@ -0,0 +1,1119 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Configure Enviroment Variables + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: VISION-FACE + label: "VISION-FACE" + description: "Enables Face Detection" + schema: + type: string + default: "False" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: VISION-DETECTION + label: "VISION-DETECTION" + description: "Enables Object Detection" + schema: + type: string + default: "True" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: VISION-SCENE + label: "VISION-SCENE" + description: "Enables Scene Detection" + schema: + type: string + default: "False" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: MODE + label: "Mode" + description: "Sets the performance mode" + schema: + type: string + default: "Medium" + enum: + - value: "High" + description: "High" + - value: "Medium" + description: "Medium" + - value: "Low" + description: "Low" + - variable: MODELSTORE-DETECTION + label: "Custom Models Path" + description: "Change the path of the custom models (Optional)" + schema: + type: string + default: "/modelstore/detection" + required: true + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36005 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/datastore" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/deepstack-cpu/4.11.2/templates/common.yaml b/stable/deepstack-cpu/4.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deepstack-cpu/4.11.2/test_values.yaml b/stable/deepstack-cpu/4.11.2/test_values.yaml new file mode 100644 index 00000000000..c9adc2baa09 --- /dev/null +++ b/stable/deepstack-cpu/4.11.2/test_values.yaml @@ -0,0 +1,41 @@ +# Default values for Jackett. + +image: + repository: deepquestai/deepstack + pullPolicy: IfNotPresent + tag: cpu-2021.02.1 + +strategy: + type: Recreate + +service: + main: + enabled: true + ports: + main: + port: 5000 + +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + PUID: "568" + PGID: "568" + # TZ: UTC + VISION-FACE: "True" + VISION-DETECTION: "True" + VISION-SCENE: "True" + # Path to custom models (needs to be on documentation) + MODELSTORE-DETECTION: "/modelstore/detection" + # High|Medium|Low + MODE: "High" + +persistence: + config: + enabled: true + mountPath: "/datastore" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/deepstack-cpu/4.11.2/values.yaml b/stable/deepstack-cpu/4.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deluge/6.11.2/CONFIG.md b/stable/deluge/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deluge/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deluge/6.11.2/Chart.lock b/stable/deluge/6.11.2/Chart.lock new file mode 100644 index 00000000000..e308e34b73a --- /dev/null +++ b/stable/deluge/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:13:54.313091823Z" diff --git a/stable/deluge/6.11.2/Chart.yaml b/stable/deluge/6.11.2/Chart.yaml new file mode 100644 index 00000000000..1df68622544 --- /dev/null +++ b/stable/deluge/6.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Deluge App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/incubator/deluge +icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200 +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: deluge +sources: +- https://github.com/deluge-torrent/deluge +type: application +version: 6.11.2 diff --git a/stable/deluge/6.11.2/README.md b/stable/deluge/6.11.2/README.md new file mode 100644 index 00000000000..ca9fca62fb3 --- /dev/null +++ b/stable/deluge/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Deluge App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deluge/6.11.2/app-readme.md b/stable/deluge/6.11.2/app-readme.md new file mode 100644 index 00000000000..e078f25b8c3 --- /dev/null +++ b/stable/deluge/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Deluge App for TrueNAS SCALE + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Deluge App for TrueNAS SCALE diff --git a/stable/deluge/6.11.2/charts/common-6.12.1.tgz b/stable/deluge/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deluge/6.11.2/ix_values.yaml b/stable/deluge/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..14051dceb23 --- /dev/null +++ b/stable/deluge/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deluge/6.11.2/questions.yaml b/stable/deluge/6.11.2/questions.yaml new file mode 100644 index 00000000000..1b916e09aea --- /dev/null +++ b/stable/deluge/6.11.2/questions.yaml @@ -0,0 +1,1210 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + ## Portal Button + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Australia/Hobart" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + ## Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + ## Enable Host Network + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Network" + schema: + type: boolean + default: false + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8112 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36026 + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/deluge/6.11.2/templates/common.yaml b/stable/deluge/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deluge/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deluge/6.11.2/test_values.yaml b/stable/deluge/6.11.2/test_values.yaml new file mode 100644 index 00000000000..8b791a2d77d --- /dev/null +++ b/stable/deluge/6.11.2/test_values.yaml @@ -0,0 +1,35 @@ +# Default values for deluge. + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8112 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/deluge/6.11.2/values.yaml b/stable/deluge/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/dizquetv/1.9.2/CONFIG.md b/stable/dizquetv/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/dizquetv/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/dizquetv/1.9.2/Chart.lock b/stable/dizquetv/1.9.2/Chart.lock new file mode 100644 index 00000000000..76eabfd2360 --- /dev/null +++ b/stable/dizquetv/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:13:59.478199448Z" diff --git a/stable/dizquetv/1.9.2/Chart.yaml b/stable/dizquetv/1.9.2/Chart.yaml new file mode 100644 index 00000000000..7ba2342fdf7 --- /dev/null +++ b/stable/dizquetv/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Create live TV channel streams from media on your Plex servers. +home: https://github.com/truechartsapps/tree/master/charts/incubator/dizquetv +icon: https://github.com/vexorian/dizquetv/raw/main/resources/dizquetv.png?raw=true +keywords: +- dizqueTV +- dizquetv +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: dizquetv +sources: +- https://github.com/vexorian/dizquetv +- https://hub.docker.com/r/vexorian/dizquetv +version: 1.9.2 diff --git a/stable/dizquetv/1.9.2/README.md b/stable/dizquetv/1.9.2/README.md new file mode 100644 index 00000000000..1232175e8f7 --- /dev/null +++ b/stable/dizquetv/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Create live TV channel streams from media on your Plex servers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/dizquetv/1.9.2/app-readme.md b/stable/dizquetv/1.9.2/app-readme.md new file mode 100644 index 00000000000..368ab69afef --- /dev/null +++ b/stable/dizquetv/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Create live TV channel streams from media on your Plex servers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Create live TV channel streams from media on your Plex servers. diff --git a/stable/dizquetv/1.9.2/charts/common-6.12.1.tgz b/stable/dizquetv/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/dizquetv/1.9.2/ix_values.yaml b/stable/dizquetv/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..4bc21c65fd5 --- /dev/null +++ b/stable/dizquetv/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: vexorian/dizquetv + pullPolicy: IfNotPresent + tag: 1.4.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/dizquetv/1.9.2/questions.yaml b/stable/dizquetv/1.9.2/questions.yaml new file mode 100644 index 00000000000..3a46d662bc8 --- /dev/null +++ b/stable/dizquetv/1.9.2/questions.yaml @@ -0,0 +1,1067 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36058 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/home/node/app/.dizquetv" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/dizquetv/1.9.2/templates/common.yaml b/stable/dizquetv/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/dizquetv/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/dizquetv/1.9.2/test_values.yaml b/stable/dizquetv/1.9.2/test_values.yaml new file mode 100644 index 00000000000..993d288febc --- /dev/null +++ b/stable/dizquetv/1.9.2/test_values.yaml @@ -0,0 +1,43 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: vexorian/dizquetv + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 1.4.3 + +# -- environment variables. See more environment variables in the [dizquetv documentation](https://hub.docker.com/r/vexorian/dizquetv). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: 1001 + # -- Specify the group ID the application will run as + PGID: 1001 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /home/node/app/.dizquetv diff --git a/stable/dizquetv/1.9.2/values.yaml b/stable/dizquetv/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/duplicati/1.9.2/CONFIG.md b/stable/duplicati/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/duplicati/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/duplicati/1.9.2/Chart.lock b/stable/duplicati/1.9.2/Chart.lock new file mode 100644 index 00000000000..6ef798bdc64 --- /dev/null +++ b/stable/duplicati/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:14:04.55714662Z" diff --git a/stable/duplicati/1.9.2/Chart.yaml b/stable/duplicati/1.9.2/Chart.yaml new file mode 100644 index 00000000000..f58061d55b4 --- /dev/null +++ b/stable/duplicati/1.9.2/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Store securely encrypted backups on cloud storage services! +home: https://github.com/truechartsapps/tree/master/charts/incubator/duplicati +icon: https://avatars.githubusercontent.com/u/8270231?s=200&v=4 +keywords: +- duplicati +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: duplicati +sources: +- https://hub.docker.com/r/linuxserver/duplicati/ +- https://github.com/duplicati/duplicati +version: 1.9.2 diff --git a/stable/duplicati/1.9.2/README.md b/stable/duplicati/1.9.2/README.md new file mode 100644 index 00000000000..0dcab546d52 --- /dev/null +++ b/stable/duplicati/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Store securely encrypted backups on cloud storage services! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/duplicati/1.9.2/app-readme.md b/stable/duplicati/1.9.2/app-readme.md new file mode 100644 index 00000000000..071db847f8e --- /dev/null +++ b/stable/duplicati/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Store securely encrypted backups on cloud storage services! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Store securely encrypted backups on cloud storage services! diff --git a/stable/duplicati/1.9.2/charts/common-6.12.1.tgz b/stable/duplicati/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/duplicati/1.9.2/ix_values.yaml b/stable/duplicati/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..ab1c03b2bc8 --- /dev/null +++ b/stable/duplicati/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/duplicati + pullPolicy: IfNotPresent + tag: latest + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/duplicati/1.9.2/questions.yaml b/stable/duplicati/1.9.2/questions.yaml new file mode 100644 index 00000000000..88a10dcf78e --- /dev/null +++ b/stable/duplicati/1.9.2/questions.yaml @@ -0,0 +1,1067 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8200 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8200 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36059 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/duplicati/1.9.2/templates/common.yaml b/stable/duplicati/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/duplicati/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/duplicati/1.9.2/test_values.yaml b/stable/duplicati/1.9.2/test_values.yaml new file mode 100644 index 00000000000..8c43b855e86 --- /dev/null +++ b/stable/duplicati/1.9.2/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/duplicati + # -- image tag + tag: latest + # -- image pull policy + pullPolicy: IfNotPresent + +# See more environment variables in the [duplicati documentation](https://github.com/linuxserver/docker-duplicati#parameters) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1000" + # -- Specify the group ID the application will run as + PGID: "1000" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8200 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + source: + enabled: false + backups: + enabled: false diff --git a/stable/duplicati/1.9.2/values.yaml b/stable/duplicati/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/emby/6.11.2/CONFIG.md b/stable/emby/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/emby/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/emby/6.11.2/Chart.lock b/stable/emby/6.11.2/Chart.lock new file mode 100644 index 00000000000..192261c5a57 --- /dev/null +++ b/stable/emby/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:09.795027965Z" diff --git a/stable/emby/6.11.2/Chart.yaml b/stable/emby/6.11.2/Chart.yaml new file mode 100644 index 00000000000..77c6607c193 --- /dev/null +++ b/stable/emby/6.11.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Emby Server is a home media server +home: https://github.com/truecharts/apps/master/stable/emby +icon: https://truecharts.org/_static/img/emby-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: dan.sheridan@postman.org.uk + name: djs52 + url: truecharts.org +name: emby +sources: +- https://hub.docker.com/r/linuxserver/emby +- https://github.com/linuxserver/docker-emby.git +type: application +version: 6.11.2 diff --git a/stable/emby/6.11.2/README.md b/stable/emby/6.11.2/README.md new file mode 100644 index 00000000000..ea346958298 --- /dev/null +++ b/stable/emby/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Emby Server is a home media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/emby/6.11.2/app-readme.md b/stable/emby/6.11.2/app-readme.md new file mode 100644 index 00000000000..15ade62a292 --- /dev/null +++ b/stable/emby/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Emby Server is a home media server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Emby Server is a home media server diff --git a/stable/emby/6.11.2/charts/common-6.12.1.tgz b/stable/emby/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/emby/6.11.2/ix_values.yaml b/stable/emby/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..62b028de9c7 --- /dev/null +++ b/stable/emby/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/emby + pullPolicy: IfNotPresent + tag: v4.6.4.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/emby/6.11.2/questions.yaml b/stable/emby/6.11.2/questions.yaml new file mode 100644 index 00000000000..5c0bd7e58f5 --- /dev/null +++ b/stable/emby/6.11.2/questions.yaml @@ -0,0 +1,1113 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36006 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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 + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/emby/6.11.2/templates/common.yaml b/stable/emby/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/emby/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/emby/6.11.2/test_values.yaml b/stable/emby/6.11.2/test_values.yaml new file mode 100644 index 00000000000..65ec246cc86 --- /dev/null +++ b/stable/emby/6.11.2/test_values.yaml @@ -0,0 +1,31 @@ +# Default values for emby. + +image: + repository: ghcr.io/k8s-at-home/emby + pullPolicy: IfNotPresent + tag: v4.6.4.0 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/emby/6.11.2/values.yaml b/stable/emby/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/esphome/6.11.2/CONFIG.md b/stable/esphome/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/esphome/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/esphome/6.11.2/Chart.lock b/stable/esphome/6.11.2/Chart.lock new file mode 100644 index 00000000000..ffa23f99a6f --- /dev/null +++ b/stable/esphome/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:15.000526499Z" diff --git a/stable/esphome/6.11.2/Chart.yaml b/stable/esphome/6.11.2/Chart.yaml new file mode 100644 index 00000000000..17a85263ea5 --- /dev/null +++ b/stable/esphome/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +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://github.com/truecharts/apps/tree/master/charts/stable/esphome +icon: https://esphome.io/_images/logo.svg +keywords: +- esphome +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: esphome +sources: +- https://github.com/esphome/esphome +- https://hub.docker.com/u/esphome +type: application +version: 6.11.2 diff --git a/stable/esphome/6.11.2/README.md b/stable/esphome/6.11.2/README.md new file mode 100644 index 00000000000..ca5e2599a4a --- /dev/null +++ b/stable/esphome/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/esphome/6.11.2/app-readme.md b/stable/esphome/6.11.2/app-readme.md new file mode 100644 index 00000000000..561699f8df7 --- /dev/null +++ b/stable/esphome/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +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 please visit https://truecharts.org +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful diff --git a/stable/esphome/6.11.2/charts/common-6.12.1.tgz b/stable/esphome/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/esphome/6.11.2/ix_values.yaml b/stable/esphome/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..8ffc4bcf1a8 --- /dev/null +++ b/stable/esphome/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 2021.8.2 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/esphome/6.11.2/questions.yaml b/stable/esphome/6.11.2/questions.yaml new file mode 100644 index 00000000000..8edb7d8a6d0 --- /dev/null +++ b/stable/esphome/6.11.2/questions.yaml @@ -0,0 +1,1208 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6052 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6052 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36007 + # Configure app volumes + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: platformio + label: "Platformio Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/.platformio" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/esphome/6.11.2/templates/common.yaml b/stable/esphome/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/esphome/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/esphome/6.11.2/test_values.yaml b/stable/esphome/6.11.2/test_values.yaml new file mode 100644 index 00000000000..8dfd7964c09 --- /dev/null +++ b/stable/esphome/6.11.2/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for esphome. + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 2021.8.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/esphome/6.11.2/values.yaml b/stable/esphome/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/external-service/1.4.1/CONFIG.md b/stable/external-service/1.4.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/external-service/1.4.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/external-service/1.4.1/Chart.lock b/stable/external-service/1.4.1/Chart.lock new file mode 100644 index 00000000000..709c0201b3d --- /dev/null +++ b/stable/external-service/1.4.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:20.154443722Z" diff --git a/stable/external-service/1.4.1/Chart.yaml b/stable/external-service/1.4.1/Chart.yaml new file mode 100644 index 00000000000..cfb51ffd957 --- /dev/null +++ b/stable/external-service/1.4.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Allow external services to be used like Apps. +home: https://github.com/truecharts/apps/tree/master/charts/stable/external-service +icon: https://truecharts.org/_static/img/external-service-icon.png +keywords: +- external-service +- reverse-proxy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: external-service +sources: +- https://github.com/truecharts/apps/tree/master/charts/stable/external-service +type: application +version: 1.4.1 diff --git a/stable/external-service/1.4.1/README.md b/stable/external-service/1.4.1/README.md new file mode 100644 index 00000000000..e4417d2dfc0 --- /dev/null +++ b/stable/external-service/1.4.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.4.1](https://img.shields.io/badge/Version-1.4.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Allow external services to be used like Apps. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/external-service/1.4.1/app-readme.md b/stable/external-service/1.4.1/app-readme.md new file mode 100644 index 00000000000..c61beedadb5 --- /dev/null +++ b/stable/external-service/1.4.1/app-readme.md @@ -0,0 +1,4 @@ +Allow external services to be used like Apps. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Allow external services to be used like Apps. diff --git a/stable/external-service/1.4.1/charts/common-6.12.1.tgz b/stable/external-service/1.4.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/external-service/1.4.1/ix_values.yaml b/stable/external-service/1.4.1/ix_values.yaml new file mode 100644 index 00000000000..64d5a513ed3 --- /dev/null +++ b/stable/external-service/1.4.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +# Disable Deployment +controller: + enabled: false + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/external-service/1.4.1/questions.yaml b/stable/external-service/1.4.1/questions.yaml new file mode 100644 index 00000000000..542258e1abd --- /dev/null +++ b/stable/external-service/1.4.1/questions.yaml @@ -0,0 +1,417 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ExternalIP gets connected to using an IP and port, ExternalName gets connected to using a domain name" + schema: + type: string + default: "ExternalIP" + enum: + - value: "ExternalName" + description: "ExternalName" + - value: "ExternalIP" + description: "ExternalIP" + - variable: externalName + label: "External Service Domainname" + description: "Domainname of External service" + schema: + show_if: [["type", "=", "ExternalName"]] + type: string + default: "google.com" + - variable: externalIP + label: "External Service IP" + description: "IP of External service" + schema: + show_if: [["type", "=", "ExternalIP"]] + type: string + default: "1.1.1.1" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: port + label: "Service Port" + description: "Both the external service port and internal service port will be the same" + schema: + type: int + default: 80 + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: annotations + label: "annoations" + schema: + type: dict + hidden: true + attrs: + - variable: traefik.frontend.passHostHeader + label: "passHostHeader" + schema: + type: string + default: "false" + hidden: true + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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 diff --git a/stable/external-service/1.4.1/templates/common.yaml b/stable/external-service/1.4.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/external-service/1.4.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/external-service/1.4.1/test_values.yaml b/stable/external-service/1.4.1/test_values.yaml new file mode 100644 index 00000000000..337035f6b5b --- /dev/null +++ b/stable/external-service/1.4.1/test_values.yaml @@ -0,0 +1,15 @@ +# Default values for Jackett. + +# Disable Deployment +controller: + enabled: false + +service: + main: + enabled: true + type: ExternalIP + externalIP: "1.1.1.1" + ports: + main: + Type: HTTPS + port: 443 diff --git a/stable/external-service/1.4.1/values.yaml b/stable/external-service/1.4.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/fireflyiii/6.0.1/CONFIG.md b/stable/fireflyiii/6.0.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/fireflyiii/6.0.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/fireflyiii/6.0.1/Chart.lock b/stable/fireflyiii/6.0.1/Chart.lock new file mode 100644 index 00000000000..30de67f48d2 --- /dev/null +++ b/stable/fireflyiii/6.0.1/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +digest: sha256:8f143052e2c3c03042badc1bebcdd961d592c6863d53176fadf2a7b89044874f +generated: "2021-08-31T03:14:26.425127579Z" diff --git a/stable/fireflyiii/6.0.1/Chart.yaml b/stable/fireflyiii/6.0.1/Chart.yaml new file mode 100644 index 00000000000..bd743253cc2 --- /dev/null +++ b/stable/fireflyiii/6.0.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +deprecated: false +description: A free and open source personal finance manager +home: https://github.com/firefly-iii/firefly-iii/ +icon: https://www.firefly-iii.org/assets/logo/color.png +keywords: +- fireflyiii +- finacial +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: fireflyiii +sources: +- https://github.com/firefly-iii/firefly-iii/ +type: application +version: 6.0.1 diff --git a/stable/fireflyiii/6.0.1/README.md b/stable/fireflyiii/6.0.1/README.md new file mode 100644 index 00000000000..2ea7798a3fb --- /dev/null +++ b/stable/fireflyiii/6.0.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.0.1](https://img.shields.io/badge/Version-6.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A free and open source personal finance manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | +| https://truecharts.org/ | postgresql | 1.5.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/fireflyiii/6.0.1/app-readme.md b/stable/fireflyiii/6.0.1/app-readme.md new file mode 100644 index 00000000000..51ef9c43a7d --- /dev/null +++ b/stable/fireflyiii/6.0.1/app-readme.md @@ -0,0 +1,4 @@ +A free and open source personal finance manager + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A free and open source personal finance manager diff --git a/stable/fireflyiii/6.0.1/charts/common-6.12.1.tgz b/stable/fireflyiii/6.0.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/fireflyiii/6.0.1/charts/postgresql-1.5.1.tgz b/stable/fireflyiii/6.0.1/charts/postgresql-1.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8e827c8eff81247e723d1304eef80ec4ffb6a818 GIT binary patch literal 32168 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 literal 0 HcmV?d00001 diff --git a/stable/fireflyiii/6.0.1/ix_values.yaml b/stable/fireflyiii/6.0.1/ix_values.yaml new file mode 100644 index 00000000000..e6c0856ca89 --- /dev/null +++ b/stable/fireflyiii/6.0.1/ix_values.yaml @@ -0,0 +1,54 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: fireflyiii/core + pullPolicy: IfNotPresent + tag: version-5.5.12 + +probes: + liveness: + path: "/login" + + readiness: + path: "/login" + + startup: + path: "/login" + +env: + DB_USERNAME: fireflyiii + DB_DATABASE: fireflyiii + DB_CONNECTION: pgsql + DB_PORT: 5432 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: postgresql-password + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: fireflyiii + postgresqlDatabase: fireflyiii + existingSecret: "{{ .Release.Name }}-dbcreds" + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/fireflyiii/6.0.1/questions.yaml b/stable/fireflyiii/6.0.1/questions.yaml new file mode 100644 index 00000000000..0d5c724f68f --- /dev/null +++ b/stable/fireflyiii/6.0.1/questions.yaml @@ -0,0 +1,1116 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: APP_KEY + label: "App Key" + description: "Your unique 32 application character key" + schema: + type: string + default: "" + min_length: 32 + max_length: 32 + valid_chars: '[a-zA-Z0-9!@#$%^&*?]{32}' + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36048 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - 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: 0 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/fireflyiii/6.0.1/templates/_secrets.tpl b/stable/fireflyiii/6.0.1/templates/_secrets.tpl new file mode 100644 index 00000000000..1c9f0103a95 --- /dev/null +++ b/stable/fireflyiii/6.0.1/templates/_secrets.tpl @@ -0,0 +1,25 @@ +{{/* Define the secrets */}} +{{- define "fireflyiii.secrets" -}} + +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" .Release.Name "dbcreds" ) | quote ) }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} + postgresql_host: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }} +type: Opaque + +{{- end -}} diff --git a/stable/fireflyiii/6.0.1/templates/common.yaml b/stable/fireflyiii/6.0.1/templates/common.yaml new file mode 100644 index 00000000000..096dd2fef91 --- /dev/null +++ b/stable/fireflyiii/6.0.1/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render secrets for fireflyiii */}} +{{- include "fireflyiii.secrets" . }} diff --git a/stable/fireflyiii/6.0.1/test_values.yaml b/stable/fireflyiii/6.0.1/test_values.yaml new file mode 100644 index 00000000000..633c96e681d --- /dev/null +++ b/stable/fireflyiii/6.0.1/test_values.yaml @@ -0,0 +1,72 @@ +# Default values for fireflyIII. + +image: + repository: fireflyiii/core + pullPolicy: IfNotPresent + tag: version-5.5.12 + +strategy: + type: Recreate + +podSecurityContext: + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 + fsGroup: 0 + +service: + main: + ports: + main: + port: 8080 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP + +probes: + liveness: + path: "/login" + + readiness: + path: "/login" + + startup: + path: "/login" + +env: + DB_USERNAME: firefly + DB_DATABASE: firefly + DB_CONNECTION: pgsql + DB_PORT: 5432 + APP_KEY: AGcfkCUS233ZWmBXztYbdyCs2u7kkz55 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: postgresql-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html/storage/upload" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: firefly + postgresqlDatabase: firefly + existingSecret: "{{ .Release.Name }}-dbcreds" diff --git a/stable/fireflyiii/6.0.1/values.yaml b/stable/fireflyiii/6.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/flaresolverr/1.9.2/CONFIG.md b/stable/flaresolverr/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/flaresolverr/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/flaresolverr/1.9.2/Chart.lock b/stable/flaresolverr/1.9.2/Chart.lock new file mode 100644 index 00000000000..d8d4e8ba6a2 --- /dev/null +++ b/stable/flaresolverr/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:14:32.90952017Z" diff --git a/stable/flaresolverr/1.9.2/Chart.yaml b/stable/flaresolverr/1.9.2/Chart.yaml new file mode 100644 index 00000000000..e6e8ff0c502 --- /dev/null +++ b/stable/flaresolverr/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: FlareSolverr is a proxy server to bypass Cloudflare protection +home: https://github.com/truechartsapps/tree/master/charts/incubator/flaresolverr +icon: https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.svg +keywords: +- flaresolverr +- jackett +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: flaresolverr +sources: +- https://github.com/FlareSolverr/FlareSolverr +- https://hub.docker.com/r/flaresolverr/flaresolverr +version: 1.9.2 diff --git a/stable/flaresolverr/1.9.2/README.md b/stable/flaresolverr/1.9.2/README.md new file mode 100644 index 00000000000..65a83df11d7 --- /dev/null +++ b/stable/flaresolverr/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +FlareSolverr is a proxy server to bypass Cloudflare protection + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/flaresolverr/1.9.2/app-readme.md b/stable/flaresolverr/1.9.2/app-readme.md new file mode 100644 index 00000000000..2ffce9f89c3 --- /dev/null +++ b/stable/flaresolverr/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +FlareSolverr is a proxy server to bypass Cloudflare protection + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +FlareSolverr is a proxy server to bypass Cloudflare protection diff --git a/stable/flaresolverr/1.9.2/charts/common-6.12.1.tgz b/stable/flaresolverr/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/flaresolverr/1.9.2/ix_values.yaml b/stable/flaresolverr/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..8d6938f0aa1 --- /dev/null +++ b/stable/flaresolverr/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/flaresolverr/flaresolverr + pullPolicy: IfNotPresent + tag: v1.2.9 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/flaresolverr/1.9.2/questions.yaml b/stable/flaresolverr/1.9.2/questions.yaml new file mode 100644 index 00000000000..227ad3c01ce --- /dev/null +++ b/stable/flaresolverr/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8191 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8191 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36060 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/flaresolverr/1.9.2/templates/common.yaml b/stable/flaresolverr/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/flaresolverr/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/flaresolverr/1.9.2/test_values.yaml b/stable/flaresolverr/1.9.2/test_values.yaml new file mode 100644 index 00000000000..5e136cec6b7 --- /dev/null +++ b/stable/flaresolverr/1.9.2/test_values.yaml @@ -0,0 +1,28 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/flaresolverr/flaresolverr + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v1.2.9 + +# -- environment variables. See more environment variables in the [flaresolverr documentation](https://github.com/FlareSolverr/FlareSolverr#environment-variables). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8191 diff --git a/stable/flaresolverr/1.9.2/values.yaml b/stable/flaresolverr/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/flood/1.9.2/CONFIG.md b/stable/flood/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/flood/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/flood/1.9.2/Chart.lock b/stable/flood/1.9.2/Chart.lock new file mode 100644 index 00000000000..7871543ad52 --- /dev/null +++ b/stable/flood/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:14:38.078583288Z" diff --git a/stable/flood/1.9.2/Chart.yaml b/stable/flood/1.9.2/Chart.yaml new file mode 100644 index 00000000000..d2da0a125cc --- /dev/null +++ b/stable/flood/1.9.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Flood is a monitoring service for various torrent clients +home: https://github.com/truechartsapps/tree/master/charts/incubator/flood +icon: https://raw.githubusercontent.com/jesec/flood/master/flood.svg +keywords: +- flood +- rtorrent +- qbittorrent +- transmission +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: flood +sources: +- https://github.com/jesec/flood +- https://hub.docker.com/r/jesec/flood +version: 1.9.2 diff --git a/stable/flood/1.9.2/README.md b/stable/flood/1.9.2/README.md new file mode 100644 index 00000000000..299d204af6d --- /dev/null +++ b/stable/flood/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Flood is a monitoring service for various torrent clients + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/flood/1.9.2/app-readme.md b/stable/flood/1.9.2/app-readme.md new file mode 100644 index 00000000000..1b74a178f8a --- /dev/null +++ b/stable/flood/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Flood is a monitoring service for various torrent clients + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Flood is a monitoring service for various torrent clients diff --git a/stable/flood/1.9.2/charts/common-6.12.1.tgz b/stable/flood/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/flood/1.9.2/ci/ct-values.yaml b/stable/flood/1.9.2/ci/ct-values.yaml new file mode 100644 index 00000000000..f874292fadf --- /dev/null +++ b/stable/flood/1.9.2/ci/ct-values.yaml @@ -0,0 +1,5 @@ +persistence: + data: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi diff --git a/stable/flood/1.9.2/ix_values.yaml b/stable/flood/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..8ea3b077107 --- /dev/null +++ b/stable/flood/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jesec/flood + pullPolicy: IfNotPresent + tag: 4.6.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/flood/1.9.2/questions.yaml b/stable/flood/1.9.2/questions.yaml new file mode 100644 index 00000000000..bf75b7031a0 --- /dev/null +++ b/stable/flood/1.9.2/questions.yaml @@ -0,0 +1,1111 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: FLOOD_OPTION_RUNDIR + label: "FLOOD_OPTION_RUNDIR" + description: "Where to store Flood's runtime files (eg. database)" + schema: + type: string + default: "/data" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36061 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/flood/1.9.2/templates/common.yaml b/stable/flood/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/flood/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/flood/1.9.2/test_values.yaml b/stable/flood/1.9.2/test_values.yaml new file mode 100644 index 00000000000..c1b0c97e0d3 --- /dev/null +++ b/stable/flood/1.9.2/test_values.yaml @@ -0,0 +1,39 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: jesec/flood + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.6.1 + +# -- environment variables. See more environment variables in the [flood documentation] (https://github.com/jesec/flood/blob/v4.6.0/config.ts) +# Note: The environmental variables are not case sensitive (e.g. FLOOD_OPTION_port=FLOOD_OPTION_PORT). +# @default -- See below +env: + # -- Where to store Flood's runtime files (eg. database) + FLOOD_OPTION_RUNDIR: /data + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 3000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/flood/1.9.2/values.yaml b/stable/flood/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/focalboard/1.9.2/CONFIG.md b/stable/focalboard/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/focalboard/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/focalboard/1.9.2/Chart.lock b/stable/focalboard/1.9.2/Chart.lock new file mode 100644 index 00000000000..cdd0dd22909 --- /dev/null +++ b/stable/focalboard/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:14:43.271531088Z" diff --git a/stable/focalboard/1.9.2/Chart.yaml b/stable/focalboard/1.9.2/Chart.yaml new file mode 100644 index 00000000000..37f391d704a --- /dev/null +++ b/stable/focalboard/1.9.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Focalboard is an open source, self-hosted alternative to Trello, Notion, + and Asana. +home: https://github.com/truechartsapps/tree/master/charts/incubator/focalboard +icon: https://github.com/mattermost/focalboard/raw/main/webapp/static/favicon.svg +keywords: +- focalboard +- kanban +- project management +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: focalboard +sources: +- https://www.focalboard.com/ +- https://github.com/mattermost/focalboard +- https://github.com/FlipEnergy/container-images/blob/main/focalboard +version: 1.9.2 diff --git a/stable/focalboard/1.9.2/README.md b/stable/focalboard/1.9.2/README.md new file mode 100644 index 00000000000..9e66928cf80 --- /dev/null +++ b/stable/focalboard/1.9.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/focalboard/1.9.2/app-readme.md b/stable/focalboard/1.9.2/app-readme.md new file mode 100644 index 00000000000..81d01c25ab0 --- /dev/null +++ b/stable/focalboard/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Focalboard is an open source, self-hosted alternative to Trello, Notion, diff --git a/stable/focalboard/1.9.2/charts/common-6.12.1.tgz b/stable/focalboard/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/focalboard/1.9.2/ix_values.yaml b/stable/focalboard/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..d0913f04ee9 --- /dev/null +++ b/stable/focalboard/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: flipenergy/focalboard + pullPolicy: IfNotPresent + tag: 0.8.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/focalboard/1.9.2/questions.yaml b/stable/focalboard/1.9.2/questions.yaml new file mode 100644 index 00000000000..a82e8e273f1 --- /dev/null +++ b/stable/focalboard/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36049 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/focalboard/1.9.2/templates/common.yaml b/stable/focalboard/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/focalboard/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/focalboard/1.9.2/test_values.yaml b/stable/focalboard/1.9.2/test_values.yaml new file mode 100644 index 00000000000..2a644998937 --- /dev/null +++ b/stable/focalboard/1.9.2/test_values.yaml @@ -0,0 +1,39 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: flipenergy/focalboard + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 0.8.0 + +# -- environment variables. See more environment variables in the [image entrypoint script](https://github.com/FlipEnergy/container-images/blob/main/focalboard/entrypoint.sh) +# @default -- See below +env: {} + # SERVER_ROOT: + # DBTYPE: + # DBCONFIG: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/focalboard/1.9.2/values.yaml b/stable/focalboard/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/freeradius/1.7.2/CONFIG.md b/stable/freeradius/1.7.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/freeradius/1.7.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/freeradius/1.7.2/Chart.lock b/stable/freeradius/1.7.2/Chart.lock new file mode 100644 index 00000000000..a317e5bf8c7 --- /dev/null +++ b/stable/freeradius/1.7.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:48.449433076Z" diff --git a/stable/freeradius/1.7.2/Chart.yaml b/stable/freeradius/1.7.2/Chart.yaml new file mode 100644 index 00000000000..f3de63dff9b --- /dev/null +++ b/stable/freeradius/1.7.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: OpenSource Radius implementation +home: https://www.openldap.org +icon: https://networkradius.com/assets/img/FR-NR.svg +keywords: +- radius +- auth +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: freeradius +sources: +- https://hub.docker.com/r/freeradius/freeradius-server/ +- https://freeradius.org/ +type: application +version: 1.7.2 diff --git a/stable/freeradius/1.7.2/README.md b/stable/freeradius/1.7.2/README.md new file mode 100644 index 00000000000..222d027607a --- /dev/null +++ b/stable/freeradius/1.7.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.7.2](https://img.shields.io/badge/Version-1.7.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +OpenSource Radius implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/freeradius/1.7.2/app-readme.md b/stable/freeradius/1.7.2/app-readme.md new file mode 100644 index 00000000000..a967f8ba6ae --- /dev/null +++ b/stable/freeradius/1.7.2/app-readme.md @@ -0,0 +1,4 @@ +OpenSource Radius implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +OpenSource Radius implementation diff --git a/stable/freeradius/1.7.2/charts/common-6.12.1.tgz b/stable/freeradius/1.7.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/freeradius/1.7.2/ix_values.yaml b/stable/freeradius/1.7.2/ix_values.yaml new file mode 100644 index 00000000000..5f5b3bc0697 --- /dev/null +++ b/stable/freeradius/1.7.2/ix_values.yaml @@ -0,0 +1,34 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## +image: + repository: ghcr.io/truecharts/freeradius + pullPolicy: IfNotPresent + tag: v3.0.23 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + enabled: false + + # -- Redainess probe configuration + # @default -- See below + readiness: + enabled: false + + # -- Startup probe configuration + # @default -- See below + startup: + enabled: false + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/freeradius/1.7.2/questions.yaml b/stable/freeradius/1.7.2/questions.yaml new file mode 100644 index 00000000000..6b3bd83af02 --- /dev/null +++ b/stable/freeradius/1.7.2/questions.yaml @@ -0,0 +1,1037 @@ +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: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "Statefulset" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1812 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1812 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36096 + - variable: administration + label: "administration Service" + description: "The administration service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1813 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1813 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36097 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Config." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/freeradius/1.7.2/templates/common.yaml b/stable/freeradius/1.7.2/templates/common.yaml new file mode 100644 index 00000000000..64e027ac0fa --- /dev/null +++ b/stable/freeradius/1.7.2/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/freeradius/1.7.2/test_values.yaml b/stable/freeradius/1.7.2/test_values.yaml new file mode 100644 index 00000000000..8159592eed5 --- /dev/null +++ b/stable/freeradius/1.7.2/test_values.yaml @@ -0,0 +1,47 @@ +# Default values for Bitwarden. + +image: + repository: ghcr.io/truecharts/freeradius + pullPolicy: IfNotPresent + tag: v3.0.23 + +service: + main: + ports: + main: + protocol: UDP + port: 1812 + accounting: + ports: + accounting: + protocol: UDP + port: 1813 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + enabled: false + + # -- Redainess probe configuration + # @default -- See below + readiness: + enabled: false + + # -- Startup probe configuration + # @default -- See below + startup: + enabled: false + +env: {} + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/freeradius/1.7.2/values.yaml b/stable/freeradius/1.7.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/freshrss/6.11.2/CONFIG.md b/stable/freshrss/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/freshrss/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/freshrss/6.11.2/Chart.lock b/stable/freshrss/6.11.2/Chart.lock new file mode 100644 index 00000000000..a7fa574ca34 --- /dev/null +++ b/stable/freshrss/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:53.67677272Z" diff --git a/stable/freshrss/6.11.2/Chart.yaml b/stable/freshrss/6.11.2/Chart.yaml new file mode 100644 index 00000000000..0727a85e0a3 --- /dev/null +++ b/stable/freshrss/6.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: FreshRSS is a self-hosted RSS feed aggregator +home: https://github.com/truecharts/apps/tree/master/charts/incubator/freshrss +icon: https://github.com/FreshRSS/FreshRSS/blob/master/docs/img/FreshRSS-logo.png?raw=true +keywords: +- freshrss +- rss +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: freshrss +sources: +- https://github.com/FreshRSS/FreshRSS +- https://hub.docker.com/r/linuxserver/freshrss +type: application +version: 6.11.2 diff --git a/stable/freshrss/6.11.2/README.md b/stable/freshrss/6.11.2/README.md new file mode 100644 index 00000000000..7cfca95c3a3 --- /dev/null +++ b/stable/freshrss/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +FreshRSS is a self-hosted RSS feed aggregator + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/freshrss/6.11.2/app-readme.md b/stable/freshrss/6.11.2/app-readme.md new file mode 100644 index 00000000000..e0a7bf6bef9 --- /dev/null +++ b/stable/freshrss/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +FreshRSS is a self-hosted RSS feed aggregator + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +FreshRSS is a self-hosted RSS feed aggregator diff --git a/stable/freshrss/6.11.2/charts/common-6.12.1.tgz b/stable/freshrss/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/freshrss/6.11.2/ix_values.yaml b/stable/freshrss/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..98641a23823 --- /dev/null +++ b/stable/freshrss/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/freshrss/6.11.2/questions.yaml b/stable/freshrss/6.11.2/questions.yaml new file mode 100644 index 00000000000..63d4bd0123d --- /dev/null +++ b/stable/freshrss/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36029 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/freshrss/6.11.2/templates/common.yaml b/stable/freshrss/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/freshrss/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/freshrss/6.11.2/test_values.yaml b/stable/freshrss/6.11.2/test_values.yaml new file mode 100644 index 00000000000..80bf6769c92 --- /dev/null +++ b/stable/freshrss/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for FreshRSS. + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/freshrss/6.11.2/values.yaml b/stable/freshrss/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/gaps/6.11.2/CONFIG.md b/stable/gaps/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/gaps/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/gaps/6.11.2/Chart.lock b/stable/gaps/6.11.2/Chart.lock new file mode 100644 index 00000000000..118027fffbe --- /dev/null +++ b/stable/gaps/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:14:58.960410776Z" diff --git a/stable/gaps/6.11.2/Chart.yaml b/stable/gaps/6.11.2/Chart.yaml new file mode 100644 index 00000000000..d7fa9ab07d5 --- /dev/null +++ b/stable/gaps/6.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Gaps searches through your Plex Server or local folders for all movies, + then queries for known movies in the same collection. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/gaps +icon: https://raw.githubusercontent.com/JasonHHouse/gaps/master/images/Final-Black.png +keywords: +- gaps +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: gaps +sources: +- https://github.com/JasonHHouse/gaps +type: application +version: 6.11.2 diff --git a/stable/gaps/6.11.2/README.md b/stable/gaps/6.11.2/README.md new file mode 100644 index 00000000000..11158739ca6 --- /dev/null +++ b/stable/gaps/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/gaps/6.11.2/app-readme.md b/stable/gaps/6.11.2/app-readme.md new file mode 100644 index 00000000000..df7087e7a53 --- /dev/null +++ b/stable/gaps/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Gaps searches through your Plex Server or local folders for all movies, diff --git a/stable/gaps/6.11.2/charts/common-6.12.1.tgz b/stable/gaps/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/gaps/6.11.2/ix_values.yaml b/stable/gaps/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..d11177660e5 --- /dev/null +++ b/stable/gaps/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/gaps/6.11.2/questions.yaml b/stable/gaps/6.11.2/questions.yaml new file mode 100644 index 00000000000..6b6f3d8e3f5 --- /dev/null +++ b/stable/gaps/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8484 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36030 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/gaps/6.11.2/templates/common.yaml b/stable/gaps/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/gaps/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/gaps/6.11.2/test_values.yaml b/stable/gaps/6.11.2/test_values.yaml new file mode 100644 index 00000000000..29edcb27bd2 --- /dev/null +++ b/stable/gaps/6.11.2/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for Gaps. + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8484 + +env: {} + # TZ: UTC + +persistence: + data: + enabled: true + mountPath: "/usr/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/gaps/6.11.2/values.yaml b/stable/gaps/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/gonic/1.9.2/CONFIG.md b/stable/gonic/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/gonic/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/gonic/1.9.2/Chart.lock b/stable/gonic/1.9.2/Chart.lock new file mode 100644 index 00000000000..9f950293339 --- /dev/null +++ b/stable/gonic/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:15:04.174240092Z" diff --git a/stable/gonic/1.9.2/Chart.yaml b/stable/gonic/1.9.2/Chart.yaml new file mode 100644 index 00000000000..1ee0971cc2f --- /dev/null +++ b/stable/gonic/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Music streaming server / subsonic server API implementation +home: https://github.com/truechartsapps/tree/master/charts/incubator/gonic +icon: https://raw.githubusercontent.com/sentriz/gonic/master/.github/logo.png +keywords: +- music +- subsonic +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: gonic +sources: +- https://github.com/sentriz/gonic +- https://hub.docker.com/r/sentriz/gonic +version: 1.9.2 diff --git a/stable/gonic/1.9.2/README.md b/stable/gonic/1.9.2/README.md new file mode 100644 index 00000000000..80479d5363c --- /dev/null +++ b/stable/gonic/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Music streaming server / subsonic server API implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/gonic/1.9.2/app-readme.md b/stable/gonic/1.9.2/app-readme.md new file mode 100644 index 00000000000..8aac0d79210 --- /dev/null +++ b/stable/gonic/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Music streaming server / subsonic server API implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Music streaming server / subsonic server API implementation diff --git a/stable/gonic/1.9.2/charts/common-6.12.1.tgz b/stable/gonic/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/gonic/1.9.2/ci/ct-values.yaml b/stable/gonic/1.9.2/ci/ct-values.yaml new file mode 100644 index 00000000000..6d8d2f4a5c9 --- /dev/null +++ b/stable/gonic/1.9.2/ci/ct-values.yaml @@ -0,0 +1,21 @@ +env: + GONIC_MUSIC_PATH: "/music" + GONIC_PODCAST_PATH: "/podcasts" + GONIC_CACHE_PATH: "/cache" +persistence: + data: + enabled: true + type: emptyDir + mountPath: /data + podcasts: + enabled: true + type: emptyDir + mountPath: /podcasts + cache: + enabled: true + type: emptyDir + mountPath: /cache + music: + enabled: true + type: emptyDir + mountPath: /music diff --git a/stable/gonic/1.9.2/ix_values.yaml b/stable/gonic/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..0573c45fa47 --- /dev/null +++ b/stable/gonic/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: sentriz/gonic + pullPolicy: IfNotPresent + tag: v0.13.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/gonic/1.9.2/questions.yaml b/stable/gonic/1.9.2/questions.yaml new file mode 100644 index 00000000000..b1a93afd866 --- /dev/null +++ b/stable/gonic/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36062 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/gonic/1.9.2/templates/common.yaml b/stable/gonic/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/gonic/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/gonic/1.9.2/test_values.yaml b/stable/gonic/1.9.2/test_values.yaml new file mode 100644 index 00000000000..ffa50795a48 --- /dev/null +++ b/stable/gonic/1.9.2/test_values.yaml @@ -0,0 +1,41 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: sentriz/gonic + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.13.1 + +# -- environment variables. See more environment variables in the [gonic documentation](https://github.com/sentriz/gonic#configuration-options) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # GONIC_MUSIC_PATH: + # GONIC_PODCAST_PATH: + # GONIC_CACHE_PATH: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/gonic/1.9.2/values.yaml b/stable/gonic/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/grocy/6.11.2/CONFIG.md b/stable/grocy/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/grocy/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/grocy/6.11.2/Chart.lock b/stable/grocy/6.11.2/Chart.lock new file mode 100644 index 00000000000..456a2ba3c7b --- /dev/null +++ b/stable/grocy/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:09.403362005Z" diff --git a/stable/grocy/6.11.2/Chart.yaml b/stable/grocy/6.11.2/Chart.yaml new file mode 100644 index 00000000000..ef6fcfde99b --- /dev/null +++ b/stable/grocy/6.11.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & + household management solution for your home +home: https://github.com/truecharts/apps/tree/master/charts/incubator/grocy +icon: https://github.com/grocy/grocy/raw/master/public/img/appicons/mstile-150x150.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: grocy +sources: +- https://github.com/grocy/grocy +type: application +version: 6.11.2 diff --git a/stable/grocy/6.11.2/README.md b/stable/grocy/6.11.2/README.md new file mode 100644 index 00000000000..3b14c1662d5 --- /dev/null +++ b/stable/grocy/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/grocy/6.11.2/app-readme.md b/stable/grocy/6.11.2/app-readme.md new file mode 100644 index 00000000000..29b6f35a8a7 --- /dev/null +++ b/stable/grocy/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +ERP beyond your fridge - grocy is a web-based self-hosted groceries & diff --git a/stable/grocy/6.11.2/charts/common-6.12.1.tgz b/stable/grocy/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/grocy/6.11.2/ix_values.yaml b/stable/grocy/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..c667aba334c --- /dev/null +++ b/stable/grocy/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/grocy + tag: version-v3.1.1 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/grocy/6.11.2/questions.yaml b/stable/grocy/6.11.2/questions.yaml new file mode 100644 index 00000000000..e2c8e09b498 --- /dev/null +++ b/stable/grocy/6.11.2/questions.yaml @@ -0,0 +1,1065 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36031 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/grocy/6.11.2/templates/common.yaml b/stable/grocy/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/grocy/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/grocy/6.11.2/test_values.yaml b/stable/grocy/6.11.2/test_values.yaml new file mode 100644 index 00000000000..5441f2ffb03 --- /dev/null +++ b/stable/grocy/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for grocy. + +image: + repository: linuxserver/grocy + tag: version-v3.1.1 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: + # PUID: + # PGID: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/grocy/6.11.2/values.yaml b/stable/grocy/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/handbrake/6.11.2/CONFIG.md b/stable/handbrake/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/handbrake/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/handbrake/6.11.2/Chart.lock b/stable/handbrake/6.11.2/Chart.lock new file mode 100644 index 00000000000..0d28159aa28 --- /dev/null +++ b/stable/handbrake/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:14.614098241Z" diff --git a/stable/handbrake/6.11.2/Chart.yaml b/stable/handbrake/6.11.2/Chart.yaml new file mode 100644 index 00000000000..3082590df96 --- /dev/null +++ b/stable/handbrake/6.11.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: HandBrake is a tool for converting video from nearly any format to a + selection of modern, widely supported codecs. +home: https://github.com/truecharts/apps/tree/master/charts/stable/handbrake +icon: https://handbrake.fr/img/logo.png +keywords: +- handbrake +- encode +- media +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: handbrake +sources: +- https://github.com/jlesage/docker-handbrake +- https://hub.docker.com/r/jlesage/handbrake/ +- https://handbrake.fr/ +type: application +version: 6.11.2 diff --git a/stable/handbrake/6.11.2/README.md b/stable/handbrake/6.11.2/README.md new file mode 100644 index 00000000000..28d38e3e847 --- /dev/null +++ b/stable/handbrake/6.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/handbrake/6.11.2/app-readme.md b/stable/handbrake/6.11.2/app-readme.md new file mode 100644 index 00000000000..8e6089d9f0c --- /dev/null +++ b/stable/handbrake/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +HandBrake is a tool for converting video from nearly any format to a diff --git a/stable/handbrake/6.11.2/charts/common-6.12.1.tgz b/stable/handbrake/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/handbrake/6.11.2/ix_values.yaml b/stable/handbrake/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..e403ece7c74 --- /dev/null +++ b/stable/handbrake/6.11.2/ix_values.yaml @@ -0,0 +1,20 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/handbrake + tag: v1.24.1 + pullPolicy: IfNotPresent + +#All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/handbrake/6.11.2/questions.yaml b/stable/handbrake/6.11.2/questions.yaml new file mode 100644 index 00000000000..c41f5e3108b --- /dev/null +++ b/stable/handbrake/6.11.2/questions.yaml @@ -0,0 +1,1282 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: gui + label: "GUI Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: DISPLAY_WIDTH + label: "DISPLAY_WIDTH" + description: "Width (in pixels) of the application's window." + schema: + type: string + default: "1280" + required: true + - variable: DISPLAY_HEIGHT + label: "DISPLAY_HEIGHT" + description: "Height (in pixels) of the application's window." + schema: + type: string + default: "768" + required: true + - variable: SECURE_CONNECTION + label: "SECURE_CONNECTION" + description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." + schema: + type: string + default: "0" + required: true + - variable: VNC_PASSWORD + label: "VNC_PASSWORD" + description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." + schema: + private: true + type: string + default: "" + - variable: autoconv + label: "Automated Conversion Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: AUTOMATED_CONVERSION_PRESET + label: "AUTOMATED_CONVERSION_PRESET" + description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format /" + schema: + type: string + default: "General/Very Fast 1080p30" + required: true + - variable: AUTOMATED_CONVERSION_FORMAT + label: "AUTOMATED_CONVERSION_FORMAT" + description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension." + schema: + type: string + default: "mp4" + required: true + - variable: AUTOMATED_CONVERSION_KEEP_SOURCE + label: "AUTOMATED_CONVERSION_KEEP_SOURCE" + description: "When set to 0, a video that has been successfully converted is removed from the watch folder." + schema: + type: string + default: "1" + required: true + - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION + label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" + description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." + schema: + type: string + default: "ignore" + required: true + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5800 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36002 + - variable: vnc + label: "VNC Service" + description: "VNC Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36003 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/handbrake/6.11.2/templates/common.yaml b/stable/handbrake/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/handbrake/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/handbrake/6.11.2/test_values.yaml b/stable/handbrake/6.11.2/test_values.yaml new file mode 100644 index 00000000000..cb1fb9307c6 --- /dev/null +++ b/stable/handbrake/6.11.2/test_values.yaml @@ -0,0 +1,53 @@ +image: + repository: jlesage/handbrake + tag: v1.24.1 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5800 + vnc: + enabled: true + type: ClusterIP + ports: + vnc: + enabled: true + port: 5900 + protocol: "TCP" + +# All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + # Permissions Settings + PUID: "568" + PGID: "568" + # General Settings + KEEP_APP_RUNNING: "0" + CLEAN_TMP_DIR: "1" + # GUI Settings + DISPLAY_WIDTH: "1280" + DISPLAY_HEIGHT: "768" + SECURE_CONNECTION: "0" + VNC_PASSWORD: + # Automated Conversion Preset + AUTOMATED_CONVERSION_PRESET: "General/Very Fast 1080p30" + AUTOMATED_CONVERSION_FORMAT: "mp4" + AUTOMATED_CONVERSION_KEEP_SOURCE: "1" + AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: "ignore" + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/handbrake/6.11.2/values.yaml b/stable/handbrake/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/haste-server/1.11.2/CONFIG.md b/stable/haste-server/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/haste-server/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/haste-server/1.11.2/Chart.lock b/stable/haste-server/1.11.2/Chart.lock new file mode 100644 index 00000000000..b8ea363a4d9 --- /dev/null +++ b/stable/haste-server/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:19.841153528Z" diff --git a/stable/haste-server/1.11.2/Chart.yaml b/stable/haste-server/1.11.2/Chart.yaml new file mode 100644 index 00000000000..17e08e0d2cb --- /dev/null +++ b/stable/haste-server/1.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Simple text sharing +home: https://github.com/truecharts/apps/tree/master/charts/incubator/haste +icon: https://raw.githubusercontent.com/nicholaswilde/helm-charts/main/images/haste.png +keywords: +- haste +- hastebin +- haste-server +- pastebin +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: haste-server +sources: +- https://github.com/seejohnrun/haste-server +- https://github.com/k8s-at-home/container-images +version: 1.11.2 diff --git a/stable/haste-server/1.11.2/README.md b/stable/haste-server/1.11.2/README.md new file mode 100644 index 00000000000..8de5e342582 --- /dev/null +++ b/stable/haste-server/1.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Simple text sharing + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/haste-server/1.11.2/app-readme.md b/stable/haste-server/1.11.2/app-readme.md new file mode 100644 index 00000000000..5f4872e4afe --- /dev/null +++ b/stable/haste-server/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +Simple text sharing + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Simple text sharing diff --git a/stable/haste-server/1.11.2/charts/common-6.12.1.tgz b/stable/haste-server/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/haste-server/1.11.2/ix_values.yaml b/stable/haste-server/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..a9ee0bcb65b --- /dev/null +++ b/stable/haste-server/1.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/haste-server + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/haste-server/1.11.2/questions.yaml b/stable/haste-server/1.11.2/questions.yaml new file mode 100644 index 00000000000..635f9d2b3c8 --- /dev/null +++ b/stable/haste-server/1.11.2/questions.yaml @@ -0,0 +1,1110 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: STORAGE_FILEPATH + label: "STORAGE_FILEPATH" + schema: + type: string + default: "/config" + - variable: STORAGE_TYPE + label: "STORAGE_TYPE" + schema: + type: string + default: "file" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7777 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7777 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36055 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/haste-server/1.11.2/templates/common.yaml b/stable/haste-server/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/haste-server/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/haste-server/1.11.2/test_values.yaml b/stable/haste-server/1.11.2/test_values.yaml new file mode 100644 index 00000000000..e51c1821b1e --- /dev/null +++ b/stable/haste-server/1.11.2/test_values.yaml @@ -0,0 +1,53 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/haste-server + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: latest + +strategy: + type: Recreate + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. See [image docs](https://github.com/seejohnrun/haste-server) for more details. +# @default -- See below +env: + # -- filepath for persistance + STORAGE_FILEPATH: "/config" + # -- sets backend + STORAGE_TYPE: "file" + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 7777 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/haste-server/1.11.2/values.yaml b/stable/haste-server/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/healthchecks/1.9.2/CONFIG.md b/stable/healthchecks/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/healthchecks/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/healthchecks/1.9.2/Chart.lock b/stable/healthchecks/1.9.2/Chart.lock new file mode 100644 index 00000000000..d9c2fab8e8f --- /dev/null +++ b/stable/healthchecks/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:15:24.970725301Z" diff --git a/stable/healthchecks/1.9.2/Chart.yaml b/stable/healthchecks/1.9.2/Chart.yaml new file mode 100644 index 00000000000..19c002c3366 --- /dev/null +++ b/stable/healthchecks/1.9.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Healthchecks is a cron job monitoring service. It listens for HTTP requests + and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). + When a ping does not arrive on time, Healthchecks sends out alerts. +home: https://github.com/truechartsapps/tree/master/charts/incubator/healthchecks +icon: https://avatars.githubusercontent.com/u/13053880?s=200&v=4 +keywords: +- cron +- monitoring +- alert +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: healthchecks +sources: +- https://github.com/healthchecks/healthchecks +- https://hub.docker.com/r/linuxserver/healthchecks +version: 1.9.2 diff --git a/stable/healthchecks/1.9.2/README.md b/stable/healthchecks/1.9.2/README.md new file mode 100644 index 00000000000..3c27e831a03 --- /dev/null +++ b/stable/healthchecks/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). When a ping does not arrive on time, Healthchecks sends out alerts. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/healthchecks/1.9.2/app-readme.md b/stable/healthchecks/1.9.2/app-readme.md new file mode 100644 index 00000000000..5c726785312 --- /dev/null +++ b/stable/healthchecks/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). When a ping does not arrive on time, Healthchecks sends out alerts. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Healthchecks is a cron job monitoring service. It listens for HTTP requests diff --git a/stable/healthchecks/1.9.2/charts/common-6.12.1.tgz b/stable/healthchecks/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/healthchecks/1.9.2/ix_values.yaml b/stable/healthchecks/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..484ea724c48 --- /dev/null +++ b/stable/healthchecks/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/healthchecks + pullPolicy: IfNotPresent + tag: version-v1.22.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/healthchecks/1.9.2/questions.yaml b/stable/healthchecks/1.9.2/questions.yaml new file mode 100644 index 00000000000..3d1a94723b2 --- /dev/null +++ b/stable/healthchecks/1.9.2/questions.yaml @@ -0,0 +1,1090 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: REGENERATE_SETTINGS + label: "REGENERATE_SETTINGS" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: SITE_ROOT + label: "SITE_ROOT" + description: "The site's top-level URL and the port it listens to" + schema: + type: string + required: true + default: "" + - variable: SITE_NAME + label: "SITE_NAME" + description: "The site's name" + schema: + type: string + required: true + default: "" + - variable: SUPERUSER_EMAIL + label: "SUPERUSER_EMAIL" + description: "Superuser email" + schema: + type: string + required: true + default: "" + - variable: SUPERUSER_PASSWORD + label: "SUPERUSER_PASSWORD" + description: "Superuser password" + schema: + type: string + required: true + private: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36063 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/healthchecks/1.9.2/templates/common.yaml b/stable/healthchecks/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/healthchecks/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/healthchecks/1.9.2/test_values.yaml b/stable/healthchecks/1.9.2/test_values.yaml new file mode 100644 index 00000000000..6da11562cbb --- /dev/null +++ b/stable/healthchecks/1.9.2/test_values.yaml @@ -0,0 +1,44 @@ +# Default values for healthchecks. + +image: + # -- image repository + repository: linuxserver/healthchecks + # -- image tag + tag: version-v1.22.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + +# -- environment variables. See [image docs](https://github.com/linuxserver/docker-healthchecks#parameters) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. + REGENERATE_SETTINGS: "True" + # -- The site's top-level URL and the port it listens to + SITE_ROOT: https://healthchecks.domain + # -- The site's name (e.g., "Example Corp HealthChecks") + SITE_NAME: 8265 + # -- Superuser email + SUPERUSER_EMAIL: email@healthchecks.io + # -- Superuser password + SUPERUSER_PASSWORD: myVeryStrongPassword + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: +# -- Volume used for configuration + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountpath: /config diff --git a/stable/healthchecks/1.9.2/values.yaml b/stable/healthchecks/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/heimdall/6.11.2/CONFIG.md b/stable/heimdall/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/heimdall/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/heimdall/6.11.2/Chart.lock b/stable/heimdall/6.11.2/Chart.lock new file mode 100644 index 00000000000..a60fa796ea7 --- /dev/null +++ b/stable/heimdall/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:30.109329835Z" diff --git a/stable/heimdall/6.11.2/Chart.yaml b/stable/heimdall/6.11.2/Chart.yaml new file mode 100644 index 00000000000..3b494daf0f2 --- /dev/null +++ b/stable/heimdall/6.11.2/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: An Application dashboard and launcher +home: https://github.com/truecharts/apps/tree/master/charts/incubator/heimdall +icon: https://i.imgur.com/mM4tcO5.png +keywords: +- heimdall +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: heimdall +sources: null +type: application +version: 6.11.2 diff --git a/stable/heimdall/6.11.2/README.md b/stable/heimdall/6.11.2/README.md new file mode 100644 index 00000000000..8ed59d1749e --- /dev/null +++ b/stable/heimdall/6.11.2/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +An Application dashboard and launcher + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/heimdall/6.11.2/app-readme.md b/stable/heimdall/6.11.2/app-readme.md new file mode 100644 index 00000000000..34abbfd370f --- /dev/null +++ b/stable/heimdall/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +An Application dashboard and launcher + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +An Application dashboard and launcher diff --git a/stable/heimdall/6.11.2/charts/common-6.12.1.tgz b/stable/heimdall/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/heimdall/6.11.2/ix_values.yaml b/stable/heimdall/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..bdcc3ce0176 --- /dev/null +++ b/stable/heimdall/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/heimdall/6.11.2/questions.yaml b/stable/heimdall/6.11.2/questions.yaml new file mode 100644 index 00000000000..3264cd63e95 --- /dev/null +++ b/stable/heimdall/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/heimdall/6.11.2/templates/common.yaml b/stable/heimdall/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/heimdall/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/heimdall/6.11.2/test_values.yaml b/stable/heimdall/6.11.2/test_values.yaml new file mode 100644 index 00000000000..c2354753fa4 --- /dev/null +++ b/stable/heimdall/6.11.2/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for grocy. + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: + # PUID: + # PGID: + +probes: + startup: + enabled: true + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/heimdall/6.11.2/values.yaml b/stable/heimdall/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/home-assistant/6.11.2/CONFIG.md b/stable/home-assistant/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/home-assistant/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/home-assistant/6.11.2/Chart.lock b/stable/home-assistant/6.11.2/Chart.lock new file mode 100644 index 00000000000..b991b3171ea --- /dev/null +++ b/stable/home-assistant/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:35.412297883Z" diff --git a/stable/home-assistant/6.11.2/Chart.yaml b/stable/home-assistant/6.11.2/Chart.yaml new file mode 100644 index 00000000000..b9f530f011c --- /dev/null +++ b/stable/home-assistant/6.11.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: home-assistant App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/stable/home-assistant +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Home_Assistant_Logo.svg/519px-Home_Assistant_Logo.svg.png +keywords: +- home-assistant +- hass +- homeassistant +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: home-assistant +sources: +- https://github.com/home-assistant/home-assistant +- https://github.com/cdr/code-server +type: application +version: 6.11.2 diff --git a/stable/home-assistant/6.11.2/README.md b/stable/home-assistant/6.11.2/README.md new file mode 100644 index 00000000000..109a8d20c53 --- /dev/null +++ b/stable/home-assistant/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +home-assistant App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/home-assistant/6.11.2/app-readme.md b/stable/home-assistant/6.11.2/app-readme.md new file mode 100644 index 00000000000..1b5f149dda8 --- /dev/null +++ b/stable/home-assistant/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +home-assistant App for TrueNAS SCALE + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +home-assistant App for TrueNAS SCALE diff --git a/stable/home-assistant/6.11.2/charts/common-6.12.1.tgz b/stable/home-assistant/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/home-assistant/6.11.2/ix_values.yaml b/stable/home-assistant/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..161391fb151 --- /dev/null +++ b/stable/home-assistant/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/home-assistant/6.11.2/questions.yaml b/stable/home-assistant/6.11.2/questions.yaml new file mode 100644 index 00000000000..d8857afe14d --- /dev/null +++ b/stable/home-assistant/6.11.2/questions.yaml @@ -0,0 +1,1121 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: git + group: "Container Configuration" + label: "Home-Assistant Git Settings" + schema: + type: dict + attrs: + - variable: deployKey + label: "Git deploy key" + schema: + type: string + default: "" + - variable: deployKeyBase64 + label: "Git KeyBase64 deploy key" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8123 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36008 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/home-assistant/6.11.2/templates/common.yaml b/stable/home-assistant/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/home-assistant/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/home-assistant/6.11.2/templates/secret.yaml b/stable/home-assistant/6.11.2/templates/secret.yaml new file mode 100644 index 00000000000..19f769cf59b --- /dev/null +++ b/stable/home-assistant/6.11.2/templates/secret.yaml @@ -0,0 +1,15 @@ +{{- if or .Values.git.deployKey .Values.git.deployKeyBase64 }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "common.names.fullname" . }}-deploykey + labels: + {{- include "common.labels" . | nindent 4 }} +type: Opaque +data: + {{- if .Values.git.deployKey }} + id_rsa: {{ .Values.git.deployKey | b64enc | quote }} + {{- else }} + id_rsa: {{ .Values.git.deployKeyBase64 | quote }} + {{- end }} +{{- end }} diff --git a/stable/home-assistant/6.11.2/test_values.yaml b/stable/home-assistant/6.11.2/test_values.yaml new file mode 100644 index 00000000000..f271650524d --- /dev/null +++ b/stable/home-assistant/6.11.2/test_values.yaml @@ -0,0 +1,85 @@ +# Default values for Home Assistant + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.8.8 + +strategy: + type: Recreate + +env: {} + # TZ: + +service: + main: + ports: + main: + port: 8123 + +# # Enable devices to be discoverable +# hostNetwork: true + +# # When hostNetwork is true set dnsPolicy to ClusterFirstWithHostNet +# dnsPolicy: ClusterFirstWithHostNet + +# # Enable passing thru a USB device to Home Assistant +# securityContext: +# privileged: true + +# Allow access a Git repository by passing in a private SSH key +git: + # Raw SSH private key + deployKey: "" + # Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. + deployKeyBase64: "" + +# Enable a prometheus-operator servicemonitor +prometheus: + serviceMonitor: + enabled: false + # interval: 1m + # additionalLabels: {} + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# # Path to your Z-Wave / Zigbee device in the container +# additionalVolumeMounts: +# - name: zwave-usb +# mountPath: /dev/serial/by-id/usb-0658_0200-if00 + +# # Path to your Z-Wave / Zigbee device on the host +# additionalVolumes: +# - name: zwave-usb +# hostPath: +# path: /dev/serial/by-id/usb-0658_0200-if00 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: false + postgresqlUsername: home-assistant + postgresqlPassword: home-assistant-pass + postgresqlDatabase: home-assistant + persistence: + enabled: false + # storageClass: "" + +# Enable influxdb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/influxdb +influxdb: + enabled: false + architecture: standalone + database: home_assistant + authEnabled: false + persistence: + enabled: false + # storageClass: "" + # size: 8Gi diff --git a/stable/home-assistant/6.11.2/values.yaml b/stable/home-assistant/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/hyperion-ng/1.9.2/CONFIG.md b/stable/hyperion-ng/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/hyperion-ng/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/hyperion-ng/1.9.2/Chart.lock b/stable/hyperion-ng/1.9.2/Chart.lock new file mode 100644 index 00000000000..c14ba8ae6fd --- /dev/null +++ b/stable/hyperion-ng/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:15:40.892356164Z" diff --git a/stable/hyperion-ng/1.9.2/Chart.yaml b/stable/hyperion-ng/1.9.2/Chart.yaml new file mode 100644 index 00000000000..1491f24a540 --- /dev/null +++ b/stable/hyperion-ng/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Hyperion is an opensource Bias or Ambient Lighting implementation +home: https://github.com/truechartsapps/tree/master/charts/incubator/hyperion-ng +icon: https://avatars.githubusercontent.com/u/17778452?s=200&v=4 +keywords: +- hyperion-ng +- hyperion +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: hyperion-ng +sources: +- https://github.com/hyperion-project/hyperion.ng +- https://hub.docker.com/r/sirfragalot/hyperion.ng +version: 1.9.2 diff --git a/stable/hyperion-ng/1.9.2/README.md b/stable/hyperion-ng/1.9.2/README.md new file mode 100644 index 00000000000..c2f87cdf637 --- /dev/null +++ b/stable/hyperion-ng/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Hyperion is an opensource Bias or Ambient Lighting implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/hyperion-ng/1.9.2/app-readme.md b/stable/hyperion-ng/1.9.2/app-readme.md new file mode 100644 index 00000000000..f2e71517e2c --- /dev/null +++ b/stable/hyperion-ng/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Hyperion is an opensource Bias or Ambient Lighting implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Hyperion is an opensource Bias or Ambient Lighting implementation diff --git a/stable/hyperion-ng/1.9.2/charts/common-6.12.1.tgz b/stable/hyperion-ng/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/hyperion-ng/1.9.2/ix_values.yaml b/stable/hyperion-ng/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..5f7832aeb94 --- /dev/null +++ b/stable/hyperion-ng/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: sirfragalot/hyperion.ng + pullPolicy: IfNotPresent + tag: 2.0.0-alpha.9-x86_64 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/hyperion-ng/1.9.2/questions.yaml b/stable/hyperion-ng/1.9.2/questions.yaml new file mode 100644 index 00000000000..081df7d0a0a --- /dev/null +++ b/stable/hyperion-ng/1.9.2/questions.yaml @@ -0,0 +1,1407 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36064 + - variable: jsonservice + label: "jsonservice Service" + description: "The jsonservice service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: jsonservice + label: "jsonservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19444 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19444 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36096 + - variable: protobufservice + label: "protobufservice Service" + description: "The protobufservice service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: protobufservice + label: "protobufservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19445 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19445 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36097 + - variable: boblightservice + label: "boblightservice Service" + description: "The boblightservice service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: boblightservice + label: "boblightservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19333 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19333 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36098 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.hyperion" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/hyperion-ng/1.9.2/templates/common.yaml b/stable/hyperion-ng/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/hyperion-ng/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/hyperion-ng/1.9.2/test_values.yaml b/stable/hyperion-ng/1.9.2/test_values.yaml new file mode 100644 index 00000000000..1961e40e8ef --- /dev/null +++ b/stable/hyperion-ng/1.9.2/test_values.yaml @@ -0,0 +1,56 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: sirfragalot/hyperion.ng + # -- image tag + tag: 2.0.0-alpha.9-x86_64 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-airsonic#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8090 + jsonservice: + enabled: true + port: 19444 + protocol: TCP + targetPort: 19444 + protobufservice: + enabled: true + port: 19445 + protocol: TCP + targetPort: 19445 + boblightservice: + enabled: true + port: 19333 + protocol: TCP + targetPort: 19333 + + +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.hyperion diff --git a/stable/hyperion-ng/1.9.2/values.yaml b/stable/hyperion-ng/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jackett/6.11.3/CONFIG.md b/stable/jackett/6.11.3/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/jackett/6.11.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/jackett/6.11.3/Chart.lock b/stable/jackett/6.11.3/Chart.lock new file mode 100644 index 00000000000..d0f1e51905e --- /dev/null +++ b/stable/jackett/6.11.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:46.060001705Z" diff --git a/stable/jackett/6.11.3/Chart.yaml b/stable/jackett/6.11.3/Chart.yaml new file mode 100644 index 00000000000..21a351fbc1e --- /dev/null +++ b/stable/jackett/6.11.3/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/jackett +icon: https://truecharts.org/_static/img/jackett-icon.png +keywords: +- jackett +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jackett +sources: +- https://github.com/Jackett/Jackett +type: application +version: 6.11.3 diff --git a/stable/jackett/6.11.3/README.md b/stable/jackett/6.11.3/README.md new file mode 100644 index 00000000000..af0833f29b9 --- /dev/null +++ b/stable/jackett/6.11.3/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.3](https://img.shields.io/badge/Version-6.11.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jackett/6.11.3/app-readme.md b/stable/jackett/6.11.3/app-readme.md new file mode 100644 index 00000000000..98549f0fc93 --- /dev/null +++ b/stable/jackett/6.11.3/app-readme.md @@ -0,0 +1,4 @@ +API Support for your favorite torrent trackers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +API Support for your favorite torrent trackers. diff --git a/stable/jackett/6.11.3/charts/common-6.12.1.tgz b/stable/jackett/6.11.3/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/jackett/6.11.3/ix_values.yaml b/stable/jackett/6.11.3/ix_values.yaml new file mode 100644 index 00000000000..ce8dd24aaa6 --- /dev/null +++ b/stable/jackett/6.11.3/ix_values.yaml @@ -0,0 +1,25 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.632 + +probes: + liveness: + path: "/UI/Login" + + readiness: + path: "/UI/Login" + + startup: + path: "/UI/Login" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jackett/6.11.3/questions.yaml b/stable/jackett/6.11.3/questions.yaml new file mode 100644 index 00000000000..5a1749ecb57 --- /dev/null +++ b/stable/jackett/6.11.3/questions.yaml @@ -0,0 +1,1224 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9117 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36009 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplementalGroups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplementalGroup" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "Resource Limits" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/jackett/6.11.3/templates/common.yaml b/stable/jackett/6.11.3/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jackett/6.11.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jackett/6.11.3/test_values.yaml b/stable/jackett/6.11.3/test_values.yaml new file mode 100644 index 00000000000..2d0bde5e0e6 --- /dev/null +++ b/stable/jackett/6.11.3/test_values.yaml @@ -0,0 +1,41 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.632 + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 9117 + +probes: + liveness: + path: "/UI/Login" + + readiness: + path: "/UI/Login" + + startup: + path: "/UI/Login" + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/jackett/6.11.3/values.yaml b/stable/jackett/6.11.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jellyfin/6.11.2/CONFIG.md b/stable/jellyfin/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/jellyfin/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/jellyfin/6.11.2/Chart.lock b/stable/jellyfin/6.11.2/Chart.lock new file mode 100644 index 00000000000..1e06b82236c --- /dev/null +++ b/stable/jellyfin/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:51.15356227Z" diff --git a/stable/jellyfin/6.11.2/Chart.yaml b/stable/jellyfin/6.11.2/Chart.yaml new file mode 100644 index 00000000000..08e767311ea --- /dev/null +++ b/stable/jellyfin/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Jellyfin is a Free Software Media System +home: https://github.com/truecharts/apps/tree/master/charts/stable/jellyfin +icon: https://truecharts.org/_static/img/jellyfin-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jellyfin +sources: +- https://github.com/jellyfin/jellyfin +type: application +version: 6.11.2 diff --git a/stable/jellyfin/6.11.2/README.md b/stable/jellyfin/6.11.2/README.md new file mode 100644 index 00000000000..7e96703daab --- /dev/null +++ b/stable/jellyfin/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Jellyfin is a Free Software Media System + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jellyfin/6.11.2/app-readme.md b/stable/jellyfin/6.11.2/app-readme.md new file mode 100644 index 00000000000..ca419ffecaa --- /dev/null +++ b/stable/jellyfin/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Jellyfin is a Free Software Media System + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Jellyfin is a Free Software Media System diff --git a/stable/jellyfin/6.11.2/charts/common-6.12.1.tgz b/stable/jellyfin/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/jellyfin/6.11.2/ix_values.yaml b/stable/jellyfin/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..6d15d6ab62b --- /dev/null +++ b/stable/jellyfin/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.7.6 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jellyfin/6.11.2/questions.yaml b/stable/jellyfin/6.11.2/questions.yaml new file mode 100644 index 00000000000..1a88277843b --- /dev/null +++ b/stable/jellyfin/6.11.2/questions.yaml @@ -0,0 +1,1113 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36010 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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 + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/jellyfin/6.11.2/templates/common.yaml b/stable/jellyfin/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jellyfin/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jellyfin/6.11.2/test_values.yaml b/stable/jellyfin/6.11.2/test_values.yaml new file mode 100644 index 00000000000..3a7595bf57a --- /dev/null +++ b/stable/jellyfin/6.11.2/test_values.yaml @@ -0,0 +1,31 @@ +# Default values for jellyfin. + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.7.6 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/jellyfin/6.11.2/values.yaml b/stable/jellyfin/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/kms/6.11.2/CONFIG.md b/stable/kms/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/kms/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/kms/6.11.2/Chart.lock b/stable/kms/6.11.2/Chart.lock new file mode 100644 index 00000000000..c5b8ce579c8 --- /dev/null +++ b/stable/kms/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:15:56.38604312Z" diff --git a/stable/kms/6.11.2/Chart.yaml b/stable/kms/6.11.2/Chart.yaml new file mode 100644 index 00000000000..08c10714f73 --- /dev/null +++ b/stable/kms/6.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: minimal +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Private Windows Activation Server for development and testing +home: https://github.com/truecharts/apps/tree/master/charts/stable/kms +icon: https://truecharts.org/_static/img/kms-icon.jpg +keywords: +- kms +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: kms +sources: +- https://github.com/SystemRage/py-kms +type: application +version: 6.11.2 diff --git a/stable/kms/6.11.2/README.md b/stable/kms/6.11.2/README.md new file mode 100644 index 00000000000..e6f30b77ef0 --- /dev/null +++ b/stable/kms/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: minimal](https://img.shields.io/badge/AppVersion-minimal-informational?style=flat-square) + +Private Windows Activation Server for development and testing + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/kms/6.11.2/app-readme.md b/stable/kms/6.11.2/app-readme.md new file mode 100644 index 00000000000..0c9616d9471 --- /dev/null +++ b/stable/kms/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Private Windows Activation Server for development and testing + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Private Windows Activation Server for development and testing diff --git a/stable/kms/6.11.2/charts/common-6.12.1.tgz b/stable/kms/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/kms/6.11.2/ix_values.yaml b/stable/kms/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..05f3f76e0a3 --- /dev/null +++ b/stable/kms/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/kms/6.11.2/questions.yaml b/stable/kms/6.11.2/questions.yaml new file mode 100644 index 00000000000..cc12b6704d9 --- /dev/null +++ b/stable/kms/6.11.2/questions.yaml @@ -0,0 +1,833 @@ +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: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1688 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36011 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/kms/6.11.2/templates/common.yaml b/stable/kms/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/kms/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/kms/6.11.2/test_values.yaml b/stable/kms/6.11.2/test_values.yaml new file mode 100644 index 00000000000..8aabb450d99 --- /dev/null +++ b/stable/kms/6.11.2/test_values.yaml @@ -0,0 +1,16 @@ +# Default values for KMS. + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + +strategy: + type: Recreate + +service: + main: + ports: + main: + protocol: TCP + port: 1688 diff --git a/stable/kms/6.11.2/values.yaml b/stable/kms/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/komga/1.9.3/CONFIG.md b/stable/komga/1.9.3/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/komga/1.9.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/komga/1.9.3/Chart.lock b/stable/komga/1.9.3/Chart.lock new file mode 100644 index 00000000000..234b5054aff --- /dev/null +++ b/stable/komga/1.9.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:16:01.536113464Z" diff --git a/stable/komga/1.9.3/Chart.yaml b/stable/komga/1.9.3/Chart.yaml new file mode 100644 index 00000000000..61d416ae9da --- /dev/null +++ b/stable/komga/1.9.3/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: A comics/mangas server to serve/stream pages via API +home: https://github.com/truechartsapps/tree/master/charts/incubator/komga +icon: https://komga.org/assets/media/logo.svg +keywords: +- komga +- comics +- mangas +- server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: komga +sources: +- https://komga.org/ +- https://github.com/gotson/komga +version: 1.9.3 diff --git a/stable/komga/1.9.3/README.md b/stable/komga/1.9.3/README.md new file mode 100644 index 00000000000..58ecbdbd305 --- /dev/null +++ b/stable/komga/1.9.3/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.3](https://img.shields.io/badge/Version-1.9.3-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A comics/mangas server to serve/stream pages via API + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/komga/1.9.3/app-readme.md b/stable/komga/1.9.3/app-readme.md new file mode 100644 index 00000000000..395a4cdd334 --- /dev/null +++ b/stable/komga/1.9.3/app-readme.md @@ -0,0 +1,4 @@ +A comics/mangas server to serve/stream pages via API + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A comics/mangas server to serve/stream pages via API diff --git a/stable/komga/1.9.3/charts/common-6.12.1.tgz b/stable/komga/1.9.3/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/komga/1.9.3/ix_values.yaml b/stable/komga/1.9.3/ix_values.yaml new file mode 100644 index 00000000000..8ebd9dd78f3 --- /dev/null +++ b/stable/komga/1.9.3/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: gotson/komga + pullPolicy: IfNotPresent + tag: 0.119.2 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/komga/1.9.3/questions.yaml b/stable/komga/1.9.3/questions.yaml new file mode 100644 index 00000000000..5696072269d --- /dev/null +++ b/stable/komga/1.9.3/questions.yaml @@ -0,0 +1,1214 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36065 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/komga/1.9.3/templates/common.yaml b/stable/komga/1.9.3/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/komga/1.9.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/komga/1.9.3/test_values.yaml b/stable/komga/1.9.3/test_values.yaml new file mode 100644 index 00000000000..b9ee43032d3 --- /dev/null +++ b/stable/komga/1.9.3/test_values.yaml @@ -0,0 +1,40 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: gotson/komga + # -- image tag + tag: 0.119.2 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [komga documentation](https://komga.org/installation/configuration.html#optional-configuration). +# @default -- See below +env: {} + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + data: + enabled: false + mountPath: /data diff --git a/stable/komga/1.9.3/values.yaml b/stable/komga/1.9.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lazylibrarian/6.11.2/CONFIG.md b/stable/lazylibrarian/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lazylibrarian/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lazylibrarian/6.11.2/Chart.lock b/stable/lazylibrarian/6.11.2/Chart.lock new file mode 100644 index 00000000000..a18745cbda5 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:06.735103292Z" diff --git a/stable/lazylibrarian/6.11.2/Chart.yaml b/stable/lazylibrarian/6.11.2/Chart.yaml new file mode 100644 index 00000000000..e62a1a3f726 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Get all your books, like series with Sonarr... +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lazylibrarian +icon: https://lazylibrarian.gitlab.io/logo.svg +keywords: +- lazylibrarian +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lazylibrarian +sources: +- https://gitlab.com/LazyLibrarian/LazyLibrarian.git +- https://lazylibrarian.gitlab.io +type: application +version: 6.11.2 diff --git a/stable/lazylibrarian/6.11.2/README.md b/stable/lazylibrarian/6.11.2/README.md new file mode 100644 index 00000000000..5022d75e8c8 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Get all your books, like series with Sonarr... + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lazylibrarian/6.11.2/app-readme.md b/stable/lazylibrarian/6.11.2/app-readme.md new file mode 100644 index 00000000000..cf9ff407111 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Get all your books, like series with Sonarr... + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Get all your books, like series with Sonarr... diff --git a/stable/lazylibrarian/6.11.2/charts/common-6.12.1.tgz b/stable/lazylibrarian/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/lazylibrarian/6.11.2/ix_values.yaml b/stable/lazylibrarian/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..553b98dbe3e --- /dev/null +++ b/stable/lazylibrarian/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lazylibrarian/6.11.2/questions.yaml b/stable/lazylibrarian/6.11.2/questions.yaml new file mode 100644 index 00000000000..23bfaf81e95 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5299 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/lazylibrarian/6.11.2/templates/common.yaml b/stable/lazylibrarian/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lazylibrarian/6.11.2/test_values.yaml b/stable/lazylibrarian/6.11.2/test_values.yaml new file mode 100644 index 00000000000..ce1abe3ab65 --- /dev/null +++ b/stable/lazylibrarian/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for LazyLibrarian. + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5299 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lazylibrarian/6.11.2/values.yaml b/stable/lazylibrarian/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/librespeed/1.9.2/CONFIG.md b/stable/librespeed/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/librespeed/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/librespeed/1.9.2/Chart.lock b/stable/librespeed/1.9.2/Chart.lock new file mode 100644 index 00000000000..f204d2786f9 --- /dev/null +++ b/stable/librespeed/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:16:12.004673273Z" diff --git a/stable/librespeed/1.9.2/Chart.yaml b/stable/librespeed/1.9.2/Chart.yaml new file mode 100644 index 00000000000..efa1bd99a43 --- /dev/null +++ b/stable/librespeed/1.9.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Librespeed is a HTML5 webpage to test upload and download speeds +home: https://github.com/truechartsapps/tree/master/charts/incubator/librespeed +icon: https://github.com/librespeed/speedtest/blob/master/.logo/icon_huge.png?raw=true +keywords: +- librespeed +- speedtest +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: librespeed +sources: +- https://github.com/librespeed/speedtest +- https://hub.docker.com/r/linuxserver/librespeed +- https://github.com/truechartsapps/tree/master/charts/librespeed +version: 1.9.2 diff --git a/stable/librespeed/1.9.2/README.md b/stable/librespeed/1.9.2/README.md new file mode 100644 index 00000000000..0988e89f8d8 --- /dev/null +++ b/stable/librespeed/1.9.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Librespeed is a HTML5 webpage to test upload and download speeds + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/librespeed/1.9.2/app-readme.md b/stable/librespeed/1.9.2/app-readme.md new file mode 100644 index 00000000000..b64fc8f9897 --- /dev/null +++ b/stable/librespeed/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Librespeed is a HTML5 webpage to test upload and download speeds + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Librespeed is a HTML5 webpage to test upload and download speeds diff --git a/stable/librespeed/1.9.2/charts/common-6.12.1.tgz b/stable/librespeed/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/librespeed/1.9.2/ci/ct-values.yaml b/stable/librespeed/1.9.2/ci/ct-values.yaml new file mode 100644 index 00000000000..a4c249088b9 --- /dev/null +++ b/stable/librespeed/1.9.2/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + PASSWORD: "ChangeMe" diff --git a/stable/librespeed/1.9.2/ix_values.yaml b/stable/librespeed/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..1dfd85ef4db --- /dev/null +++ b/stable/librespeed/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/librespeed + pullPolicy: IfNotPresent + tag: version-5.2.4 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/librespeed/1.9.2/questions.yaml b/stable/librespeed/1.9.2/questions.yaml new file mode 100644 index 00000000000..cbad9bdfc7e --- /dev/null +++ b/stable/librespeed/1.9.2/questions.yaml @@ -0,0 +1,1067 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36066 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/librespeed/1.9.2/templates/common.yaml b/stable/librespeed/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/librespeed/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/librespeed/1.9.2/test_values.yaml b/stable/librespeed/1.9.2/test_values.yaml new file mode 100644 index 00000000000..e9ffc075c7a --- /dev/null +++ b/stable/librespeed/1.9.2/test_values.yaml @@ -0,0 +1,49 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: linuxserver/librespeed + # -- image tag + tag: version-5.2.4 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://hub.docker.com/r/linuxserver/librespeed) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # PASSWORD: + # CUSTOM_RESULTS: + # DB_TYPE: + # DB_NAME: + # DB_HOSTNAME: + # DB_USERNAME: + # DB_PASSWORD: + # DB_PORT: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/librespeed/1.9.2/values.yaml b/stable/librespeed/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lidarr/6.11.2/CONFIG.md b/stable/lidarr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lidarr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lidarr/6.11.2/Chart.lock b/stable/lidarr/6.11.2/Chart.lock new file mode 100644 index 00000000000..7e65f6919d7 --- /dev/null +++ b/stable/lidarr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:17.223906159Z" diff --git a/stable/lidarr/6.11.2/Chart.yaml b/stable/lidarr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..534e5889a2b --- /dev/null +++ b/stable/lidarr/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Looks and smells like Sonarr but made for music +home: https://github.com/truecharts/apps/tree/master/charts/stable/lidarr +icon: https://avatars3.githubusercontent.com/u/28475832?s=400&v=4 +keywords: +- lidarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lidarr +sources: +- https://github.com/Lidarr/Lidarr +type: application +version: 6.11.2 diff --git a/stable/lidarr/6.11.2/README.md b/stable/lidarr/6.11.2/README.md new file mode 100644 index 00000000000..2bf385c2516 --- /dev/null +++ b/stable/lidarr/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Looks and smells like Sonarr but made for music + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lidarr/6.11.2/app-readme.md b/stable/lidarr/6.11.2/app-readme.md new file mode 100644 index 00000000000..d4875aa4c25 --- /dev/null +++ b/stable/lidarr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Looks and smells like Sonarr but made for music + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Looks and smells like Sonarr but made for music diff --git a/stable/lidarr/6.11.2/charts/common-6.12.1.tgz b/stable/lidarr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/lidarr/6.11.2/ix_values.yaml b/stable/lidarr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..b8d29de2788 --- /dev/null +++ b/stable/lidarr/6.11.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/lidarr + pullPolicy: IfNotPresent + tag: v1.0.0.2255 + +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:8686/api/v1/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 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lidarr/6.11.2/questions.yaml b/stable/lidarr/6.11.2/questions.yaml new file mode 100644 index 00000000000..4f51423914a --- /dev/null +++ b/stable/lidarr/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8686 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36012 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/lidarr/6.11.2/templates/common.yaml b/stable/lidarr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lidarr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lidarr/6.11.2/test_values.yaml b/stable/lidarr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..d92c801d3be --- /dev/null +++ b/stable/lidarr/6.11.2/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Lidarr. + +image: + repository: ghcr.io/k8s-at-home/lidarr + pullPolicy: IfNotPresent + tag: v1.0.0.2255 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8686 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +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:8686/api/v1/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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lidarr/6.11.2/values.yaml b/stable/lidarr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/littlelink/1.5.2/CONFIG.md b/stable/littlelink/1.5.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/littlelink/1.5.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/littlelink/1.5.2/Chart.lock b/stable/littlelink/1.5.2/Chart.lock new file mode 100644 index 00000000000..d4a87f0cc05 --- /dev/null +++ b/stable/littlelink/1.5.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:22.429147554Z" diff --git a/stable/littlelink/1.5.2/Chart.yaml b/stable/littlelink/1.5.2/Chart.yaml new file mode 100644 index 00000000000..303ec772fc8 --- /dev/null +++ b/stable/littlelink/1.5.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Easy platform to combine all your social links +home: https://github.com/truecharts/apps/tree/master/charts/stable/littlelink +icon: https://littlelink.io/images/avatar@2x.png +keywords: +- littlelink +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: littlelink +sources: +- https://github.com/techno-tim/littlelink-server +- https://github.com/sethcottle/littlelink +type: application +version: 1.5.2 diff --git a/stable/littlelink/1.5.2/README.md b/stable/littlelink/1.5.2/README.md new file mode 100644 index 00000000000..a7da4413c3b --- /dev/null +++ b/stable/littlelink/1.5.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.5.2](https://img.shields.io/badge/Version-1.5.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Easy platform to combine all your social links + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/littlelink/1.5.2/app-readme.md b/stable/littlelink/1.5.2/app-readme.md new file mode 100644 index 00000000000..ca20fba99c5 --- /dev/null +++ b/stable/littlelink/1.5.2/app-readme.md @@ -0,0 +1,4 @@ +Easy platform to combine all your social links + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Easy platform to combine all your social links diff --git a/stable/littlelink/1.5.2/charts/common-6.12.1.tgz b/stable/littlelink/1.5.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/littlelink/1.5.2/ix_values.yaml b/stable/littlelink/1.5.2/ix_values.yaml new file mode 100644 index 00000000000..98df1b652a5 --- /dev/null +++ b/stable/littlelink/1.5.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest + +envFrom: + - configMapRef: + name: littlelinkconfig + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/littlelink/1.5.2/questions.yaml b/stable/littlelink/1.5.2/questions.yaml new file mode 100644 index 00000000000..7f9dc172c84 --- /dev/null +++ b/stable/littlelink/1.5.2/questions.yaml @@ -0,0 +1,1139 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: littlelink + label: "" + group: "App Configuration" + schema: + type: dict + attrs: + - variable: meta_title + label: "meta title" + schema: + type: string + default: "" + - variable: meta_description + label: "meta description" + schema: + type: string + default: "" + - variable: meta_author + label: "meta_author" + schema: + type: string + default: "" + - variable: theme + label: "theme" + schema: + type: string + default: "" + - variable: favicon_url + label: "favicon_url" + schema: + type: string + default: "" + - variable: avatar_url + label: "avatar_url" + schema: + type: string + default: "" + - variable: avatar_2x_url + label: "avatar_2x_url" + schema: + type: string + default: "" + - variable: avatar_alt + label: "avatar_alt" + schema: + type: string + default: "" + - variable: name + label: "name" + schema: + type: string + default: "" + - variable: bio + label: "bio" + schema: + type: string + default: "" + - variable: github + label: "github" + schema: + type: string + default: "" + - variable: twitter + label: "twitter" + schema: + type: string + default: "" + - variable: instagram + label: "instagram" + schema: + type: string + default: "" + - variable: youtube + label: "youtube" + schema: + type: string + default: "" + - variable: twitch + label: "twitch" + schema: + type: string + default: "" + - variable: discord + label: "discord" + schema: + type: string + default: "" + - variable: tiktok + label: "tiktok" + schema: + type: string + default: "" + - variable: kit + label: "kit" + schema: + type: string + default: "" + - variable: facebook + label: "facebook" + schema: + type: string + default: "" + - variable: facebook_messenger + label: "facebook_messenger" + schema: + type: string + default: "" + - variable: linked_in + label: "linked_in" + schema: + type: string + default: "" + - variable: product_hunt + label: "product_hunt" + schema: + type: string + default: "" + - variable: snapchat + label: "snapchat" + schema: + type: string + default: "" + - variable: spotify + label: "spotify" + schema: + type: string + default: "" + - variable: reddit + label: "reddit" + schema: + type: string + default: "" + - variable: medium + label: "medium" + schema: + type: string + default: "" + - variable: pinterest + label: "pinterest" + schema: + type: string + default: "" + - variable: email + label: "email" + schema: + type: string + default: "" + - variable: email_alt + label: "email_alt" + schema: + type: string + default: "" + - variable: sound_cloud + label: "sound_cloud" + schema: + type: string + default: "" + - variable: figma + label: "figma" + schema: + type: string + default: "" + - variable: telegram + label: "telegram" + schema: + type: string + default: "" + - variable: tumblr + label: "tumblr" + schema: + type: string + default: "" + - variable: steam + label: "steam" + schema: + type: string + default: "" + - variable: vimeo + label: "vimeo" + schema: + type: string + default: "" + - variable: wordpress + label: "wordpressp" + schema: + type: string + default: "" + - variable: goodreads + label: "goodreads" + schema: + type: string + default: "" + - variable: skoob + label: "skoob" + schema: + type: string + default: "" + - variable: footer + label: "footer" + schema: + type: string + default: "" + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36092 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/littlelink/1.5.2/templates/_configmap.tpl b/stable/littlelink/1.5.2/templates/_configmap.tpl new file mode 100644 index 00000000000..e04a16fd9ab --- /dev/null +++ b/stable/littlelink/1.5.2/templates/_configmap.tpl @@ -0,0 +1,127 @@ +{{/* Define the configmap */}} +{{- define "littlelink.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: littlelinkconfig +data: + {{- if .Values.littlelink.meta_title }} + META_TILE: {{ .Values.littlelink.meta_title | quote }} + {{- end }} + {{- if .Values.littlelink.meta_description }} + META_DESCRIPTION: {{ .Values.littlelink.meta_description | quote }} + {{- end }} + {{- if .Values.littlelink.meta_author }} + META_AUTHOR: {{ .Values.littlelink.meta_author | quote }} + {{- end }} + {{- if .Values.littlelink.theme }} + THEME: {{ .Values.littlelink.theme | quote }} + {{- end }} + {{- if .Values.littlelink.favicon_url }} + FAVICON_URL: {{ .Values.littlelink.favicon_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_url }} + AVATAR_URL: {{ .Values.littlelink.avatar_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_2x_url }} + AVATAR_2X_URL: {{ .Values.littlelink.avatar_2x_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_alt }} + AVATAR_ALT: {{ .Values.littlelink.avatar_alt | quote }} + {{- end }} + {{- if .Values.littlelink.name }} + NAME: {{ .Values.littlelink.name | quote }} + {{- end }} + {{- if .Values.littlelink.bio }} + BIO: {{ .Values.littlelink.bio | quote }} + {{- end }} + {{- if .Values.littlelink.github }} + GITHUB: {{ .Values.littlelink.github | quote }} + {{- end }} + {{- if .Values.littlelink.twitter }} + TWITTER: {{ .Values.littlelink.twitter | quote }} + {{- end }} + {{- if .Values.littlelink.instagram }} + INSTAGRAM: {{ .Values.littlelink.instagram | quote }} + {{- end }} + {{- if .Values.littlelink.youtube }} + YOUTUBE: {{ .Values.littlelink.youtube | quote }} + {{- end }} + {{- if .Values.littlelink.twitch }} + TWITCH: {{ .Values.littlelink.twitch | quote }} + {{- end }} + {{- if .Values.littlelink.discord }} + DISCORD: {{ .Values.littlelink.discord | quote }} + {{- end }} + {{- if .Values.littlelink.tiktok }} + TIKTOK: {{ .Values.littlelink.tiktok | quote }} + {{- end }} + {{- if .Values.littlelink.kit }} + KIT: {{ .Values.littlelink.kit | quote }} + {{- end }} + {{- if .Values.littlelink.facebook }} + FACEBOOK: {{ .Values.littlelink.facebook | quote }} + {{- end }} + {{- if .Values.littlelink.facebook_messenger }} + FACEBOOK_MESSENGER: {{ .Values.littlelink.facebook_messenger | quote }} + {{- end }} + {{- if .Values.littlelink.linked_in }} + LINKED_IN: {{ .Values.littlelink.linked_in | quote }} + {{- end }} + {{- if .Values.littlelink.product_hunt }} + PRODUCT_HUNT: {{ .Values.littlelink.product_hunt | quote }} + {{- end }} + {{- if .Values.littlelink.snapchat }} + SNAPCHAT: {{ .Values.littlelink.snapchat | quote }} + {{- end }} + {{- if .Values.littlelink.spotify }} + SPOTIFY: {{ .Values.littlelink.spotify | quote }} + {{- end }} + {{- if .Values.littlelink.reddit }} + REDDIT: {{ .Values.littlelink.reddit | quote }} + {{- end }} + {{- if .Values.littlelink.medium }} + MEDIUM: {{ .Values.littlelink.medium | quote }} + {{- end }} + {{- if .Values.littlelink.pinterest }} + PINTEREST: {{ .Values.littlelink.pinterest | quote }} + {{- end }} + {{- if .Values.littlelink.email }} + EMAIL: {{ .Values.littlelink.email | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt }} + EMAIL_ALT: {{ .Values.littlelink.email_alt | quote }} + {{- end }} + {{- if .Values.littlelink.sound_cloud }} + SOUND_CLOUD: {{ .Values.littlelink.sound_cloud | quote }} + {{- end }} + {{- if .Values.littlelink.figma }} + FIGMA: {{ .Values.littlelink.figma | quote }} + {{- end }} + {{- if .Values.littlelink.telegram }} + TELEGRAM: {{ .Values.littlelink.telegram | quote }} + {{- end }} + {{- if .Values.littlelink.tumblr }} + TUMBLR: {{ .Values.littlelink.tumblr | quote }} + {{- end }} + {{- if .Values.littlelink.steam }} + STEAM: {{ .Values.littlelink.steam | quote }} + {{- end }} + {{- if .Values.littlelink.vimeo }} + VIMEO: {{ .Values.littlelink.vimeo | quote }} + {{- end }} + {{- if .Values.littlelink.wordpress }} + WORDPRESS: {{ .Values.littlelink.wordpress | quote }} + {{- end }} + {{- if .Values.littlelink.goodreads }} + GOODREADS: {{ .Values.littlelink.goodreads | quote }} + {{- end }} + {{- if .Values.littlelink.skoob }} + SKOOB: {{ .Values.littlelink.skoob | quote }} + {{- end }} + {{- if .Values.littlelink.footer }} + FOOTER: {{ .Values.littlelink.footer | quote }} + {{- end }} + +{{- end -}} diff --git a/stable/littlelink/1.5.2/templates/common.yaml b/stable/littlelink/1.5.2/templates/common.yaml new file mode 100644 index 00000000000..d5c310d4859 --- /dev/null +++ b/stable/littlelink/1.5.2/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for littlelink */}} +{{- include "littlelink.configmap" . }} diff --git a/stable/littlelink/1.5.2/test_values.yaml b/stable/littlelink/1.5.2/test_values.yaml new file mode 100644 index 00000000000..3d5f3cac7a9 --- /dev/null +++ b/stable/littlelink/1.5.2/test_values.yaml @@ -0,0 +1,42 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 3000 + +envFrom: + - configMapRef: + name: littlelinkconfig + +littlelink: + meta_title: "techno tim" + meta_description: "techno tim link page" + meta_author: "techno tim" + theme: "dark" + favicon_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_2x_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_400x400.jpg" + avatar_alt: "techno tim profile pic" + name: "technotim" + bio: "hey! just a place where you can connect with me!" + github: "https://github.com/timothystewart6" + twitter: "https://twitter.com/technotimlive" + instagram: "https://www.instagram.com/techno.tim" + youtube: "https://www.youtube.com/channel/ucok-ghyjcwznj3br4oxwh0a" + twitch: "https://www.twitch.tv/technotim/" + discord: "https://discord.gg/djkexrj" + tiktok: "https://www.tiktok.com/@technotim" + kit: "https://kit.co/technotim" + footer: "thanks for stopping by!" diff --git a/stable/littlelink/1.5.2/values.yaml b/stable/littlelink/1.5.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lychee/6.11.2/CONFIG.md b/stable/lychee/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lychee/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lychee/6.11.2/Chart.lock b/stable/lychee/6.11.2/Chart.lock new file mode 100644 index 00000000000..6137ecc59a2 --- /dev/null +++ b/stable/lychee/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:27.687073174Z" diff --git a/stable/lychee/6.11.2/Chart.yaml b/stable/lychee/6.11.2/Chart.yaml new file mode 100644 index 00000000000..9d93ab5cce5 --- /dev/null +++ b/stable/lychee/6.11.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Lychee is a free photo-management tool, which runs on your server or + web-space +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lychee +icon: https://github.com/LycheeOrg/Lychee/blob/master/Banner.png?raw=true +keywords: +- lychee +- photo +- pictures +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: lychee +sources: +- https://github.com/LycheeOrg/Lychee +- https://hub.docker.com/r/lycheeorg/lychee +type: application +version: 6.11.2 diff --git a/stable/lychee/6.11.2/README.md b/stable/lychee/6.11.2/README.md new file mode 100644 index 00000000000..c24e78a882b --- /dev/null +++ b/stable/lychee/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Lychee is a free photo-management tool, which runs on your server or web-space + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lychee/6.11.2/app-readme.md b/stable/lychee/6.11.2/app-readme.md new file mode 100644 index 00000000000..6ae88fface0 --- /dev/null +++ b/stable/lychee/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Lychee is a free photo-management tool, which runs on your server or web-space + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Lychee is a free photo-management tool, which runs on your server or diff --git a/stable/lychee/6.11.2/charts/common-6.12.1.tgz b/stable/lychee/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/lychee/6.11.2/ix_values.yaml b/stable/lychee/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..0976cb09641 --- /dev/null +++ b/stable/lychee/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.4 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lychee/6.11.2/questions.yaml b/stable/lychee/6.11.2/questions.yaml new file mode 100644 index 00000000000..2db09420873 --- /dev/null +++ b/stable/lychee/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36034 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/lychee/6.11.2/templates/common.yaml b/stable/lychee/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lychee/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lychee/6.11.2/test_values.yaml b/stable/lychee/6.11.2/test_values.yaml new file mode 100644 index 00000000000..3ff0193ab47 --- /dev/null +++ b/stable/lychee/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Lychee. + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.4 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # PHP_TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lychee/6.11.2/values.yaml b/stable/lychee/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mealie/1.11.2/CONFIG.md b/stable/mealie/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mealie/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mealie/1.11.2/Chart.lock b/stable/mealie/1.11.2/Chart.lock new file mode 100644 index 00000000000..b76028e8a3b --- /dev/null +++ b/stable/mealie/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:32.793004858Z" diff --git a/stable/mealie/1.11.2/Chart.yaml b/stable/mealie/1.11.2/Chart.yaml new file mode 100644 index 00000000000..6f5bc5d222b --- /dev/null +++ b/stable/mealie/1.11.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Mealie is a self hosted recipe manager and meal planner with a RestAPI + backend and a reactive frontend application built in Vue for a pleasant user experience + for the whole family. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mealie +icon: https://raw.githubusercontent.com/hay-kot/mealie/gh-pages/assets/img/favicon.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: mealie +sources: +- https://github.com/hay-kot/mealie +version: 1.11.2 diff --git a/stable/mealie/1.11.2/README.md b/stable/mealie/1.11.2/README.md new file mode 100644 index 00000000000..b58f35926db --- /dev/null +++ b/stable/mealie/1.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mealie/1.11.2/app-readme.md b/stable/mealie/1.11.2/app-readme.md new file mode 100644 index 00000000000..958559e47fb --- /dev/null +++ b/stable/mealie/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Mealie is a self hosted recipe manager and meal planner with a RestAPI diff --git a/stable/mealie/1.11.2/charts/common-6.12.1.tgz b/stable/mealie/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/mealie/1.11.2/ix_values.yaml b/stable/mealie/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..080d100b57f --- /dev/null +++ b/stable/mealie/1.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: hkotel/mealie + # -- image tag + tag: v0.5.2 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mealie/1.11.2/questions.yaml b/stable/mealie/1.11.2/questions.yaml new file mode 100644 index 00000000000..dcc85575113 --- /dev/null +++ b/stable/mealie/1.11.2/questions.yaml @@ -0,0 +1,1062 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: DB_TYPE + label: "DB_TYPE" + schema: + type: string + default: "sqlite" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36067 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/data/" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/mealie/1.11.2/templates/common.yaml b/stable/mealie/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/mealie/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/mealie/1.11.2/test_values.yaml b/stable/mealie/1.11.2/test_values.yaml new file mode 100644 index 00000000000..712d5724b72 --- /dev/null +++ b/stable/mealie/1.11.2/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: hkotel/mealie + # -- image tag + tag: v0.5.2 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://hay-kot.github.io/mealie/getting-started/install/#env-variables) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set the application database type + DB_TYPE: sqlite + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/data/ diff --git a/stable/mealie/1.11.2/values.yaml b/stable/mealie/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mosquitto/1.11.2/CONFIG.md b/stable/mosquitto/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mosquitto/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mosquitto/1.11.2/Chart.lock b/stable/mosquitto/1.11.2/Chart.lock new file mode 100644 index 00000000000..bb739b8490a --- /dev/null +++ b/stable/mosquitto/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:38.084278517Z" diff --git a/stable/mosquitto/1.11.2/Chart.yaml b/stable/mosquitto/1.11.2/Chart.yaml new file mode 100644 index 00000000000..d171b6ea2d2 --- /dev/null +++ b/stable/mosquitto/1.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Eclipse Mosquitto - An open source MQTT broker +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mosquitto +icon: https://projects.eclipse.org/sites/default/files/mosquitto-200px.png +keywords: +- mosquitto +- MQTT +- eclipse-iot +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: mosquitto +sources: +- https://github.com/eclipse/mosquitto +type: application +version: 1.11.2 diff --git a/stable/mosquitto/1.11.2/README.md b/stable/mosquitto/1.11.2/README.md new file mode 100644 index 00000000000..c83c5233e2d --- /dev/null +++ b/stable/mosquitto/1.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Eclipse Mosquitto - An open source MQTT broker + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mosquitto/1.11.2/app-readme.md b/stable/mosquitto/1.11.2/app-readme.md new file mode 100644 index 00000000000..574c102b318 --- /dev/null +++ b/stable/mosquitto/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +Eclipse Mosquitto - An open source MQTT broker + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Eclipse Mosquitto - An open source MQTT broker diff --git a/stable/mosquitto/1.11.2/charts/common-6.12.1.tgz b/stable/mosquitto/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/mosquitto/1.11.2/ix_values.yaml b/stable/mosquitto/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..b638fcf296e --- /dev/null +++ b/stable/mosquitto/1.11.2/ix_values.yaml @@ -0,0 +1,18 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: eclipse-mosquitto + # -- image tag + tag: 2.0.11 + # -- image pull policy + pullPolicy: IfNotPresent + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mosquitto/1.11.2/questions.yaml b/stable/mosquitto/1.11.2/questions.yaml new file mode 100644 index 00000000000..03556b9efbc --- /dev/null +++ b/stable/mosquitto/1.11.2/questions.yaml @@ -0,0 +1,1226 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: auth + group: "App Configuration" + label: "Authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + description: "By enabling this, `allow_anonymous` gets set to `false` in the mosquitto config." + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1883 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1883 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36068 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/mosquitto/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: configinc + label: "App config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/mosquitto/configinc" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/mosquitto/1.11.2/templates/common.yaml b/stable/mosquitto/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..15d4d961a1c --- /dev/null +++ b/stable/mosquitto/1.11.2/templates/common.yaml @@ -0,0 +1,17 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Append the configMap volume to the volumes */}} +{{- define "mosquitto.configVolume" -}} +enabled: "true" +mountPath: "/mosquitto/config/mosquitto.conf" +subPath: "mosquitto.conf" +type: "custom" +volumeSpec: + configMap: + name: {{ template "common.names.fullname" . }}-config +{{- end -}} +{{- $_ := set .Values.persistence "mosquitto-config" (include "mosquitto.configVolume" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/mosquitto/1.11.2/templates/configmap.yaml b/stable/mosquitto/1.11.2/templates/configmap.yaml new file mode 100644 index 00000000000..489d68b0ea5 --- /dev/null +++ b/stable/mosquitto/1.11.2/templates/configmap.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + mosquitto.conf: | + listener {{ .Values.service.main.ports.main.port }} + {{- if .Values.auth.enabled }} + allow_anonymous false + {{- else }} + allow_anonymous true + {{- end }} + {{- if .Values.persistence.data.enabled }} + persistence true + persistence_location {{ .Values.persistence.data.mountPath }} + autosave_interval 1800 + {{- end }} + {{- if .Values.persistence.configinc.enabled }} + include_dir {{ .Values.persistence.configinc.mountPath }} + {{- end }} diff --git a/stable/mosquitto/1.11.2/test_values.yaml b/stable/mosquitto/1.11.2/test_values.yaml new file mode 100644 index 00000000000..66920e7f539 --- /dev/null +++ b/stable/mosquitto/1.11.2/test_values.yaml @@ -0,0 +1,43 @@ +# Default values for Jackett. + +image: + # -- image repository + repository: eclipse-mosquitto + # -- image tag + tag: 2.0.11 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + protocol: TCP + enabled: true + port: 1883 + +auth: + # -- By enabling this, `allow_anonymous` gets set to `false` in the mosquitto config. + enabled: false + +persistence: + # -- Configure a persistent volume to place mosquitto data in. + # When enabled, this enables `persistence` and `persistence_location` in the mosquitto config. + # @default -- See values.yaml + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /mosquitto/data + # -- Configure a persistent volume to place *.conf mosquitto-config-files in. + # When enabled, this gets set as `include_dir` in the mosquitto config. + # @default -- See values.yaml + configinc: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /mosquitto/configinc diff --git a/stable/mosquitto/1.11.2/values.yaml b/stable/mosquitto/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mylar/1.9.2/CONFIG.md b/stable/mylar/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mylar/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mylar/1.9.2/Chart.lock b/stable/mylar/1.9.2/Chart.lock new file mode 100644 index 00000000000..bd834e22dab --- /dev/null +++ b/stable/mylar/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:16:43.158339257Z" diff --git a/stable/mylar/1.9.2/Chart.yaml b/stable/mylar/1.9.2/Chart.yaml new file mode 100644 index 00000000000..6cb712d1e20 --- /dev/null +++ b/stable/mylar/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Mylar is the automated Comic Book downloader (cbr/cbz) for use with various + download clients. +home: https://github.com/truechartsapps/tree/master/charts/incubator/mylar +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar-icon.png +keywords: +- mylar +kubeVersion: '>=1.16.0-0' +maintainers: +- name: truecharts + url: https://patricol.co/ +name: mylar +sources: +- https://github.com/mylar3/mylar3 +- https://github.com/linuxserver/docker-mylar3 +- https://github.com/truechartsapps/tree/master/charts/mylar +version: 1.9.2 diff --git a/stable/mylar/1.9.2/README.md b/stable/mylar/1.9.2/README.md new file mode 100644 index 00000000000..3e036c8a976 --- /dev/null +++ b/stable/mylar/1.9.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various download clients. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mylar/1.9.2/app-readme.md b/stable/mylar/1.9.2/app-readme.md new file mode 100644 index 00000000000..7a37462ad4d --- /dev/null +++ b/stable/mylar/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various download clients. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various diff --git a/stable/mylar/1.9.2/charts/common-6.12.1.tgz b/stable/mylar/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/mylar/1.9.2/ix_values.yaml b/stable/mylar/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..75ed20a869d --- /dev/null +++ b/stable/mylar/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/mylar3 + pullPolicy: IfNotPresent + tag: version-v0.5.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mylar/1.9.2/questions.yaml b/stable/mylar/1.9.2/questions.yaml new file mode 100644 index 00000000000..6efb740a025 --- /dev/null +++ b/stable/mylar/1.9.2/questions.yaml @@ -0,0 +1,1116 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36069 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/mylar/1.9.2/templates/common.yaml b/stable/mylar/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/mylar/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/mylar/1.9.2/test_values.yaml b/stable/mylar/1.9.2/test_values.yaml new file mode 100644 index 00000000000..509667209d3 --- /dev/null +++ b/stable/mylar/1.9.2/test_values.yaml @@ -0,0 +1,48 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/mylar3 + # -- image tag + tag: version-v0.5.3 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-mylar3#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1000" + # -- Specify the group ID the application will run as + PGID: "1000" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8090 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + comics: + enabled: false + mountPath: /comics + downloads: + enabled: false + mountPath: /downloads diff --git a/stable/mylar/1.9.2/values.yaml b/stable/mylar/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/navidrome/6.11.2/CONFIG.md b/stable/navidrome/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/navidrome/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/navidrome/6.11.2/Chart.lock b/stable/navidrome/6.11.2/Chart.lock new file mode 100644 index 00000000000..3801146840a --- /dev/null +++ b/stable/navidrome/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:48.348206189Z" diff --git a/stable/navidrome/6.11.2/Chart.yaml b/stable/navidrome/6.11.2/Chart.yaml new file mode 100644 index 00000000000..faaab8087ef --- /dev/null +++ b/stable/navidrome/6.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Navidrome is an open source web-based music collection server and streamer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/navidrome +icon: https://raw.githubusercontent.com/navidrome/navidrome/v0.42.0/ui/src/icons/android-icon-192x192.png +keywords: +- navidrome +- music +- streaming +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: navidrome +sources: +- https://github.com/deluan/navidrome +- https://hub.docker.com/r/deluan/navidrome +type: application +version: 6.11.2 diff --git a/stable/navidrome/6.11.2/README.md b/stable/navidrome/6.11.2/README.md new file mode 100644 index 00000000000..0f81510f559 --- /dev/null +++ b/stable/navidrome/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Navidrome is an open source web-based music collection server and streamer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/navidrome/6.11.2/app-readme.md b/stable/navidrome/6.11.2/app-readme.md new file mode 100644 index 00000000000..24b39f33a88 --- /dev/null +++ b/stable/navidrome/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Navidrome is an open source web-based music collection server and streamer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Navidrome is an open source web-based music collection server and streamer diff --git a/stable/navidrome/6.11.2/charts/common-6.12.1.tgz b/stable/navidrome/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/navidrome/6.11.2/ix_values.yaml b/stable/navidrome/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..74cb301682d --- /dev/null +++ b/stable/navidrome/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.45.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/navidrome/6.11.2/questions.yaml b/stable/navidrome/6.11.2/questions.yaml new file mode 100644 index 00000000000..b3cc96fafd2 --- /dev/null +++ b/stable/navidrome/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4533 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36027 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/navidrome/6.11.2/templates/common.yaml b/stable/navidrome/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/navidrome/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/navidrome/6.11.2/test_values.yaml b/stable/navidrome/6.11.2/test_values.yaml new file mode 100644 index 00000000000..a6e3ad15d0d --- /dev/null +++ b/stable/navidrome/6.11.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Navidrome. + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.45.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 4533 + +env: + ND_SCANINTERVAL: "15m" + ND_LOGLEVEL: "info" + ND_SESSIONTIMEOUT: "24h" + ND_ENABLETRANSCODINGCONFIG: "true" + ND_MUSICFOLDER: "/music" + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/navidrome/6.11.2/values.yaml b/stable/navidrome/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/node-red/6.11.2/CONFIG.md b/stable/node-red/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/node-red/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/node-red/6.11.2/Chart.lock b/stable/node-red/6.11.2/Chart.lock new file mode 100644 index 00000000000..2c4076b9409 --- /dev/null +++ b/stable/node-red/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:16:53.59660508Z" diff --git a/stable/node-red/6.11.2/Chart.yaml b/stable/node-red/6.11.2/Chart.yaml new file mode 100644 index 00000000000..b0d33bb81ac --- /dev/null +++ b/stable/node-red/6.11.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Node-RED is low-code programming for event-driven applications +home: https://github.com/truecharts/apps/tree/master/charts/incubator/node-red +icon: https://nodered.org/about/resources/media/node-red-icon-2.png +keywords: +- node-red +- nodered +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: node-red +sources: +- https://github.com/node-red/node-red-docker +type: application +version: 6.11.2 diff --git a/stable/node-red/6.11.2/README.md b/stable/node-red/6.11.2/README.md new file mode 100644 index 00000000000..26ead7031f6 --- /dev/null +++ b/stable/node-red/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Node-RED is low-code programming for event-driven applications + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/node-red/6.11.2/app-readme.md b/stable/node-red/6.11.2/app-readme.md new file mode 100644 index 00000000000..693726959b4 --- /dev/null +++ b/stable/node-red/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Node-RED is low-code programming for event-driven applications + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Node-RED is low-code programming for event-driven applications diff --git a/stable/node-red/6.11.2/charts/common-6.12.1.tgz b/stable/node-red/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/node-red/6.11.2/ix_values.yaml b/stable/node-red/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..6a16d2b0842 --- /dev/null +++ b/stable/node-red/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 2.0.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/node-red/6.11.2/questions.yaml b/stable/node-red/6.11.2/questions.yaml new file mode 100644 index 00000000000..00f96a0addd --- /dev/null +++ b/stable/node-red/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1880 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36028 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/node-red/6.11.2/templates/common.yaml b/stable/node-red/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/node-red/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/node-red/6.11.2/test_values.yaml b/stable/node-red/6.11.2/test_values.yaml new file mode 100644 index 00000000000..a99ce4e9b37 --- /dev/null +++ b/stable/node-red/6.11.2/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for node-red. + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 2.0.5 + +strategy: + type: Recreate + +# See more environment varaibles in the node-red documentation +# https://nodered.org/docs/getting-started/docker +env: {} + # TZ: + # NODE_OPTIONS: + # NODE_RED_ENABLE_PROJECTS: + # NODE_RED_ENABLE_SAFE_MODE: + # FLOWS: + +service: + main: + ports: + main: + port: 1880 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/node-red/6.11.2/values.yaml b/stable/node-red/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nullserv/1.9.2/CONFIG.md b/stable/nullserv/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nullserv/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nullserv/1.9.2/Chart.lock b/stable/nullserv/1.9.2/Chart.lock new file mode 100644 index 00000000000..c949c8c72dc --- /dev/null +++ b/stable/nullserv/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:16:58.783563693Z" diff --git a/stable/nullserv/1.9.2/Chart.yaml b/stable/nullserv/1.9.2/Chart.yaml new file mode 100644 index 00000000000..9ed83e3727f --- /dev/null +++ b/stable/nullserv/1.9.2/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: A simple null file http and https server +home: https://github.com/truechartsapps/tree/master/charts/incubator/nullserv +icon: https://miro.medium.com/max/800/1*UL9RWkTUtJlyHW7kGm20hQ.png +keywords: +- nullserv +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: nullserv +sources: +- https://github.com/bmrzycki/nullserv +version: 1.9.2 diff --git a/stable/nullserv/1.9.2/README.md b/stable/nullserv/1.9.2/README.md new file mode 100644 index 00000000000..64e7f1da3f8 --- /dev/null +++ b/stable/nullserv/1.9.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A simple null file http and https server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nullserv/1.9.2/app-readme.md b/stable/nullserv/1.9.2/app-readme.md new file mode 100644 index 00000000000..b605351e1aa --- /dev/null +++ b/stable/nullserv/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +A simple null file http and https server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A simple null file http and https server diff --git a/stable/nullserv/1.9.2/charts/common-6.12.1.tgz b/stable/nullserv/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/nullserv/1.9.2/ix_values.yaml b/stable/nullserv/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..e1fd84e3472 --- /dev/null +++ b/stable/nullserv/1.9.2/ix_values.yaml @@ -0,0 +1,26 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nullserv + pullPolicy: IfNotPresent + tag: v1.3.0 + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + readiness: + enabled: true + custom: true + spec: + httpGet: + path: /welcome.txt + port: main + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nullserv/1.9.2/questions.yaml b/stable/nullserv/1.9.2/questions.yaml new file mode 100644 index 00000000000..713f150f055 --- /dev/null +++ b/stable/nullserv/1.9.2/questions.yaml @@ -0,0 +1,1207 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36069 + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: https + label: "https Service" + description: "The https service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: https + label: "https Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36070 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/nullserv/1.9.2/templates/common.yaml b/stable/nullserv/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nullserv/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nullserv/1.9.2/test_values.yaml b/stable/nullserv/1.9.2/test_values.yaml new file mode 100644 index 00000000000..23b208d565a --- /dev/null +++ b/stable/nullserv/1.9.2/test_values.yaml @@ -0,0 +1,49 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +controller: + # -- Number of pods to load balance between + replicas: 2 + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/nullserv + # -- image tag + tag: v1.3.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [nullserv documentation](https://github.com/bmrzycki/nullserv/blob/master/README.md). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + primary: true + type: NodePort + ports: + main: + port: 80 + https: + enabled: true + port: 443 + + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + readiness: + enabled: true + custom: true + spec: + httpGet: + path: /welcome.txt + port: main diff --git a/stable/nullserv/1.9.2/values.yaml b/stable/nullserv/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nzbget/6.11.2/CONFIG.md b/stable/nzbget/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nzbget/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nzbget/6.11.2/Chart.lock b/stable/nzbget/6.11.2/Chart.lock new file mode 100644 index 00000000000..39b65402a8d --- /dev/null +++ b/stable/nzbget/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:04.054587285Z" diff --git a/stable/nzbget/6.11.2/Chart.yaml b/stable/nzbget/6.11.2/Chart.yaml new file mode 100644 index 00000000000..dae2b50db4a --- /dev/null +++ b/stable/nzbget/6.11.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: NZBGet is a Usenet downloader client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbget +icon: https://avatars1.githubusercontent.com/u/3368377?s=400&v=4 +keywords: +- nzbget +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: nzbget +sources: +- https://nzbget.net/ +type: application +version: 6.11.2 diff --git a/stable/nzbget/6.11.2/README.md b/stable/nzbget/6.11.2/README.md new file mode 100644 index 00000000000..ed8d8eb3222 --- /dev/null +++ b/stable/nzbget/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +NZBGet is a Usenet downloader client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nzbget/6.11.2/app-readme.md b/stable/nzbget/6.11.2/app-readme.md new file mode 100644 index 00000000000..1e873b38914 --- /dev/null +++ b/stable/nzbget/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +NZBGet is a Usenet downloader client + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +NZBGet is a Usenet downloader client diff --git a/stable/nzbget/6.11.2/charts/common-6.12.1.tgz b/stable/nzbget/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/nzbget/6.11.2/ix_values.yaml b/stable/nzbget/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..ef8e5a4f233 --- /dev/null +++ b/stable/nzbget/6.11.2/ix_values.yaml @@ -0,0 +1,25 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nzbget + pullPolicy: IfNotPresent + tag: v21.1 + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nzbget/6.11.2/questions.yaml b/stable/nzbget/6.11.2/questions.yaml new file mode 100644 index 00000000000..1205446d661 --- /dev/null +++ b/stable/nzbget/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6789 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36021 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/nzbget/6.11.2/templates/common.yaml b/stable/nzbget/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nzbget/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nzbget/6.11.2/test_values.yaml b/stable/nzbget/6.11.2/test_values.yaml new file mode 100644 index 00000000000..b7f901b3628 --- /dev/null +++ b/stable/nzbget/6.11.2/test_values.yaml @@ -0,0 +1,33 @@ +# Default values for nzbget. + +image: + repository: ghcr.io/k8s-at-home/nzbget + pullPolicy: IfNotPresent + tag: v21.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6789 + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/nzbget/6.11.2/values.yaml b/stable/nzbget/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nzbhydra/6.11.2/CONFIG.md b/stable/nzbhydra/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nzbhydra/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nzbhydra/6.11.2/Chart.lock b/stable/nzbhydra/6.11.2/Chart.lock new file mode 100644 index 00000000000..75dbcd745b7 --- /dev/null +++ b/stable/nzbhydra/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:09.299107522Z" diff --git a/stable/nzbhydra/6.11.2/Chart.yaml b/stable/nzbhydra/6.11.2/Chart.yaml new file mode 100644 index 00000000000..a885602c94f --- /dev/null +++ b/stable/nzbhydra/6.11.2/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: true +description: Usenet meta search +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbhydra +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png +keywords: +- nzbhydra +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: [] +name: nzbhydra +sources: +- https://github.com/theotherp/nzbhydra2 +type: application +version: 6.11.2 diff --git a/stable/nzbhydra/6.11.2/README.md b/stable/nzbhydra/6.11.2/README.md new file mode 100644 index 00000000000..de2e2235e37 --- /dev/null +++ b/stable/nzbhydra/6.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Usenet meta search + +> **:exclamation: This Helm Chart is deprecated!** + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nzbhydra/6.11.2/app-readme.md b/stable/nzbhydra/6.11.2/app-readme.md new file mode 100644 index 00000000000..99a51139d29 --- /dev/null +++ b/stable/nzbhydra/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Usenet meta search + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Usenet meta search diff --git a/stable/nzbhydra/6.11.2/charts/common-6.12.1.tgz b/stable/nzbhydra/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/nzbhydra/6.11.2/ix_values.yaml b/stable/nzbhydra/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..40be4546529 --- /dev/null +++ b/stable/nzbhydra/6.11.2/ix_values.yaml @@ -0,0 +1,51 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.15.2 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nzbhydra/6.11.2/questions.yaml b/stable/nzbhydra/6.11.2/questions.yaml new file mode 100644 index 00000000000..e60d251b48a --- /dev/null +++ b/stable/nzbhydra/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5076 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36041 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/nzbhydra/6.11.2/templates/common.yaml b/stable/nzbhydra/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nzbhydra/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nzbhydra/6.11.2/test_values.yaml b/stable/nzbhydra/6.11.2/test_values.yaml new file mode 100644 index 00000000000..ea18da3a84c --- /dev/null +++ b/stable/nzbhydra/6.11.2/test_values.yaml @@ -0,0 +1,64 @@ +# Default values for nzbhydra. + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.15.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5076 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/nzbhydra/6.11.2/values.yaml b/stable/nzbhydra/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/octoprint/1.9.2/CONFIG.md b/stable/octoprint/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/octoprint/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/octoprint/1.9.2/Chart.lock b/stable/octoprint/1.9.2/Chart.lock new file mode 100644 index 00000000000..c7ef145e5a0 --- /dev/null +++ b/stable/octoprint/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:17:14.555051453Z" diff --git a/stable/octoprint/1.9.2/Chart.yaml b/stable/octoprint/1.9.2/Chart.yaml new file mode 100644 index 00000000000..1c1ba6cada4 --- /dev/null +++ b/stable/octoprint/1.9.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: OctoPrint is the snappy web interface for your 3D printer +home: https://github.com/truechartsapps/tree/master/charts/incubator/octoprint +icon: https://avatars3.githubusercontent.com/u/5982294?s=400&v=4 +keywords: +- octoprint +- 3d +- printer +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: octoprint +sources: +- https://github.com/OctoPrint/OctoPrint +- https://hub.docker.com/r/octoprint/octoprint +version: 1.9.2 diff --git a/stable/octoprint/1.9.2/README.md b/stable/octoprint/1.9.2/README.md new file mode 100644 index 00000000000..21194a1a230 --- /dev/null +++ b/stable/octoprint/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +OctoPrint is the snappy web interface for your 3D printer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/octoprint/1.9.2/app-readme.md b/stable/octoprint/1.9.2/app-readme.md new file mode 100644 index 00000000000..8b59483c2b2 --- /dev/null +++ b/stable/octoprint/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +OctoPrint is the snappy web interface for your 3D printer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +OctoPrint is the snappy web interface for your 3D printer diff --git a/stable/octoprint/1.9.2/charts/common-6.12.1.tgz b/stable/octoprint/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/octoprint/1.9.2/ix_values.yaml b/stable/octoprint/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..cbc8146b9d0 --- /dev/null +++ b/stable/octoprint/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: octoprint/octoprint + pullPolicy: IfNotPresent + tag: 1.6.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/octoprint/1.9.2/questions.yaml b/stable/octoprint/1.9.2/questions.yaml new file mode 100644 index 00000000000..1b776519c57 --- /dev/null +++ b/stable/octoprint/1.9.2/questions.yaml @@ -0,0 +1,1114 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: ENABLE_MJPG_STREAMER + label: "ENABLE_MJPG_STREAMER" + description: "Enable this to ensure camera streaming is enabled you add a video device" + schema: + type: string + default: "false" + - variable: MJPG_STREAMER_INPUT + label: "MJPG_STREAMER_INPUT" + description: "MJPG Streamer input parameters" + schema: + type: string + default: "" + - variable: CAMERA_DEV + label: "CAMERA_DEV" + description: "MJPG Streamer camera device" + schema: + type: string + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36071 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/octoprint" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/octoprint/1.9.2/templates/common.yaml b/stable/octoprint/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/octoprint/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/octoprint/1.9.2/test_values.yaml b/stable/octoprint/1.9.2/test_values.yaml new file mode 100644 index 00000000000..aa27f8594f7 --- /dev/null +++ b/stable/octoprint/1.9.2/test_values.yaml @@ -0,0 +1,56 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: octoprint/octoprint + # -- image tag + tag: 1.6.1 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Enable MJPG Streamer + # Enable this to ensure camera streaming is enabled you add a video device. + ENABLE_MJPG_STREAMER: "true" + # -- MJPG Streamer input parameters + MJPG_STREAMER_INPUT: # "-y -n -r 640x480" + # -- MJPG Streamer camera device + CAMERA_DEV: # /dev/video0 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + + +securityContext: + # -- (bool) Privileged securityContext may be required if USB devics are accessed directly through the host machine + privileged: true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /octoprint + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + printer: + enabled: false + type: hostPath + hostPath: /dev/ttyACM0 diff --git a/stable/octoprint/1.9.2/values.yaml b/stable/octoprint/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/omada-controller/1.9.2/CONFIG.md b/stable/omada-controller/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/omada-controller/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/omada-controller/1.9.2/Chart.lock b/stable/omada-controller/1.9.2/Chart.lock new file mode 100644 index 00000000000..2e81d47f5db --- /dev/null +++ b/stable/omada-controller/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:17:19.687920276Z" diff --git a/stable/omada-controller/1.9.2/Chart.yaml b/stable/omada-controller/1.9.2/Chart.yaml new file mode 100644 index 00000000000..96e9fba879e --- /dev/null +++ b/stable/omada-controller/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Omada enables the network administrators to monitor and manage all the + Omada products in the network with a centralized management platform. +home: https://github.com/truechartsapps/tree/master/charts/incubator/omada-controller +icon: https://www.tp-link.com/assets/images/icon/logo-white.svg +keywords: +- omada-controller +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: omada-controller +sources: +- https://github.com/mbentley/docker-omada-controller +- https://github.com/truechartsapps/tree/master/charts/omada-controller +version: 1.9.2 diff --git a/stable/omada-controller/1.9.2/README.md b/stable/omada-controller/1.9.2/README.md new file mode 100644 index 00000000000..f79604477cf --- /dev/null +++ b/stable/omada-controller/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/omada-controller/1.9.2/app-readme.md b/stable/omada-controller/1.9.2/app-readme.md new file mode 100644 index 00000000000..5a0c9bb4fe8 --- /dev/null +++ b/stable/omada-controller/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Omada enables the network administrators to monitor and manage all the diff --git a/stable/omada-controller/1.9.2/charts/common-6.12.1.tgz b/stable/omada-controller/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/omada-controller/1.9.2/ix_values.yaml b/stable/omada-controller/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..a81d81e6747 --- /dev/null +++ b/stable/omada-controller/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: mbentley/omada-controller + pullPolicy: IfNotPresent + tag: '4.4' + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/omada-controller/1.9.2/questions.yaml b/stable/omada-controller/1.9.2/questions.yaml new file mode 100644 index 00000000000..00297570a1b --- /dev/null +++ b/stable/omada-controller/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8043 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8043 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36072 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App data Storage" + description: "Stores the Application data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/omada-controller/1.9.2/templates/common.yaml b/stable/omada-controller/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/omada-controller/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/omada-controller/1.9.2/test_values.yaml b/stable/omada-controller/1.9.2/test_values.yaml new file mode 100644 index 00000000000..5cd36323121 --- /dev/null +++ b/stable/omada-controller/1.9.2/test_values.yaml @@ -0,0 +1,38 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: mbentley/omada-controller + # -- image tag + tag: '4.4' + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://github.com/mbentley/docker-omada-controller) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8043 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/omada-controller/1.9.2/values.yaml b/stable/omada-controller/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/ombi/6.11.2/CONFIG.md b/stable/ombi/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/ombi/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/ombi/6.11.2/Chart.lock b/stable/ombi/6.11.2/Chart.lock new file mode 100644 index 00000000000..a435fad3f4d --- /dev/null +++ b/stable/ombi/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:25.02663619Z" diff --git a/stable/ombi/6.11.2/Chart.yaml b/stable/ombi/6.11.2/Chart.yaml new file mode 100644 index 00000000000..54b8e513475 --- /dev/null +++ b/stable/ombi/6.11.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Want a Movie or TV Show on Plex or Emby? Use Ombi! +home: https://github.com/truecharts/apps/tree/master/charts/stable/ombi +icon: https://raw.githubusercontent.com/Ombi-app/Ombi/gh-pages/img/android-chrome-512x512.png +keywords: +- ombi +- plex +- emby +- sonarr +- radarr +- couchpotato +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: ombi +sources: +- https://github.com/tidusjar/Ombi +type: application +version: 6.11.2 diff --git a/stable/ombi/6.11.2/README.md b/stable/ombi/6.11.2/README.md new file mode 100644 index 00000000000..5e8242acdbe --- /dev/null +++ b/stable/ombi/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Want a Movie or TV Show on Plex or Emby? Use Ombi! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/ombi/6.11.2/app-readme.md b/stable/ombi/6.11.2/app-readme.md new file mode 100644 index 00000000000..7dd4dce71a0 --- /dev/null +++ b/stable/ombi/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Want a Movie or TV Show on Plex or Emby? Use Ombi! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Want a Movie or TV Show on Plex or Emby? Use Ombi! diff --git a/stable/ombi/6.11.2/charts/common-6.12.1.tgz b/stable/ombi/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/ombi/6.11.2/ix_values.yaml b/stable/ombi/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..b881db9d55b --- /dev/null +++ b/stable/ombi/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1468 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/ombi/6.11.2/questions.yaml b/stable/ombi/6.11.2/questions.yaml new file mode 100644 index 00000000000..97497310eda --- /dev/null +++ b/stable/ombi/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3579 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36013 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/ombi/6.11.2/templates/common.yaml b/stable/ombi/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/ombi/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ombi/6.11.2/test_values.yaml b/stable/ombi/6.11.2/test_values.yaml new file mode 100644 index 00000000000..77504662129 --- /dev/null +++ b/stable/ombi/6.11.2/test_values.yaml @@ -0,0 +1,42 @@ +# Default values for Ombi. + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1468 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 3579 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# Enabled mariadb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb +mariadb: + enabled: false + architecture: standalone + auth: + database: ombi + username: ombi + password: ombi + primary: + persistence: + enabled: false diff --git a/stable/ombi/6.11.2/values.yaml b/stable/ombi/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/openldap/1.7.2/CONFIG.md b/stable/openldap/1.7.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/openldap/1.7.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/openldap/1.7.2/Chart.lock b/stable/openldap/1.7.2/Chart.lock new file mode 100644 index 00000000000..84cc2d9908b --- /dev/null +++ b/stable/openldap/1.7.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:30.261160102Z" diff --git a/stable/openldap/1.7.2/Chart.yaml b/stable/openldap/1.7.2/Chart.yaml new file mode 100644 index 00000000000..d9f7393e10d --- /dev/null +++ b/stable/openldap/1.7.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Community developed LDAP software +home: https://www.openldap.org +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/7/71/Database-openldap.svg/640px-Database-openldap.svg.png +keywords: +- ldap +- openldap +- iam-stack +- high availability +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: openldap +sources: +- https://github.com/jp-gouin/helm-openldap +- https://github.com/osixia/docker-openldap +type: application +version: 1.7.2 diff --git a/stable/openldap/1.7.2/README.md b/stable/openldap/1.7.2/README.md new file mode 100644 index 00000000000..0977deebc71 --- /dev/null +++ b/stable/openldap/1.7.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.7.2](https://img.shields.io/badge/Version-1.7.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Community developed LDAP software + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/openldap/1.7.2/app-readme.md b/stable/openldap/1.7.2/app-readme.md new file mode 100644 index 00000000000..406b045c6d1 --- /dev/null +++ b/stable/openldap/1.7.2/app-readme.md @@ -0,0 +1,4 @@ +Community developed LDAP software + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Community developed LDAP software diff --git a/stable/openldap/1.7.2/charts/common-6.12.1.tgz b/stable/openldap/1.7.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/openldap/1.7.2/ix_values.yaml b/stable/openldap/1.7.2/ix_values.yaml new file mode 100644 index 00000000000..bdc8ae302de --- /dev/null +++ b/stable/openldap/1.7.2/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## +image: + repository: osixia/openldap + pullPolicy: IfNotPresent + tag: 1.5.0 + +controller: + # -- Set the controller type. + # Valid options are deployment, daemonset or statefulset + type: statefulset + # -- Number of desired pods + replicas: 1 + # -- Set the controller upgrade strategy + # For Deployments, valid values are Recreate (default) and RollingUpdate. + # For StatefulSets, valid values are OnDelete and RollingUpdate (default). + # DaemonSets ignore this. + strategy: RollingUpdate + rollingUpdate: + # -- Set deployment RollingUpdate max unavailable + unavailable: 1 + # -- Set deployment RollingUpdate max surge + surge: + # -- Set statefulset RollingUpdate partition + partition: + # -- ReplicaSet revision history limit + revisionHistoryLimit: 3 + +envFrom: + - configMapRef: + name: openldapconfig + +replication: + enabled: false + # Enter the name of your cluster, defaults to "cluster.local" + clusterName: "cluster.local" + retry: 60 + timeout: 1 + interval: 00:00:00:10 + starttls: "critical" + tls_reqcert: "never" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/openldap/1.7.2/questions.yaml b/stable/openldap/1.7.2/questions.yaml new file mode 100644 index 00000000000..d4df13bf3d7 --- /dev/null +++ b/stable/openldap/1.7.2/questions.yaml @@ -0,0 +1,1062 @@ +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: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "Statefulset" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: LDAP_LOG_LEVEL + label: "LDAP_LOG_LEVEL" + schema: + type: string + required: true + default: "256" + - variable: LDAP_ORGANISATION + label: "LDAP_ORGANISATION" + schema: + type: string + required: true + default: "Example Company or Household" + - variable: LDAP_DOMAIN + label: "LDAP_DOMAIN" + schema: + type: string + required: true + default: "example.org" + - variable: LDAP_READONLY_USER + label: "LDAP_READONLY_USER" + schema: + type: string + required: true + default: "false" + - variable: LDAP_READONLY_USER_USERNAME + label: "LDAP_READONLY_USER_USERNAME" + schema: + type: string + required: true + default: "readonly" + - variable: LDAP_READONLY_USER_PASSWORD + label: "LDAP_READONLY_USER_PASSWORD" + schema: + type: string + required: true + default: "readonly" + - variable: LDAP_RFC2307BIS_SCHEMA + label: "LDAP_RFC2307BIS_SCHEMA" + schema: + type: string + required: true + default: "false" + - variable: LDAP_BACKEND + label: "LDAP_BACKEND" + schema: + type: string + required: true + default: "mdb" + - variable: LDAP_TLS + label: "LDAP_TLS" + schema: + type: string + required: true + default: "true" + - variable: LDAP_TLS_ENFORCE + label: "LDAP_TLS_ENFORCE" + schema: + type: string + required: true + default: "false" + - variable: LDAP_TLS_VERIFY_CLIENT + label: "LDAP_TLS_VERIFY_CLIENT" + schema: + type: string + required: true + default: "never" + - variable: LDAP_TLS_PROTOCOL_MIN + label: "LDAP_TLS_PROTOCOL_MIN" + schema: + type: string + required: true + default: "3.0" + - variable: LDAP_TLS_CIPHER_SUITE + label: "LDAP_TLS_CIPHER_SUITE" + schema: + type: string + required: true + default: "NORMAL" + - variable: LDAP_TLS_REQCERT + label: "LDAP_TLS_REQCERT" + schema: + type: string + required: true + default: "never" + - variable: CONTAINER_LOG_LEVEL + label: "CONTAINER_LOG_LEVEL" + schema: + type: string + required: true + default: "4" + - variable: KEEP_EXISTING_CONFIG + label: "KEEP_EXISTING_CONFIG" + schema: + type: string + required: true + default: "false" + - variable: LDAP_REMOVE_CONFIG_AFTER_SETUP + label: "LDAP_REMOVE_CONFIG_AFTER_SETUP" + schema: + type: string + required: true + default: "true" + - variable: LDAP_SSL_HELPER_PREFIX + label: "LDAP_SSL_HELPER_PREFIX" + schema: + type: string + required: true + default: "ldap" + - variable: LDAP_ADMIN_PASSWORD + label: "LDAP_ADMIN_PASSWORD" + schema: + type: string + required: true + default: "" + - variable: LDAP_CONFIG_PASSWORD + label: "LDAP_CONFIG_PASSWORD" + schema: + type: string + required: true + default: "" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 389 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 389 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36094 + - variable: ldaps + label: "ldaps Service" + description: "The ldaps service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 636 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 636 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36095 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: volumeClaimTemplates + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/ldap" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: slapd + label: "slapd Storage" + description: "Stores the Application slapd." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/etc/ldap/slapd.d" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/openldap/1.7.2/templates/_configmap.tpl b/stable/openldap/1.7.2/templates/_configmap.tpl new file mode 100644 index 00000000000..4a3c5474509 --- /dev/null +++ b/stable/openldap/1.7.2/templates/_configmap.tpl @@ -0,0 +1,21 @@ +{{/* Define the configmap */}} +{{- define "openldap.configmap" -}} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: openldapconfig +data: + LDAP_TLS_CRT_FILENAME: "tls.crt" + LDAP_TLS_KEY_FILENAME: "tls.key" + LDAP_TLS_DH_PARAM_FILENAME: "dhparam.pem" + LDAP_TLS_CA_CRT_FILENAME: "ca.crt" +{{- if .Values.replication.enabled }} + LDAP_REPLICATION: "true" + LDAP_REPLICATION_CONFIG_SYNCPROV: "binddn=\"cn=admin,cn=config\" bindmethod=simple credentials=$LDAP_CONFIG_PASSWORD searchbase=\"cn=config\" type=refreshAndPersist retry=\"{{.Values.replication.retry }} +\" timeout={{.Values.replication.timeout }} starttls={{.Values.replication.starttls }} tls_reqcert={{.Values.replication.tls_reqcert }}" + LDAP_REPLICATION_DB_SYNCPROV: "binddn=\"cn=admin,$LDAP_BASE_DN\" bindmethod=simple credentials=$LDAP_ADMIN_PASSWORD searchbase=\"$LDAP_BASE_DN\" type=refreshAndPersist interval={{.Values.replication.interval }} retry=\"{{.Values.replication.retry }} +\" timeout={{.Values.replication.timeout }} starttls={{.Values.replication.starttls }} tls_reqcert={{.Values.replication.tls_reqcert }}" + LDAP_REPLICATION_HOSTS: "#PYTHON2BASH:[{{ template "replicalist" . }}]" +{{- end }} + +{{- end -}} diff --git a/stable/openldap/1.7.2/templates/common.yaml b/stable/openldap/1.7.2/templates/common.yaml new file mode 100644 index 00000000000..c9df40ff35f --- /dev/null +++ b/stable/openldap/1.7.2/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for openldap */}} +{{- include "openldap.configmap" . }} diff --git a/stable/openldap/1.7.2/test_values.yaml b/stable/openldap/1.7.2/test_values.yaml new file mode 100644 index 00000000000..77005dbe343 --- /dev/null +++ b/stable/openldap/1.7.2/test_values.yaml @@ -0,0 +1,88 @@ +# Default values for Bitwarden. + +image: + repository: osixia/openldap + pullPolicy: IfNotPresent + tag: 1.5.0 + +controller: + # -- Set the controller type. + # Valid options are deployment, daemonset or statefulset + type: statefulset + # -- Number of desired pods + replicas: 1 + # -- Set the controller upgrade strategy + # For Deployments, valid values are Recreate (default) and RollingUpdate. + # For StatefulSets, valid values are OnDelete and RollingUpdate (default). + # DaemonSets ignore this. + strategy: RollingUpdate + rollingUpdate: + # -- Set deployment RollingUpdate max unavailable + unavailable: 1 + # -- Set deployment RollingUpdate max surge + surge: + # -- Set statefulset RollingUpdate partition + partition: + # -- ReplicaSet revision history limit + revisionHistoryLimit: 3 + +service: + main: + ports: + main: + port: 389 + https: + ports: + https: + port: 636 + +# Default configuration for openldap as environment variables. These get injected directly in the container. +# Use the env variables from https://github.com/osixia/docker-openldap#beginner-guide +env: + LDAP_LOG_LEVEL: "256" + LDAP_ORGANISATION: "Example Inc." + LDAP_DOMAIN: "example.org" + LDAP_READONLY_USER: "false" + LDAP_READONLY_USER_USERNAME: "readonly" + LDAP_READONLY_USER_PASSWORD: "readonly" + LDAP_RFC2307BIS_SCHEMA: "false" + LDAP_BACKEND: "mdb" + LDAP_TLS: "true" + LDAP_TLS_ENFORCE: "false" + LDAP_TLS_VERIFY_CLIENT: "never" + LDAP_TLS_PROTOCOL_MIN: "3.0" + LDAP_TLS_CIPHER_SUITE: "NORMAL" + LDAP_TLS_REQCERT: "never" + CONTAINER_LOG_LEVEL: "4" + KEEP_EXISTING_CONFIG: "false" + LDAP_REMOVE_CONFIG_AFTER_SETUP: "true" + LDAP_SSL_HELPER_PREFIX: "ldap" + LDAP_ADMIN_PASSWORD: "ldapadmin" + LDAP_CONFIG_PASSWORD: "changeme" + +replication: + enabled: false + # Enter the name of your cluster, defaults to "cluster.local" + clusterName: "cluster.local" + retry: 60 + timeout: 1 + interval: 00:00:00:10 + starttls: "critical" + tls_reqcert: "never" + +envFrom: + - configMapRef: + name: openldapconfig + +# -- Used in conjunction with `controller.type: statefulset` to create individual disks for each instance. +volumeClaimTemplates: + data: + enabled: true + mountPath: "/var/lib/ldap" + accessMode: ReadWriteOnce + size: "100Gi" + slapd: + enabled: true + mountPath: "/etc/ldap/slapd.d" + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/openldap/1.7.2/values.yaml b/stable/openldap/1.7.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/organizr/6.11.2/CONFIG.md b/stable/organizr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/organizr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/organizr/6.11.2/Chart.lock b/stable/organizr/6.11.2/Chart.lock new file mode 100644 index 00000000000..479728f7b9c --- /dev/null +++ b/stable/organizr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:35.484782323Z" diff --git a/stable/organizr/6.11.2/Chart.yaml b/stable/organizr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..72517ec597a --- /dev/null +++ b/stable/organizr/6.11.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: HTPC/Homelab Services Organizer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/organizr +icon: https://github.com/causefx/Organizr/blob/v2-master/plugins/images/organizr/logo.png?raw=true +keywords: +- organizr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: organizr +sources: +- https://github.com/causefx/Organizr +- https://hub.docker.com/r/organizr/organizr +type: application +version: 6.11.2 diff --git a/stable/organizr/6.11.2/README.md b/stable/organizr/6.11.2/README.md new file mode 100644 index 00000000000..6cbc59cd767 --- /dev/null +++ b/stable/organizr/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +HTPC/Homelab Services Organizer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/organizr/6.11.2/app-readme.md b/stable/organizr/6.11.2/app-readme.md new file mode 100644 index 00000000000..fd5d55ab79e --- /dev/null +++ b/stable/organizr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +HTPC/Homelab Services Organizer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +HTPC/Homelab Services Organizer diff --git a/stable/organizr/6.11.2/charts/common-6.12.1.tgz b/stable/organizr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/organizr/6.11.2/ix_values.yaml b/stable/organizr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..19a9fa1ee99 --- /dev/null +++ b/stable/organizr/6.11.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/organizr/6.11.2/questions.yaml b/stable/organizr/6.11.2/questions.yaml new file mode 100644 index 00000000000..4cb19de40f5 --- /dev/null +++ b/stable/organizr/6.11.2/questions.yaml @@ -0,0 +1,1176 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36046 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/organizr/6.11.2/templates/common.yaml b/stable/organizr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/organizr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/organizr/6.11.2/test_values.yaml b/stable/organizr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..cf066965d16 --- /dev/null +++ b/stable/organizr/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Organizr. + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/organizr/6.11.2/values.yaml b/stable/organizr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/overseerr/1.9.2/CONFIG.md b/stable/overseerr/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/overseerr/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/overseerr/1.9.2/Chart.lock b/stable/overseerr/1.9.2/Chart.lock new file mode 100644 index 00000000000..59614c79956 --- /dev/null +++ b/stable/overseerr/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:17:40.734328255Z" diff --git a/stable/overseerr/1.9.2/Chart.yaml b/stable/overseerr/1.9.2/Chart.yaml new file mode 100644 index 00000000000..d810ada2c5a --- /dev/null +++ b/stable/overseerr/1.9.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Overseerr is a free and open source software application for managing + requests for your media library. It integrates with your existing services such + as Sonarr, Radarr and Plex! +home: https://github.com/truechartsapps/tree/master/charts/incubator/overseerr +icon: https://i.imgur.com/TMoEG7g.png +keywords: +- overseerr +- plex +- sonarr +- radarr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: overseerr +sources: +- https://github.com/sct/overseerr +- https://hub.docker.com/r/sctx/overseerr +version: 1.9.2 diff --git a/stable/overseerr/1.9.2/README.md b/stable/overseerr/1.9.2/README.md new file mode 100644 index 00000000000..0b267d3bd7e --- /dev/null +++ b/stable/overseerr/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services such as Sonarr, Radarr and Plex! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/overseerr/1.9.2/app-readme.md b/stable/overseerr/1.9.2/app-readme.md new file mode 100644 index 00000000000..ee304f25811 --- /dev/null +++ b/stable/overseerr/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services such as Sonarr, Radarr and Plex! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Overseerr is a free and open source software application for managing diff --git a/stable/overseerr/1.9.2/charts/common-6.12.1.tgz b/stable/overseerr/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/overseerr/1.9.2/ix_values.yaml b/stable/overseerr/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..ccd9749b2c5 --- /dev/null +++ b/stable/overseerr/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/sct/overseerr + pullPolicy: IfNotPresent + tag: 1.25.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/overseerr/1.9.2/questions.yaml b/stable/overseerr/1.9.2/questions.yaml new file mode 100644 index 00000000000..35830c70dd4 --- /dev/null +++ b/stable/overseerr/1.9.2/questions.yaml @@ -0,0 +1,1110 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: LOG_LEVEL + label: "LOG_LEVEL" + description: "Set the application log level" + schema: + type: string + default: "info" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5055 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5055 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36073 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/overseerr/1.9.2/templates/common.yaml b/stable/overseerr/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/overseerr/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/overseerr/1.9.2/test_values.yaml b/stable/overseerr/1.9.2/test_values.yaml new file mode 100644 index 00000000000..d9f82d1c237 --- /dev/null +++ b/stable/overseerr/1.9.2/test_values.yaml @@ -0,0 +1,41 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/sct/overseerr + # -- image tag + tag: 1.25.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set the application log level + LOG_LEVEL: info + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 5055 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/config diff --git a/stable/overseerr/1.9.2/values.yaml b/stable/overseerr/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/owncast/1.9.2/CONFIG.md b/stable/owncast/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/owncast/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/owncast/1.9.2/Chart.lock b/stable/owncast/1.9.2/Chart.lock new file mode 100644 index 00000000000..26f1ccd4e1a --- /dev/null +++ b/stable/owncast/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:17:45.909814685Z" diff --git a/stable/owncast/1.9.2/Chart.yaml b/stable/owncast/1.9.2/Chart.yaml new file mode 100644 index 00000000000..310f5d00f59 --- /dev/null +++ b/stable/owncast/1.9.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Take control over your live stream video by running it yourself. Streaming + + chat out of the box. +home: https://github.com/truechartsapps/tree/master/charts/incubator/owncast +icon: https://owncast.online/images/owncast-logo-1000x1000.png +keywords: +- owncast +- stream +- open source +- chat +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: owncast +sources: +- https://owncast.online/ +- https://github.com/owncast/owncast +version: 1.9.2 diff --git a/stable/owncast/1.9.2/README.md b/stable/owncast/1.9.2/README.md new file mode 100644 index 00000000000..49aed214f7c --- /dev/null +++ b/stable/owncast/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Take control over your live stream video by running it yourself. Streaming + chat out of the box. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/owncast/1.9.2/app-readme.md b/stable/owncast/1.9.2/app-readme.md new file mode 100644 index 00000000000..317ffddbe25 --- /dev/null +++ b/stable/owncast/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Take control over your live stream video by running it yourself. Streaming + chat out of the box. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Take control over your live stream video by running it yourself. Streaming diff --git a/stable/owncast/1.9.2/charts/common-6.12.1.tgz b/stable/owncast/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/owncast/1.9.2/ix_values.yaml b/stable/owncast/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..754d0aacc8e --- /dev/null +++ b/stable/owncast/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: gabekangas/owncast + pullPolicy: IfNotPresent + tag: 0.0.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/owncast/1.9.2/questions.yaml b/stable/owncast/1.9.2/questions.yaml new file mode 100644 index 00000000000..160c9f5af24 --- /dev/null +++ b/stable/owncast/1.9.2/questions.yaml @@ -0,0 +1,1201 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36074 + - variable: rtmp + label: "rtmp Service" + description: "The rtmp service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: rtmp + label: "rtmp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1935 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1935 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36075 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/owncast/1.9.2/templates/common.yaml b/stable/owncast/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/owncast/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/owncast/1.9.2/test_values.yaml b/stable/owncast/1.9.2/test_values.yaml new file mode 100644 index 00000000000..f72ef354e54 --- /dev/null +++ b/stable/owncast/1.9.2/test_values.yaml @@ -0,0 +1,44 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: +# -- image repository + repository: gabekangas/owncast + # -- image tag + tag: 0.0.8 + # -- image pull policy + pullPolicy: IfNotPresent + + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + rtmp: + enabled: true + type: NodePort + externalTrafficPolicy: Local + ports: + rtmp: + enabled: true + port: 1935 + protocol: TCP + targetPort: 1935 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/data diff --git a/stable/owncast/1.9.2/values.yaml b/stable/owncast/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/owncloud-ocis/1.9.2/CONFIG.md b/stable/owncloud-ocis/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/owncloud-ocis/1.9.2/Chart.lock b/stable/owncloud-ocis/1.9.2/Chart.lock new file mode 100644 index 00000000000..69ff0c62d57 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:17:51.190649225Z" diff --git a/stable/owncloud-ocis/1.9.2/Chart.yaml b/stable/owncloud-ocis/1.9.2/Chart.yaml new file mode 100644 index 00000000000..66b05ff3730 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: ownCloud Infinite Scale is a self-hosted file sync and share server. +home: https://github.com/truechartsapps/tree/master/charts/incubator/owncloud-ocis +icon: https://avatars.githubusercontent.com/u/1645051?s=200&v=4 +keywords: +- owncloud +- ocis +- infinite +- scale +- self-hosted +- sync +- share +- server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: owncloud-ocis +sources: +- https://hub.docker.com/r/owncloud/ocis +- https://owncloud.dev/ocis/ +version: 1.9.2 diff --git a/stable/owncloud-ocis/1.9.2/README.md b/stable/owncloud-ocis/1.9.2/README.md new file mode 100644 index 00000000000..443b5e6cbc5 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ownCloud Infinite Scale is a self-hosted file sync and share server. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/owncloud-ocis/1.9.2/app-readme.md b/stable/owncloud-ocis/1.9.2/app-readme.md new file mode 100644 index 00000000000..35e2f816a81 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +ownCloud Infinite Scale is a self-hosted file sync and share server. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +ownCloud Infinite Scale is a self-hosted file sync and share server. diff --git a/stable/owncloud-ocis/1.9.2/charts/common-6.12.1.tgz b/stable/owncloud-ocis/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/owncloud-ocis/1.9.2/ix_values.yaml b/stable/owncloud-ocis/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..6fbcacb8108 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: owncloud/ocis + pullPolicy: IfNotPresent + tag: 1.11.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/owncloud-ocis/1.9.2/questions.yaml b/stable/owncloud-ocis/1.9.2/questions.yaml new file mode 100644 index 00000000000..ae6e6bcb076 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9200 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9200 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36076 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/owncloud-ocis/1.9.2/templates/common.yaml b/stable/owncloud-ocis/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/owncloud-ocis/1.9.2/test_values.yaml b/stable/owncloud-ocis/1.9.2/test_values.yaml new file mode 100644 index 00000000000..fe1da3e1543 --- /dev/null +++ b/stable/owncloud-ocis/1.9.2/test_values.yaml @@ -0,0 +1,42 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: owncloud/ocis + # -- image tag + tag: 1.11.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [owncloud-ocis documentation](https://owncloud.dev/ocis/configuration/#environment-variables). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9200 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + ocis: + enabled: false + mountPath: /var/tmp/ocis diff --git a/stable/owncloud-ocis/1.9.2/values.yaml b/stable/owncloud-ocis/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pgadmin/1.8.2/CONFIG.md b/stable/pgadmin/1.8.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pgadmin/1.8.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pgadmin/1.8.2/Chart.lock b/stable/pgadmin/1.8.2/Chart.lock new file mode 100644 index 00000000000..a7e0080eb3b --- /dev/null +++ b/stable/pgadmin/1.8.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:17:56.525797982Z" diff --git a/stable/pgadmin/1.8.2/Chart.yaml b/stable/pgadmin/1.8.2/Chart.yaml new file mode 100644 index 00000000000..c5841e11169 --- /dev/null +++ b/stable/pgadmin/1.8.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Web-Based postgresql database management utility +home: https://github.com/truecharts/apps/tree/master/charts/stable/pgadmin +icon: https://www.postgresql.org/message-id/attachment/1139/pgAdmin.svg +keywords: +- pgadmin +- db +- database +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: pgadmin +sources: +- https://www.pgadmin.org/ +type: application +version: 1.8.2 diff --git a/stable/pgadmin/1.8.2/README.md b/stable/pgadmin/1.8.2/README.md new file mode 100644 index 00000000000..bbfd0b0bf05 --- /dev/null +++ b/stable/pgadmin/1.8.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.8.2](https://img.shields.io/badge/Version-1.8.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Web-Based postgresql database management utility + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pgadmin/1.8.2/app-readme.md b/stable/pgadmin/1.8.2/app-readme.md new file mode 100644 index 00000000000..65e9f45aba4 --- /dev/null +++ b/stable/pgadmin/1.8.2/app-readme.md @@ -0,0 +1,4 @@ +Web-Based postgresql database management utility + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Web-Based postgresql database management utility diff --git a/stable/pgadmin/1.8.2/charts/common-6.12.1.tgz b/stable/pgadmin/1.8.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pgadmin/1.8.2/ix_values.yaml b/stable/pgadmin/1.8.2/ix_values.yaml new file mode 100644 index 00000000000..1afaaefeb90 --- /dev/null +++ b/stable/pgadmin/1.8.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: dpage/pgadmin4 + pullPolicy: IfNotPresent + tag: "5.6" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pgadmin/1.8.2/questions.yaml b/stable/pgadmin/1.8.2/questions.yaml new file mode 100644 index 00000000000..c4eaac222b7 --- /dev/null +++ b/stable/pgadmin/1.8.2/questions.yaml @@ -0,0 +1,1113 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 5050 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 5050 + - variable: PGADMIN_DEFAULT_EMAIL + label: "PGADMIN_DEFAULT_EMAIL" + schema: + type: string + required: true + default: "" + - variable: PGADMIN_DEFAULT_PASSWORD + label: "PGADMIN_DEFAULT_PASSWORD" + schema: + type: string + required: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/pgadmin" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 5050 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/pgadmin/1.8.2/templates/common.yaml b/stable/pgadmin/1.8.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pgadmin/1.8.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pgadmin/1.8.2/test_values.yaml b/stable/pgadmin/1.8.2/test_values.yaml new file mode 100644 index 00000000000..bf1b9d135ae --- /dev/null +++ b/stable/pgadmin/1.8.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Jackett. + +image: + repository: dpage/pgadmin4 + pullPolicy: IfNotPresent + tag: "5.6" + +strategy: + type: Recreate + +service: + main: + enabled: true + ports: + main: + port: 80 + +env: + PGADMIN_DEFAULT_EMAIL: "replace@this.now" + PGADMIN_DEFAULT_PASSWORD: "changeme" + +persistence: + config: + enabled: true + mountPath: "/var/lib/pgadmin" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/pgadmin/1.8.2/values.yaml b/stable/pgadmin/1.8.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/photoprism/1.9.2/CONFIG.md b/stable/photoprism/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/photoprism/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/photoprism/1.9.2/Chart.lock b/stable/photoprism/1.9.2/Chart.lock new file mode 100644 index 00000000000..f8dbd3bed78 --- /dev/null +++ b/stable/photoprism/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:18:01.742970439Z" diff --git a/stable/photoprism/1.9.2/Chart.yaml b/stable/photoprism/1.9.2/Chart.yaml new file mode 100644 index 00000000000..8873e7d3446 --- /dev/null +++ b/stable/photoprism/1.9.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: "PhotoPrism\xC2\xAE is a server-based application for browsing, organizing\ + \ and sharing your personal photo collection" +home: https://github.com/truechartsapps/tree/master/charts/incubator/photoprism +icon: https://demo.photoprism.org/static/img/logo-avatar.svg +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/photoprism/photoprism +- https://hub.docker.com/r/photoprism/photoprism +version: 1.9.2 diff --git a/stable/photoprism/1.9.2/README.md b/stable/photoprism/1.9.2/README.md new file mode 100644 index 00000000000..351fb701a3a --- /dev/null +++ b/stable/photoprism/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/photoprism/1.9.2/app-readme.md b/stable/photoprism/1.9.2/app-readme.md new file mode 100644 index 00000000000..8895178de5c --- /dev/null +++ b/stable/photoprism/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"PhotoPrism\xC2\xAE is a server-based application for browsing, organizing\ diff --git a/stable/photoprism/1.9.2/charts/common-6.12.1.tgz b/stable/photoprism/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/photoprism/1.9.2/ix_values.yaml b/stable/photoprism/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..53f7564cc33 --- /dev/null +++ b/stable/photoprism/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: photoprism/photoprism + pullPolicy: IfNotPresent + tag: "20210523" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/photoprism/1.9.2/questions.yaml b/stable/photoprism/1.9.2/questions.yaml new file mode 100644 index 00000000000..4e583ff5b4b --- /dev/null +++ b/stable/photoprism/1.9.2/questions.yaml @@ -0,0 +1,1141 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PHOTOPRISM_STORAGE_PATH + label: "PHOTOPRISM_STORAGE_PATH" + description: "Photoprism storage path" + schema: + type: string + default: "/photoprism/storage" + - variable: PHOTOPRISM_ORIGINALS_PATH + label: "PHOTOPRISM_ORIGINALS_PATH" + description: "Photoprism originals path" + schema: + type: string + default: "/photoprism/originals" + - variable: PHOTOPRISM_ADMIN_PASSWORD + label: "PHOTOPRISM_ADMIN_PASSWORD" + description: "Initial admin password. **BE SURE TO CHANGE THIS!**" + schema: + type: string + required: true + default: "" + - variable: PHOTOPRISM_PUBLIC + label: "PHOTOPRISM_PUBLIC" + description: "Disable authentication / password protection" + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 2342 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 2342 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36077 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/photoprism/storage" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/photoprism/1.9.2/templates/common.yaml b/stable/photoprism/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/photoprism/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/photoprism/1.9.2/test_values.yaml b/stable/photoprism/1.9.2/test_values.yaml new file mode 100644 index 00000000000..19ee5d69ef0 --- /dev/null +++ b/stable/photoprism/1.9.2/test_values.yaml @@ -0,0 +1,57 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: photoprism/photoprism + # -- image tag + tag: "20210523" + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.photoprism.org/getting-started/config-options/) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Photoprism storage path + PHOTOPRISM_STORAGE_PATH: /photoprism/storage + # -- Photoprism originals path + PHOTOPRISM_ORIGINALS_PATH: /photoprism/originals + # -- Initial admin password. **BE SURE TO CHANGE THIS!** + PHOTOPRISM_ADMIN_PASSWORD: "please-change" + # -- Disable authentication / password protection + PHOTOPRISM_PUBLIC: "false" + # -- Sets UID Photoprism runs under. + UID: # 1000 + # -- Sets GID Photoprism runs under. + GID: # 1000 + # -- Sets UMASK. + UMASK: # 0000 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 2342 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /photoprism/storage + + originals: + enabled: false + mountPath: "/photoprism/originals" diff --git a/stable/photoprism/1.9.2/values.yaml b/stable/photoprism/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/phpldapadmin/1.8.2/CONFIG.md b/stable/phpldapadmin/1.8.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/phpldapadmin/1.8.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/phpldapadmin/1.8.2/Chart.lock b/stable/phpldapadmin/1.8.2/Chart.lock new file mode 100644 index 00000000000..2cf9b3e39d8 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:07.027626935Z" diff --git a/stable/phpldapadmin/1.8.2/Chart.yaml b/stable/phpldapadmin/1.8.2/Chart.yaml new file mode 100644 index 00000000000..16684d32289 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Web-based LDAP browser to manage your LDAP server +home: https://github.com/truecharts/apps/tree/master/charts/stable/phpldapadmin +icon: https://repository-images.githubusercontent.com/3665191/dd213f80-766c-11e9-8117-6b639095ef99 +keywords: +- phpldapadmin +- openldap +- userrights +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: phpldapadmin +sources: +- https://gitlab.v2.rancher.geohub.space/g3s/i3s/i3s-helm-catalog +type: application +version: 1.8.2 diff --git a/stable/phpldapadmin/1.8.2/README.md b/stable/phpldapadmin/1.8.2/README.md new file mode 100644 index 00000000000..bb01ce7130c --- /dev/null +++ b/stable/phpldapadmin/1.8.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.8.2](https://img.shields.io/badge/Version-1.8.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Web-based LDAP browser to manage your LDAP server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/phpldapadmin/1.8.2/app-readme.md b/stable/phpldapadmin/1.8.2/app-readme.md new file mode 100644 index 00000000000..48ee3d8cdf1 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/app-readme.md @@ -0,0 +1,4 @@ +Web-based LDAP browser to manage your LDAP server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Web-based LDAP browser to manage your LDAP server diff --git a/stable/phpldapadmin/1.8.2/charts/common-6.12.1.tgz b/stable/phpldapadmin/1.8.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/phpldapadmin/1.8.2/ix_values.yaml b/stable/phpldapadmin/1.8.2/ix_values.yaml new file mode 100644 index 00000000000..40bc13dfe12 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: osixia/phpldapadmin + pullPolicy: IfNotPresent + tag: "0.9.0" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/phpldapadmin/1.8.2/questions.yaml b/stable/phpldapadmin/1.8.2/questions.yaml new file mode 100644 index 00000000000..35dd3be31cb --- /dev/null +++ b/stable/phpldapadmin/1.8.2/questions.yaml @@ -0,0 +1,1000 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PHPLDAPADMIN_HTTPS + label: "PHPLDAPADMIN_HTTPS" + schema: + type: string + required: true + default: "false" + - variable: PHPLDAPADMIN_TRUST_PROXY_SSL + label: "PHPLDAPADMIN_TRUST_PROXY_SSL" + schema: + type: string + required: true + default: "true" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/phpldapadmin/1.8.2/templates/common.yaml b/stable/phpldapadmin/1.8.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/phpldapadmin/1.8.2/test_values.yaml b/stable/phpldapadmin/1.8.2/test_values.yaml new file mode 100644 index 00000000000..99345a76f15 --- /dev/null +++ b/stable/phpldapadmin/1.8.2/test_values.yaml @@ -0,0 +1,21 @@ +# Default values for Jackett. + +image: + repository: osixia/phpldapadmin + pullPolicy: IfNotPresent + tag: "0.9.0" + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 80 + +env: + PHPLDAPADMIN_HTTPS: "false" + PHPLDAPADMIN_TRUST_PROXY_SSL: "true" diff --git a/stable/phpldapadmin/1.8.2/values.yaml b/stable/phpldapadmin/1.8.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/piaware/1.9.2/CONFIG.md b/stable/piaware/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/piaware/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/piaware/1.9.2/Chart.lock b/stable/piaware/1.9.2/Chart.lock new file mode 100644 index 00000000000..ad61ce844b7 --- /dev/null +++ b/stable/piaware/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:18:12.338131827Z" diff --git a/stable/piaware/1.9.2/Chart.yaml b/stable/piaware/1.9.2/Chart.yaml new file mode 100644 index 00000000000..396cb0bc006 --- /dev/null +++ b/stable/piaware/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Program for forwarding ADS-B data to FlightAware +home: https://github.com/truechartsapps/tree/master/charts/incubator/piaware +icon: https://pbs.twimg.com/profile_images/964269455483088897/mr2UgvfG_400x400.jpg +keywords: +- piaware +- flight-aware +- flight-tracker +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: piaware +sources: +- https://github.com/flightaware/piaware +version: 1.9.2 diff --git a/stable/piaware/1.9.2/README.md b/stable/piaware/1.9.2/README.md new file mode 100644 index 00000000000..8a82330daf4 --- /dev/null +++ b/stable/piaware/1.9.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Program for forwarding ADS-B data to FlightAware + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/piaware/1.9.2/app-readme.md b/stable/piaware/1.9.2/app-readme.md new file mode 100644 index 00000000000..37ccf6c1fb5 --- /dev/null +++ b/stable/piaware/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Program for forwarding ADS-B data to FlightAware + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Program for forwarding ADS-B data to FlightAware diff --git a/stable/piaware/1.9.2/charts/common-6.12.1.tgz b/stable/piaware/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/piaware/1.9.2/ci/ct-values.yaml b/stable/piaware/1.9.2/ci/ct-values.yaml new file mode 100644 index 00000000000..3d1d3eb62f5 --- /dev/null +++ b/stable/piaware/1.9.2/ci/ct-values.yaml @@ -0,0 +1,3 @@ +env: + LAT: "29.9792" + LONG: "31.1342" diff --git a/stable/piaware/1.9.2/ix_values.yaml b/stable/piaware/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..be2e353346b --- /dev/null +++ b/stable/piaware/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: mikenye/piaware + pullPolicy: IfNotPresent + tag: v5.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/piaware/1.9.2/questions.yaml b/stable/piaware/1.9.2/questions.yaml new file mode 100644 index 00000000000..2ca94f6038e --- /dev/null +++ b/stable/piaware/1.9.2/questions.yaml @@ -0,0 +1,1144 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36078 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/piaware/1.9.2/templates/common.yaml b/stable/piaware/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/piaware/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/piaware/1.9.2/test_values.yaml b/stable/piaware/1.9.2/test_values.yaml new file mode 100644 index 00000000000..4b05cb70de5 --- /dev/null +++ b/stable/piaware/1.9.2/test_values.yaml @@ -0,0 +1,55 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: mikenye/piaware + # -- image tag + tag: v5.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [application docs](https://flightaware.com/adsb/piaware/advanced_configuration) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + + +securityContext: + # -- (bool) Privileged securityContext may be required if USB device is accessed directly through the host machine + privileged: true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + usb: + enabled: false + type: hostPath + hostPath: /dev/bus/usb/001/004 + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - piaware diff --git a/stable/piaware/1.9.2/values.yaml b/stable/piaware/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/plex/5.11.2/CONFIG.md b/stable/plex/5.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/plex/5.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/plex/5.11.2/Chart.lock b/stable/plex/5.11.2/Chart.lock new file mode 100644 index 00000000000..395bf990dfd --- /dev/null +++ b/stable/plex/5.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:17.48995964Z" diff --git a/stable/plex/5.11.2/Chart.yaml b/stable/plex/5.11.2/Chart.yaml new file mode 100644 index 00000000000..2d05f25275b --- /dev/null +++ b/stable/plex/5.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/plex +icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png +keywords: +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: plex +sources: null +type: application +version: 5.11.2 diff --git a/stable/plex/5.11.2/README.md b/stable/plex/5.11.2/README.md new file mode 100644 index 00000000000..28847c54b72 --- /dev/null +++ b/stable/plex/5.11.2/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 5.11.2](https://img.shields.io/badge/Version-5.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/plex/5.11.2/app-readme.md b/stable/plex/5.11.2/app-readme.md new file mode 100644 index 00000000000..f23536e413c --- /dev/null +++ b/stable/plex/5.11.2/app-readme.md @@ -0,0 +1,4 @@ +Plex Media Server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Plex Media Server diff --git a/stable/plex/5.11.2/charts/common-6.12.1.tgz b/stable/plex/5.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/plex/5.11.2/ix_values.yaml b/stable/plex/5.11.2/ix_values.yaml new file mode 100644 index 00000000000..f5d37e31294 --- /dev/null +++ b/stable/plex/5.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.24.1.4931-1a38e63c6 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/plex/5.11.2/questions.yaml b/stable/plex/5.11.2/questions.yaml new file mode 100644 index 00000000000..72f5527cabd --- /dev/null +++ b/stable/plex/5.11.2/questions.yaml @@ -0,0 +1,1132 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/web" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: ADVERTISE_IP + label: "Advertise IP" + description: "IP to advertise to Plex" + schema: + type: string + default: "" + - 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/16,10.0.0.0/8,172.16.0.0/12,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!)" + schema: + type: string + default: "" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 32400 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 32400 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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 + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/plex/5.11.2/templates/common.yaml b/stable/plex/5.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/plex/5.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/plex/5.11.2/test_values.yaml b/stable/plex/5.11.2/test_values.yaml new file mode 100644 index 00000000000..fec95290dd5 --- /dev/null +++ b/stable/plex/5.11.2/test_values.yaml @@ -0,0 +1,34 @@ +# Default values for Plex. + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.24.1.4931-1a38e63c6 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 32400 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +env: + ALLOWED_NETWORKS: "172.16.0.0/16" diff --git a/stable/plex/5.11.2/values.yaml b/stable/plex/5.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/podgrab/4.11.2/CONFIG.md b/stable/podgrab/4.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/podgrab/4.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/podgrab/4.11.2/Chart.lock b/stable/podgrab/4.11.2/Chart.lock new file mode 100644 index 00000000000..8d605ca48cb --- /dev/null +++ b/stable/podgrab/4.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:22.746789044Z" diff --git a/stable/podgrab/4.11.2/Chart.yaml b/stable/podgrab/4.11.2/Chart.yaml new file mode 100644 index 00000000000..a4537f839d8 --- /dev/null +++ b/stable/podgrab/4.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A self-hosted podcast manager to download episodes as soon as they become + live. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/podgrab +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Podcasts_%28iOS%29.svg/1024px-Podcasts_%28iOS%29.svg.png +keywords: +- podgrab +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: podgrab +sources: +- https://github.com/akhilrex/podgrab +- https://hub.docker.com/r/akhilrex/podgrab +type: application +version: 4.11.2 diff --git a/stable/podgrab/4.11.2/README.md b/stable/podgrab/4.11.2/README.md new file mode 100644 index 00000000000..4308b5a5359 --- /dev/null +++ b/stable/podgrab/4.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 4.11.2](https://img.shields.io/badge/Version-4.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A self-hosted podcast manager to download episodes as soon as they become live. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/podgrab/4.11.2/app-readme.md b/stable/podgrab/4.11.2/app-readme.md new file mode 100644 index 00000000000..83198f07f8d --- /dev/null +++ b/stable/podgrab/4.11.2/app-readme.md @@ -0,0 +1,4 @@ +A self-hosted podcast manager to download episodes as soon as they become live. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A self-hosted podcast manager to download episodes as soon as they become diff --git a/stable/podgrab/4.11.2/charts/common-6.12.1.tgz b/stable/podgrab/4.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/podgrab/4.11.2/ix_values.yaml b/stable/podgrab/4.11.2/ix_values.yaml new file mode 100644 index 00000000000..30b72ab29c1 --- /dev/null +++ b/stable/podgrab/4.11.2/ix_values.yaml @@ -0,0 +1,26 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: akhilrex/podgrab + pullPolicy: Always + tag: 1.0.0 + + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/podgrab/4.11.2/questions.yaml b/stable/podgrab/4.11.2/questions.yaml new file mode 100644 index 00000000000..32fec4c93ed --- /dev/null +++ b/stable/podgrab/4.11.2/questions.yaml @@ -0,0 +1,1113 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PASSWORD + label: "Password" + description: "Desired Password" + schema: + type: string + default: "" + required: false + - variable: CHECK_FREQUENCY + label: "Update Frequency" + description: "Interval to check for new podcasts" + schema: + type: int + default: 240 + required: true + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36047 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/podgrab/4.11.2/templates/common.yaml b/stable/podgrab/4.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/podgrab/4.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/podgrab/4.11.2/test_values.yaml b/stable/podgrab/4.11.2/test_values.yaml new file mode 100644 index 00000000000..41b324a9612 --- /dev/null +++ b/stable/podgrab/4.11.2/test_values.yaml @@ -0,0 +1,61 @@ +# Default values for podgrab. + +image: + repository: akhilrex/podgrab + pullPolicy: Always + tag: 1.0.0 + +strategy: + type: Recreate + +# Configure the Security Context for the Pod +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +service: + main: + ports: + main: + port: 8080 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP + +env: + PASSWORD: secretpasswordgoeshere + CHECK_FREQUENCY: 240 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +hostPathMounts: + - name: assets + enabled: true + mountPath: "/assets" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false diff --git a/stable/podgrab/4.11.2/values.yaml b/stable/podgrab/4.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/postgresql/1.5.2/CONFIG.md b/stable/postgresql/1.5.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/postgresql/1.5.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/postgresql/1.5.2/Chart.lock b/stable/postgresql/1.5.2/Chart.lock new file mode 100644 index 00000000000..44215fb1d3b --- /dev/null +++ b/stable/postgresql/1.5.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:28.095348121Z" diff --git a/stable/postgresql/1.5.2/Chart.yaml b/stable/postgresql/1.5.2/Chart.yaml new file mode 100644 index 00000000000..3842a36a968 --- /dev/null +++ b/stable/postgresql/1.5.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: PostgresSQL +home: https://github.com/truecharts/apps/tree/master/stable/postgres +icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png +keywords: +- postgres +- postgressql +- dtabase +- sql +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: postgresql +sources: +- https://www.postgresql.org/ +type: application +version: 1.5.2 diff --git a/stable/postgresql/1.5.2/README.md b/stable/postgresql/1.5.2/README.md new file mode 100644 index 00000000000..76a566cdef2 --- /dev/null +++ b/stable/postgresql/1.5.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.5.2](https://img.shields.io/badge/Version-1.5.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +PostgresSQL + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/1.5.2/app-readme.md b/stable/postgresql/1.5.2/app-readme.md new file mode 100644 index 00000000000..8a0f12eb322 --- /dev/null +++ b/stable/postgresql/1.5.2/app-readme.md @@ -0,0 +1,4 @@ +PostgresSQL + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +PostgresSQL diff --git a/stable/postgresql/1.5.2/charts/common-6.12.1.tgz b/stable/postgresql/1.5.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/postgresql/1.5.2/ix_values.yaml b/stable/postgresql/1.5.2/ix_values.yaml new file mode 100644 index 00000000000..d0916814ae0 --- /dev/null +++ b/stable/postgresql/1.5.2/ix_values.yaml @@ -0,0 +1,28 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: postgres + pullPolicy: IfNotPresent + tag: "13.4" + + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: '{{ .Values.existingSecret | default ( include "common.names.fullname" . ) }}' + key: "postgresql-password" + +envTpl: + POSTGRES_USER: "{{ .Values.postgresqlUsername }}" + POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" +# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" +# POSTGRESQL_PASSWORD: "{{ .Values.password }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/postgresql/1.5.2/questions.yaml b/stable/postgresql/1.5.2/questions.yaml new file mode 100644 index 00000000000..7c8968f3f44 --- /dev/null +++ b/stable/postgresql/1.5.2/questions.yaml @@ -0,0 +1,1067 @@ +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: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: postgresqlDatabase + group: "App Configuration" + label: "Database Name" + schema: + type: string + default: "mydatabase" + required: true + - variable: postgresqlUsername + group: "App Configuration" + label: "Database User" + schema: + type: string + default: "mydatabaseuser" + required: true + - variable: postgresqlPassword + group: "App Configuration" + label: "Database Password" + schema: + type: string + default: "" + required: true + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5432 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5432 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36009 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: db + label: "App db Storage" + description: "Stores the Application Database." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/postgresql/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: dbbackups + label: "App backup Storage" + description: "Stores the Application backups." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/dbbackups" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/postgresql/1.5.2/templates/backup-postgres-config.yaml b/stable/postgresql/1.5.2/templates/backup-postgres-config.yaml new file mode 100644 index 00000000000..e52eb2ed5a1 --- /dev/null +++ b/stable/postgresql/1.5.2/templates/backup-postgres-config.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "postgres-backup-hook-config-map" + annotations: + rollme: {{ randAlphaNum 5 | quote }} +data: + entrypoint.sh: |- + #!/bin/sh + cmd="/docker-entrypoint.sh postgres" + eval "${cmd}" & disown; + until pg_isready; do + sleep 5; + done; + pg_dump -U {{ .Values.postgresqlUser }} -d {{ .Values.postgresqlDatabase }} > /dbbackups/$BACKUP_NAME; diff --git a/stable/postgresql/1.5.2/templates/common.yaml b/stable/postgresql/1.5.2/templates/common.yaml new file mode 100644 index 00000000000..9705d4f5fa6 --- /dev/null +++ b/stable/postgresql/1.5.2/templates/common.yaml @@ -0,0 +1,2 @@ + +{{ include "common.all" . }} diff --git a/stable/postgresql/1.5.2/templates/secret.yaml b/stable/postgresql/1.5.2/templates/secret.yaml new file mode 100644 index 00000000000..be7022c005f --- /dev/null +++ b/stable/postgresql/1.5.2/templates/secret.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.names.fullname" . }} + labels: + {{- include "common.labels" . | nindent 4 }} + annotations: + {{- with .Values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +type: Opaque +data: + postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/stable/postgresql/1.5.2/templates/upgrade-backup-postgres-hook.yaml b/stable/postgresql/1.5.2/templates/upgrade-backup-postgres-hook.yaml new file mode 100644 index 00000000000..516ee5180a6 --- /dev/null +++ b/stable/postgresql/1.5.2/templates/upgrade-backup-postgres-hook.yaml @@ -0,0 +1,56 @@ +{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} +{{- if .Values.ixChartContext.isUpgrade -}} +{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} +{{ $values := (. | mustDeepCopy) }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: "pre-upgrade-hook2" + annotations: + "helm.sh/hook": pre-upgrade + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded + rollme: {{ randAlphaNum 5 | quote }} +spec: + template: + metadata: + name: "pre-upgrade-hook2" + spec: + restartPolicy: Never + containers: + - name: {{ .Chart.Name }}-postgres-backup + image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + - name: BACKUP_NAME + value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} + - name: POSTGRES_USER + value: {{ .Values.postgresqlUsername | quote }} + - name: POSTGRES_DB + value: {{ .Values.postgresqlDatabase | quote }} + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} + key: "postgresql-password" + command: + - "/bin/backup_entrypoint.sh" + volumeMounts: + - name: backup-script-configmap + mountPath: /bin/backup_entrypoint.sh + readOnly: true + subPath: entrypoint.sh + {{- with (include "common.controller.volumeMounts" . | trim) }} + {{ nindent 4 . }} + {{- end }} + volumes: + - name: backup-script-configmap + configMap: + defaultMode: 0700 + name: "postgres-backup-hook-config-map" + {{- with (include "common.controller.volumes" . | trim) }} + {{- nindent 2 . }} + {{- end }} +{{- end -}} +{{- end -}} diff --git a/stable/postgresql/1.5.2/test_values.yaml b/stable/postgresql/1.5.2/test_values.yaml new file mode 100644 index 00000000000..d4da044db4c --- /dev/null +++ b/stable/postgresql/1.5.2/test_values.yaml @@ -0,0 +1,50 @@ +image: + repository: postgres + pullPolicy: IfNotPresent + tag: "13.4" + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 5432 + +## TODO: Fix the backup-on-upgrade system +enableUpgradeBackup: false + +persistence: + db: + enabled: true + mountPath: "/var/lib/postgresql/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + dbbackups: + enabled: true + mountPath: "/dbbackups" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +postgresqlPassword: "testpass" +postgresqlUsername: "test" +postgresqlDatabase: "test" +existingSecret: "" + + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: '{{ ( tpl .Values.existingSecret $ ) | default ( include "common.names.fullname" . ) }}' + key: "postgresql-password" + +envTpl: + POSTGRES_USER: "{{ .Values.postgresqlUsername }}" + POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" +# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" +# POSTGRESQL_PASSWORD: "{{ .Values.password }}" diff --git a/stable/postgresql/1.5.2/values.yaml b/stable/postgresql/1.5.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pretend-youre-xyzzy/1.9.2/CONFIG.md b/stable/pretend-youre-xyzzy/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pretend-youre-xyzzy/1.9.2/Chart.lock b/stable/pretend-youre-xyzzy/1.9.2/Chart.lock new file mode 100644 index 00000000000..838c8403f11 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:18:33.305106391Z" diff --git a/stable/pretend-youre-xyzzy/1.9.2/Chart.yaml b/stable/pretend-youre-xyzzy/1.9.2/Chart.yaml new file mode 100644 index 00000000000..6a37573f513 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: pretend-youre-xyzzy, a cards against humanity clone +home: https://github.com/truechartsapps/tree/master/charts/incubator/pretend-youre-xyzzy +icon: https://apk-google.com/wp-content/uploads/2020/12/Client-for-Pretend-Youre-Xyzzy-open-source-5.0.1.png +keywords: +- pretend-youre-xyzzy +- cards +- against +- humanity +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: pretend-youre-xyzzy +sources: +- https://github.com/ajanata/PretendYoureXyzzy +- https://github.com/emcniece/DockerYourXyzzy +version: 1.9.2 diff --git a/stable/pretend-youre-xyzzy/1.9.2/README.md b/stable/pretend-youre-xyzzy/1.9.2/README.md new file mode 100644 index 00000000000..aa6482d0f9b --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +pretend-youre-xyzzy, a cards against humanity clone + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pretend-youre-xyzzy/1.9.2/app-readme.md b/stable/pretend-youre-xyzzy/1.9.2/app-readme.md new file mode 100644 index 00000000000..5422ff0e917 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +pretend-youre-xyzzy, a cards against humanity clone + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +pretend-youre-xyzzy, a cards against humanity clone diff --git a/stable/pretend-youre-xyzzy/1.9.2/charts/common-6.12.1.tgz b/stable/pretend-youre-xyzzy/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pretend-youre-xyzzy/1.9.2/ix_values.yaml b/stable/pretend-youre-xyzzy/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..bb58fc2f436 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: emcniece/dockeryourxyzzy + pullPolicy: IfNotPresent + tag: "4" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pretend-youre-xyzzy/1.9.2/questions.yaml b/stable/pretend-youre-xyzzy/1.9.2/questions.yaml new file mode 100644 index 00000000000..b58b0e7b747 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/questions.yaml @@ -0,0 +1,987 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36079 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/pretend-youre-xyzzy/1.9.2/templates/common.yaml b/stable/pretend-youre-xyzzy/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pretend-youre-xyzzy/1.9.2/test_values.yaml b/stable/pretend-youre-xyzzy/1.9.2/test_values.yaml new file mode 100644 index 00000000000..2d19c5fed92 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.2/test_values.yaml @@ -0,0 +1,22 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: emcniece/dockeryourxyzzy + # -- image tag + tag: "4" + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 diff --git a/stable/pretend-youre-xyzzy/1.9.2/values.yaml b/stable/pretend-youre-xyzzy/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/protonmail-bridge/1.9.2/CONFIG.md b/stable/protonmail-bridge/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/protonmail-bridge/1.9.2/Chart.lock b/stable/protonmail-bridge/1.9.2/Chart.lock new file mode 100644 index 00000000000..575cef4ed7f --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:18:38.449783219Z" diff --git a/stable/protonmail-bridge/1.9.2/Chart.yaml b/stable/protonmail-bridge/1.9.2/Chart.yaml new file mode 100644 index 00000000000..3fe0fd6cc55 --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Container for protonmail bridge to work on the network. +home: https://github.com/truechartsapps/tree/master/charts/incubator/protonmail-bridge +icon: https://raw.githubusercontent.com/ProtonMail/proton-bridge/master/icon.iconset/icon_256x256.png +keywords: +- protonmail +- protonmail-bridge +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: protonmail-bridge +sources: +- https://github.com/shenxn/protonmail-bridge-docker +- https://hub.docker.com/r/shenxn/protonmail-bridge +version: 1.9.2 diff --git a/stable/protonmail-bridge/1.9.2/README.md b/stable/protonmail-bridge/1.9.2/README.md new file mode 100644 index 00000000000..0e6a0becaac --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Container for protonmail bridge to work on the network. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/protonmail-bridge/1.9.2/app-readme.md b/stable/protonmail-bridge/1.9.2/app-readme.md new file mode 100644 index 00000000000..981006447c1 --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Container for protonmail bridge to work on the network. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Container for protonmail bridge to work on the network. diff --git a/stable/protonmail-bridge/1.9.2/charts/common-6.12.1.tgz b/stable/protonmail-bridge/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/protonmail-bridge/1.9.2/ix_values.yaml b/stable/protonmail-bridge/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..01362256313 --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/ix_values.yaml @@ -0,0 +1,21 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: shenxn/protonmail-bridge + pullPolicy: IfNotPresent + tag: 1.8.7-1 + +service: + main: + ports: + main: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/protonmail-bridge/1.9.2/questions.yaml b/stable/protonmail-bridge/1.9.2/questions.yaml new file mode 100644 index 00000000000..65ec03d2a99 --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/questions.yaml @@ -0,0 +1,1116 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "main Service" + description: "The main service" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: false + hidden: true + - variable: smtp + label: "smtp Service" + description: "The smtp service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: smtp + label: "smtp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 25 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 25 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/protonmail-bridge/1.9.2/templates/common.yaml b/stable/protonmail-bridge/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/protonmail-bridge/1.9.2/test_values.yaml b/stable/protonmail-bridge/1.9.2/test_values.yaml new file mode 100644 index 00000000000..5ecf3d90d8e --- /dev/null +++ b/stable/protonmail-bridge/1.9.2/test_values.yaml @@ -0,0 +1,43 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: shenxn/protonmail-bridge + # -- image tag + tag: 1.8.7-1 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + enabled: false + smtp: + enabled: true + protocol: TCP + port: 25 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: /root + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/protonmail-bridge/1.9.2/values.yaml b/stable/protonmail-bridge/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/prowlarr/1.11.3/CONFIG.md b/stable/prowlarr/1.11.3/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/prowlarr/1.11.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/prowlarr/1.11.3/Chart.lock b/stable/prowlarr/1.11.3/Chart.lock new file mode 100644 index 00000000000..e4a08e09920 --- /dev/null +++ b/stable/prowlarr/1.11.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:43.589258929Z" diff --git a/stable/prowlarr/1.11.3/Chart.yaml b/stable/prowlarr/1.11.3/Chart.yaml new file mode 100644 index 00000000000..349d47fd68f --- /dev/null +++ b/stable/prowlarr/1.11.3/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Indexer manager/proxy built on the popular arr net base stack to integrate + with your various PVR apps. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/prowlarr +icon: https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/400.png +keywords: +- prowlarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: prowlarr +sources: +- https://github.com/Prowlarr/Prowlarr +- https://github.com/k8s-at-home/container-images +version: 1.11.3 diff --git a/stable/prowlarr/1.11.3/README.md b/stable/prowlarr/1.11.3/README.md new file mode 100644 index 00000000000..d3bcc2ea648 --- /dev/null +++ b/stable/prowlarr/1.11.3/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.11.3](https://img.shields.io/badge/Version-1.11.3-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Indexer manager/proxy built on the popular arr net base stack to integrate with your various PVR apps. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/prowlarr/1.11.3/app-readme.md b/stable/prowlarr/1.11.3/app-readme.md new file mode 100644 index 00000000000..4fc956fbab1 --- /dev/null +++ b/stable/prowlarr/1.11.3/app-readme.md @@ -0,0 +1,4 @@ +Indexer manager/proxy built on the popular arr net base stack to integrate with your various PVR apps. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Indexer manager/proxy built on the popular arr net base stack to integrate diff --git a/stable/prowlarr/1.11.3/charts/common-6.12.1.tgz b/stable/prowlarr/1.11.3/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/prowlarr/1.11.3/ix_values.yaml b/stable/prowlarr/1.11.3/ix_values.yaml new file mode 100644 index 00000000000..579b126b2b1 --- /dev/null +++ b/stable/prowlarr/1.11.3/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/prowlarr + # -- image tag + tag: v0.1.1.893 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/prowlarr/1.11.3/questions.yaml b/stable/prowlarr/1.11.3/questions.yaml new file mode 100644 index 00000000000..56f0fa0e634 --- /dev/null +++ b/stable/prowlarr/1.11.3/questions.yaml @@ -0,0 +1,1106 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9696 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9696 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36081 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/prowlarr/1.11.3/templates/common.yaml b/stable/prowlarr/1.11.3/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/prowlarr/1.11.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/prowlarr/1.11.3/test_values.yaml b/stable/prowlarr/1.11.3/test_values.yaml new file mode 100644 index 00000000000..7fdd1a6591e --- /dev/null +++ b/stable/prowlarr/1.11.3/test_values.yaml @@ -0,0 +1,48 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/prowlarr + # -- image tag + tag: v0.1.1.893 + # -- image pull policy + pullPolicy: IfNotPresent + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9696 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/prowlarr/1.11.3/values.yaml b/stable/prowlarr/1.11.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pyload/1.9.2/CONFIG.md b/stable/pyload/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pyload/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pyload/1.9.2/Chart.lock b/stable/pyload/1.9.2/Chart.lock new file mode 100644 index 00000000000..881cf9a9f98 --- /dev/null +++ b/stable/pyload/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:18:48.769637215Z" diff --git a/stable/pyload/1.9.2/Chart.yaml b/stable/pyload/1.9.2/Chart.yaml new file mode 100644 index 00000000000..556e8641416 --- /dev/null +++ b/stable/pyload/1.9.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: pyLoad is a Free and Open Source download manager written in Python and + designed to be extremely lightweight, easily extensible and fully manageable via + web. +home: https://github.com/truechartsapps/tree/master/charts/incubator/pyload +icon: https://avatars.githubusercontent.com/u/3521496?s=200&v=4 +keywords: +- pyload +- download +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: pyload +sources: +- https://github.com/pyload/pyload +- https://hub.docker.com/r/linuxserver/pyload +version: 1.9.2 diff --git a/stable/pyload/1.9.2/README.md b/stable/pyload/1.9.2/README.md new file mode 100644 index 00000000000..8536815678d --- /dev/null +++ b/stable/pyload/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pyload/1.9.2/app-readme.md b/stable/pyload/1.9.2/app-readme.md new file mode 100644 index 00000000000..9257e28618f --- /dev/null +++ b/stable/pyload/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +pyLoad is a Free and Open Source download manager written in Python and diff --git a/stable/pyload/1.9.2/charts/common-6.12.1.tgz b/stable/pyload/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pyload/1.9.2/ix_values.yaml b/stable/pyload/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..997d5e1d399 --- /dev/null +++ b/stable/pyload/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/pyload + pullPolicy: IfNotPresent + tag: version-5de90278 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pyload/1.9.2/questions.yaml b/stable/pyload/1.9.2/questions.yaml new file mode 100644 index 00000000000..2fc05f70634 --- /dev/null +++ b/stable/pyload/1.9.2/questions.yaml @@ -0,0 +1,1116 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36082 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/pyload/1.9.2/templates/common.yaml b/stable/pyload/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pyload/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pyload/1.9.2/test_values.yaml b/stable/pyload/1.9.2/test_values.yaml new file mode 100644 index 00000000000..f78d6ae1750 --- /dev/null +++ b/stable/pyload/1.9.2/test_values.yaml @@ -0,0 +1,44 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/pyload + # -- image tag + tag: version-5de90278 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-pyload#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + downloads: + enabled: false + mountPath: /downloads diff --git a/stable/pyload/1.9.2/values.yaml b/stable/pyload/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/qbittorrent/6.11.2/CONFIG.md b/stable/qbittorrent/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/qbittorrent/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/qbittorrent/6.11.2/Chart.lock b/stable/qbittorrent/6.11.2/Chart.lock new file mode 100644 index 00000000000..d1086fdedd7 --- /dev/null +++ b/stable/qbittorrent/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:54.092541477Z" diff --git a/stable/qbittorrent/6.11.2/Chart.yaml b/stable/qbittorrent/6.11.2/Chart.yaml new file mode 100644 index 00000000000..1bfa55a033f --- /dev/null +++ b/stable/qbittorrent/6.11.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: qBittorrent is a cross-platform free and open-source BitTorrent client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/qbittorrent +icon: https://cloud.githubusercontent.com/assets/14862437/23586868/89ef2922-01c4-11e7-869c-52aafcece17f.png +keywords: +- qbittorrent +- torrrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: qbittorrent +sources: null +type: application +version: 6.11.2 diff --git a/stable/qbittorrent/6.11.2/README.md b/stable/qbittorrent/6.11.2/README.md new file mode 100644 index 00000000000..852fdd6ad0c --- /dev/null +++ b/stable/qbittorrent/6.11.2/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +qBittorrent is a cross-platform free and open-source BitTorrent client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/qbittorrent/6.11.2/app-readme.md b/stable/qbittorrent/6.11.2/app-readme.md new file mode 100644 index 00000000000..808f09ea068 --- /dev/null +++ b/stable/qbittorrent/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +qBittorrent is a cross-platform free and open-source BitTorrent client + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +qBittorrent is a cross-platform free and open-source BitTorrent client diff --git a/stable/qbittorrent/6.11.2/charts/common-6.12.1.tgz b/stable/qbittorrent/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/qbittorrent/6.11.2/ix_values.yaml b/stable/qbittorrent/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..5d593f0e21d --- /dev/null +++ b/stable/qbittorrent/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/qbittorrent + pullPolicy: IfNotPresent + tag: v4.3.7 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/qbittorrent/6.11.2/questions.yaml b/stable/qbittorrent/6.11.2/questions.yaml new file mode 100644 index 00000000000..b9ca25a0a83 --- /dev/null +++ b/stable/qbittorrent/6.11.2/questions.yaml @@ -0,0 +1,1250 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36039 + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/qbittorrent/6.11.2/templates/_configmap.tpl b/stable/qbittorrent/6.11.2/templates/_configmap.tpl new file mode 100644 index 00000000000..d52c601514c --- /dev/null +++ b/stable/qbittorrent/6.11.2/templates/_configmap.tpl @@ -0,0 +1,32 @@ +{{/* Define the configmap */}} +{{- define "qbittorrent.configmap" -}} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-scripts + labels: + {{- include "common.labels" . | nindent 4 }} +data: + {{- $bittorrentPort := "" -}} + {{- $bittorrentPort = .Values.service.torrent.ports.tcp.port -}} + {{- if $bittorrentPort }} + 31-update-port: |- + #!/bin/bash + QBITTORRENT_CONFIGFILE="/config/qBittorrent/qBittorrent.conf" + INCOMING_PORT={{- $bittorrentPort }} + + incoming_port_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin='${INCOMING_PORT}) + if [[ -z "${incoming_port_exist}" ]]; then + incoming_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin') + if [[ ! -z "${incoming_exist}" ]]; then + # Get line number of Incoming + LINE_NUM=$(grep -Fn -m 1 'Connection\PortRangeMin' ${QBITTORRENT_CONFIGFILE} | cut -d: -f 1) + sed -i "${LINE_NUM}s@.*@Connection\\\PortRangeMin=${INCOMING_PORT}@" ${QBITTORRENT_CONFIGFILE} + else + echo "Connection\\PortRangeMin=${INCOMING_PORT}" >> ${QBITTORRENT_CONFIGFILE} + fi + fi + {{- end }} +{{- end -}} diff --git a/stable/qbittorrent/6.11.2/templates/common.yaml b/stable/qbittorrent/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..bcb4715aa18 --- /dev/null +++ b/stable/qbittorrent/6.11.2/templates/common.yaml @@ -0,0 +1,6 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} + + +{{/* Render the configmap */}} +{{ include "qbittorrent.configmap" . }} diff --git a/stable/qbittorrent/6.11.2/test_values.yaml b/stable/qbittorrent/6.11.2/test_values.yaml new file mode 100644 index 00000000000..a33e523251a --- /dev/null +++ b/stable/qbittorrent/6.11.2/test_values.yaml @@ -0,0 +1,54 @@ +# Default values for qbittorrent. + +image: + repository: ghcr.io/k8s-at-home/qbittorrent + pullPolicy: IfNotPresent + tag: v4.3.7 + +strategy: + type: Recreate + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + # UMASK: 022 + +service: + main: + ports: + main: + port: 8080 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 6881 + protocol: TCP + udp: + enabled: true + port: 6881 + protocol: UDP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +additionalVolumes: + - name: qbittorrent-scripts + emptyDir: {} + ## When you want to enable automatic port configuration at startup, adjust this to: + # configMap: + # name: -scripts + # defaultMode: 511 + +additionalVolumeMounts: + - mountPath: /config/custom-cont-init.d + name: qbittorrent-scripts diff --git a/stable/qbittorrent/6.11.2/values.yaml b/stable/qbittorrent/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/radarr/6.11.2/CONFIG.md b/stable/radarr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/radarr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/radarr/6.11.2/Chart.lock b/stable/radarr/6.11.2/Chart.lock new file mode 100644 index 00000000000..394f64fef41 --- /dev/null +++ b/stable/radarr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:18:59.304261199Z" diff --git a/stable/radarr/6.11.2/Chart.yaml b/stable/radarr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..26dcc4e51a0 --- /dev/null +++ b/stable/radarr/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: "A fork of Sonarr to work with movies \xE0 la Couchpotato" +home: https://github.com/truecharts/apps/tree/master/charts/stable/radarr +icon: https://nzbusenet.com/wp-content/uploads/2017/10/radarr-logo.png +keywords: +- radarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: radarr +sources: +- https://github.com/Radarr/Radarr +type: application +version: 6.11.2 diff --git a/stable/radarr/6.11.2/README.md b/stable/radarr/6.11.2/README.md new file mode 100644 index 00000000000..d151df6c4b4 --- /dev/null +++ b/stable/radarr/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Sonarr to work with movies à la Couchpotato + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/radarr/6.11.2/app-readme.md b/stable/radarr/6.11.2/app-readme.md new file mode 100644 index 00000000000..47308820016 --- /dev/null +++ b/stable/radarr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +A fork of Sonarr to work with movies à la Couchpotato + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"A fork of Sonarr to work with movies \xE0 la Couchpotato" diff --git a/stable/radarr/6.11.2/charts/common-6.12.1.tgz b/stable/radarr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/radarr/6.11.2/ix_values.yaml b/stable/radarr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..095e494f526 --- /dev/null +++ b/stable/radarr/6.11.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/radarr + pullPolicy: IfNotPresent + tag: v3.2.2.5080 + +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 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/radarr/6.11.2/questions.yaml b/stable/radarr/6.11.2/questions.yaml new file mode 100644 index 00000000000..1a4eabcdc33 --- /dev/null +++ b/stable/radarr/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7878 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36016 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/radarr/6.11.2/templates/common.yaml b/stable/radarr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/radarr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/radarr/6.11.2/test_values.yaml b/stable/radarr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..68a42ce833b --- /dev/null +++ b/stable/radarr/6.11.2/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/k8s-at-home/radarr + pullPolicy: IfNotPresent + tag: v3.2.2.5080 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 7878 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/radarr/6.11.2/values.yaml b/stable/radarr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/readarr/6.11.2/CONFIG.md b/stable/readarr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/readarr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/readarr/6.11.2/Chart.lock b/stable/readarr/6.11.2/Chart.lock new file mode 100644 index 00000000000..953916e46bd --- /dev/null +++ b/stable/readarr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:04.585550621Z" diff --git a/stable/readarr/6.11.2/Chart.yaml b/stable/readarr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..a3f7a9b8cab --- /dev/null +++ b/stable/readarr/6.11.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A fork of Radarr to work with Books & AudioBooks +home: https://github.com/truecharts/apps/tree/master/charts/incubator/readarr +icon: https://github.com/Readarr/Readarr/blob/develop/Logo/1024.png?raw=true +keywords: +- readarr +- torrent +- usenet +- AudioBooks +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: readarr +sources: +- https://github.com/Readarr/Readarr +- https://readarr.com +type: application +version: 6.11.2 diff --git a/stable/readarr/6.11.2/README.md b/stable/readarr/6.11.2/README.md new file mode 100644 index 00000000000..f724b230a76 --- /dev/null +++ b/stable/readarr/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Radarr to work with Books & AudioBooks + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/readarr/6.11.2/app-readme.md b/stable/readarr/6.11.2/app-readme.md new file mode 100644 index 00000000000..d38457d5c3c --- /dev/null +++ b/stable/readarr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +A fork of Radarr to work with Books & AudioBooks + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A fork of Radarr to work with Books & AudioBooks diff --git a/stable/readarr/6.11.2/charts/common-6.12.1.tgz b/stable/readarr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/readarr/6.11.2/ix_values.yaml b/stable/readarr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..297cee9e7f3 --- /dev/null +++ b/stable/readarr/6.11.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.944 + +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:8787/api/v1/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 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/readarr/6.11.2/questions.yaml b/stable/readarr/6.11.2/questions.yaml new file mode 100644 index 00000000000..da6f4580dbd --- /dev/null +++ b/stable/readarr/6.11.2/questions.yaml @@ -0,0 +1,1105 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8787 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36038 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/readarr/6.11.2/templates/common.yaml b/stable/readarr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/readarr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/readarr/6.11.2/test_values.yaml b/stable/readarr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..28d1d9f897c --- /dev/null +++ b/stable/readarr/6.11.2/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/k8s-at-home/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.944 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8787 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +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:8787/api/v1/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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/readarr/6.11.2/values.yaml b/stable/readarr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/reg/1.11.2/CONFIG.md b/stable/reg/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/reg/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/reg/1.11.2/Chart.lock b/stable/reg/1.11.2/Chart.lock new file mode 100644 index 00000000000..54d5a7e6566 --- /dev/null +++ b/stable/reg/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:09.804312639Z" diff --git a/stable/reg/1.11.2/Chart.yaml b/stable/reg/1.11.2/Chart.yaml new file mode 100644 index 00000000000..a4e2deddf47 --- /dev/null +++ b/stable/reg/1.11.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Docker registry v2 command line client and repo listing generator with + security checks. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/reg +icon: https://avatars.githubusercontent.com/u/37218338 +keywords: +- reg +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: reg +sources: +- https://github.com/genuinetools/reg +- https://github.com/k8s-at-home/container-images/ +version: 1.11.2 diff --git a/stable/reg/1.11.2/README.md b/stable/reg/1.11.2/README.md new file mode 100644 index 00000000000..99d94b56f02 --- /dev/null +++ b/stable/reg/1.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Docker registry v2 command line client and repo listing generator with security checks. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/reg/1.11.2/app-readme.md b/stable/reg/1.11.2/app-readme.md new file mode 100644 index 00000000000..911c539f018 --- /dev/null +++ b/stable/reg/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +Docker registry v2 command line client and repo listing generator with security checks. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Docker registry v2 command line client and repo listing generator with diff --git a/stable/reg/1.11.2/charts/common-6.12.1.tgz b/stable/reg/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/reg/1.11.2/ci/ct-values.yaml b/stable/reg/1.11.2/ci/ct-values.yaml new file mode 100644 index 00000000000..7ec97337b23 --- /dev/null +++ b/stable/reg/1.11.2/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + EXTRA_ARGS: "server --registry r.j3ss.co" diff --git a/stable/reg/1.11.2/ix_values.yaml b/stable/reg/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..6ad228ab223 --- /dev/null +++ b/stable/reg/1.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/reg + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.16.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/reg/1.11.2/questions.yaml b/stable/reg/1.11.2/questions.yaml new file mode 100644 index 00000000000..1fd104806ab --- /dev/null +++ b/stable/reg/1.11.2/questions.yaml @@ -0,0 +1,1100 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36083 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/reg/1.11.2/templates/common.yaml b/stable/reg/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/reg/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/reg/1.11.2/test_values.yaml b/stable/reg/1.11.2/test_values.yaml new file mode 100644 index 00000000000..93668d4a17f --- /dev/null +++ b/stable/reg/1.11.2/test_values.yaml @@ -0,0 +1,40 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/reg + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.16.1 + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. See more environment variables in the [reg documentation](https://github.com/genuinetools/reg). +env: + # -- Set the container timezone + TZ: UTC + # -- Set the server registry + # EXTRA_ARGS: "server --registry r.j3ss.co" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false diff --git a/stable/reg/1.11.2/values.yaml b/stable/reg/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/resilio-sync/1.9.2/CONFIG.md b/stable/resilio-sync/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/resilio-sync/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/resilio-sync/1.9.2/Chart.lock b/stable/resilio-sync/1.9.2/Chart.lock new file mode 100644 index 00000000000..e4ee7d9c269 --- /dev/null +++ b/stable/resilio-sync/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:19:15.173716744Z" diff --git a/stable/resilio-sync/1.9.2/Chart.yaml b/stable/resilio-sync/1.9.2/Chart.yaml new file mode 100644 index 00000000000..1d99b090f72 --- /dev/null +++ b/stable/resilio-sync/1.9.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Resilio Sync is a fast, reliable, and simple file sync and share solution, + powered by P2P technology +home: https://github.com/truechartsapps/tree/master/charts/incubator/resio-sync +icon: https://blog.resilio.com/wp-content/uploads/2016/06/SyncSymbol-260x260px.png +keywords: +- resilio +- sync +- btsync +- bittorrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: resilio-sync +sources: +- https://github.com/orgs/linuxserver/packages/container/package/resilio-sync +version: 1.9.2 diff --git a/stable/resilio-sync/1.9.2/README.md b/stable/resilio-sync/1.9.2/README.md new file mode 100644 index 00000000000..14208ad11ca --- /dev/null +++ b/stable/resilio-sync/1.9.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/resilio-sync/1.9.2/app-readme.md b/stable/resilio-sync/1.9.2/app-readme.md new file mode 100644 index 00000000000..1d2798897c2 --- /dev/null +++ b/stable/resilio-sync/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Resilio Sync is a fast, reliable, and simple file sync and share solution, diff --git a/stable/resilio-sync/1.9.2/charts/common-6.12.1.tgz b/stable/resilio-sync/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/resilio-sync/1.9.2/ix_values.yaml b/stable/resilio-sync/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..72df9483018 --- /dev/null +++ b/stable/resilio-sync/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/resilio-sync + pullPolicy: IfNotPresent + tag: version-2.7.2.1375 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/resilio-sync/1.9.2/questions.yaml b/stable/resilio-sync/1.9.2/questions.yaml new file mode 100644 index 00000000000..94787e3a957 --- /dev/null +++ b/stable/resilio-sync/1.9.2/questions.yaml @@ -0,0 +1,1293 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8888 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8888 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36088 + - variable: bt-udp + label: "bt-udp Service" + description: "The bt-udp service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: bt-udp + label: "bt-udp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36089 + - variable: bt-tcp + label: "bt-tcp Service" + description: "The bt-tcp service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: bt-tcp + label: "bt-tcp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36090 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/resilio-sync/1.9.2/templates/common.yaml b/stable/resilio-sync/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/resilio-sync/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/resilio-sync/1.9.2/test_values.yaml b/stable/resilio-sync/1.9.2/test_values.yaml new file mode 100644 index 00000000000..a11783eba6d --- /dev/null +++ b/stable/resilio-sync/1.9.2/test_values.yaml @@ -0,0 +1,75 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/resilio-sync + # -- image tag + tag: version-2.7.2.1375 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-resilio-sync#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Sets default UMASK + UMASK: # 022 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8888 + bt-tcp: + enabled: false + type: ClusterIP + ports: + bt-tcp: + enabled: true + port: 55555 + protocol: TCP + targetPort: 55555 + bt-udp: + enabled: false + type: ClusterIP + ports: + bt-udp: + enabled: true + port: 55555 + protocol: UDP + targetPort: 55555 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + + media: + enabled: false + mountPath: /media + + downloads: + enabled: false + mountPath: /downloads + + sync: + enabled: false + mountPath: /sync diff --git a/stable/resilio-sync/1.9.2/values.yaml b/stable/resilio-sync/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sabnzbd/6.11.2/CONFIG.md b/stable/sabnzbd/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/sabnzbd/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/sabnzbd/6.11.2/Chart.lock b/stable/sabnzbd/6.11.2/Chart.lock new file mode 100644 index 00000000000..efa06cf073a --- /dev/null +++ b/stable/sabnzbd/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:20.373766557Z" diff --git a/stable/sabnzbd/6.11.2/Chart.yaml b/stable/sabnzbd/6.11.2/Chart.yaml new file mode 100644 index 00000000000..da2503eae0e --- /dev/null +++ b/stable/sabnzbd/6.11.2/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Free and easy binary newsreader +home: https://github.com/truecharts/apps/tree/master/charts/incubator/sabnzbd +icon: https://avatars1.githubusercontent.com/u/960698?s=400&v=4 +keywords: +- sabnzbd +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: sabnzbd +sources: +- https://sabnzbd.org/ +type: application +version: 6.11.2 diff --git a/stable/sabnzbd/6.11.2/README.md b/stable/sabnzbd/6.11.2/README.md new file mode 100644 index 00000000000..5f7f169d9b8 --- /dev/null +++ b/stable/sabnzbd/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Free and easy binary newsreader + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/sabnzbd/6.11.2/app-readme.md b/stable/sabnzbd/6.11.2/app-readme.md new file mode 100644 index 00000000000..aee67ae1e57 --- /dev/null +++ b/stable/sabnzbd/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Free and easy binary newsreader + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Free and easy binary newsreader diff --git a/stable/sabnzbd/6.11.2/charts/common-6.12.1.tgz b/stable/sabnzbd/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/sabnzbd/6.11.2/ix_values.yaml b/stable/sabnzbd/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..30d7a90daa6 --- /dev/null +++ b/stable/sabnzbd/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/sabnzbd + pullPolicy: IfNotPresent + tag: v3.3.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/sabnzbd/6.11.2/questions.yaml b/stable/sabnzbd/6.11.2/questions.yaml new file mode 100644 index 00000000000..ab58524e3bb --- /dev/null +++ b/stable/sabnzbd/6.11.2/questions.yaml @@ -0,0 +1,1112 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: HOST_WHITELIST_ENTRIES + label: "HostName Whitelist" + description: "If you use a reverse proxy, you might need to enter your hostname's here (comma seperated)" + schema: + type: string + default: "" + required: false + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36045 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/sabnzbd/6.11.2/templates/common.yaml b/stable/sabnzbd/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/sabnzbd/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sabnzbd/6.11.2/test_values.yaml b/stable/sabnzbd/6.11.2/test_values.yaml new file mode 100644 index 00000000000..87bbd6f6169 --- /dev/null +++ b/stable/sabnzbd/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Sabnzbd. + +image: + repository: ghcr.io/k8s-at-home/sabnzbd + pullPolicy: IfNotPresent + tag: v3.3.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/sabnzbd/6.11.2/values.yaml b/stable/sabnzbd/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/ser2sock/1.9.2/CONFIG.md b/stable/ser2sock/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/ser2sock/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/ser2sock/1.9.2/Chart.lock b/stable/ser2sock/1.9.2/Chart.lock new file mode 100644 index 00000000000..90203ba9e63 --- /dev/null +++ b/stable/ser2sock/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:19:25.63736612Z" diff --git a/stable/ser2sock/1.9.2/Chart.yaml b/stable/ser2sock/1.9.2/Chart.yaml new file mode 100644 index 00000000000..348a472ac01 --- /dev/null +++ b/stable/ser2sock/1.9.2/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Serial to Socket Redirector +home: https://github.com/truechartsapps/tree/master/charts/incubator/ser2sock +icon: https://i.imgur.com/GfZ7McO.png +keywords: +- ser2sock +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: ser2sock +sources: +- https://github.com/nutechsoftware/ser2sock +- https://github.com/tenstartups/ser2sock +version: 1.9.2 diff --git a/stable/ser2sock/1.9.2/README.md b/stable/ser2sock/1.9.2/README.md new file mode 100644 index 00000000000..460a2d8624b --- /dev/null +++ b/stable/ser2sock/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Serial to Socket Redirector + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/ser2sock/1.9.2/app-readme.md b/stable/ser2sock/1.9.2/app-readme.md new file mode 100644 index 00000000000..275a6b7f550 --- /dev/null +++ b/stable/ser2sock/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +Serial to Socket Redirector + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Serial to Socket Redirector diff --git a/stable/ser2sock/1.9.2/charts/common-6.12.1.tgz b/stable/ser2sock/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/ser2sock/1.9.2/ix_values.yaml b/stable/ser2sock/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..3aab2b9436f --- /dev/null +++ b/stable/ser2sock/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: tenstartups/ser2sock + pullPolicy: IfNotPresent + tag: latest + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/ser2sock/1.9.2/questions.yaml b/stable/ser2sock/1.9.2/questions.yaml new file mode 100644 index 00000000000..1abbb9b4993 --- /dev/null +++ b/stable/ser2sock/1.9.2/questions.yaml @@ -0,0 +1,1165 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: BAUD_RATE + label: "BAUD_RATE" + description: "Serial device baud rate" + schema: + type: string + default: "115200" + - variable: SERIAL_DEVICE + label: "SERIAL_DEVICE" + description: "Path to the serial device" + schema: + type: string + required: true + default: "" + - variable: LISTENER_PORT + label: "LISTENER_PORT" + description: "Port where ser2sock listens" + schema: + type: string + hidden: true + default: "{{ .Values.service.main.ports.main.port }}" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 10000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36084 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/ser2sock/1.9.2/templates/common.yaml b/stable/ser2sock/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/ser2sock/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ser2sock/1.9.2/test_values.yaml b/stable/ser2sock/1.9.2/test_values.yaml new file mode 100644 index 00000000000..9359ad10eb8 --- /dev/null +++ b/stable/ser2sock/1.9.2/test_values.yaml @@ -0,0 +1,63 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: tenstartups/ser2sock + # -- image tag + tag: latest + # -- image pull policy + pullPolicy: Always + +# -- environment variables. See [image docs](https://github.com/tenstartups/ser2sock) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Port where ser2sock listens + LISTENER_PORT: "{{ .Values.service.main.ports.main.port }}" + # -- Path to the serial device + SERIAL_DEVICE: "{{ .Values.persistence.usb.mountPath }}" + # -- Serial device baud rate + BAUD_RATE: 115200 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + enabled: true + protocol: TCP + port: 10000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + usb: + enabled: false + type: hostPath + mountPath: /dev/ttyUSB0 + +securityContext: + # -- (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine + privileged: # true + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - ser2sock-controller diff --git a/stable/ser2sock/1.9.2/values.yaml b/stable/ser2sock/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sonarr/6.11.2/CONFIG.md b/stable/sonarr/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/sonarr/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/sonarr/6.11.2/Chart.lock b/stable/sonarr/6.11.2/Chart.lock new file mode 100644 index 00000000000..9133685fb29 --- /dev/null +++ b/stable/sonarr/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:30.905160278Z" diff --git a/stable/sonarr/6.11.2/Chart.yaml b/stable/sonarr/6.11.2/Chart.yaml new file mode 100644 index 00000000000..cb93b6d3402 --- /dev/null +++ b/stable/sonarr/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Smart PVR for newsgroup and bittorrent users +home: https://github.com/truecharts/apps/tree/master/charts/stable/sonarr +icon: https://github.com/Sonarr/Sonarr/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- sonarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: sonarr +sources: +- https://github.com/Sonarr/Sonarr +type: application +version: 6.11.2 diff --git a/stable/sonarr/6.11.2/README.md b/stable/sonarr/6.11.2/README.md new file mode 100644 index 00000000000..60db06bd4cc --- /dev/null +++ b/stable/sonarr/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Smart PVR for newsgroup and bittorrent users + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/sonarr/6.11.2/app-readme.md b/stable/sonarr/6.11.2/app-readme.md new file mode 100644 index 00000000000..b8333e42789 --- /dev/null +++ b/stable/sonarr/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Smart PVR for newsgroup and bittorrent users + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Smart PVR for newsgroup and bittorrent users diff --git a/stable/sonarr/6.11.2/charts/common-6.12.1.tgz b/stable/sonarr/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/sonarr/6.11.2/ix_values.yaml b/stable/sonarr/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..9d410bd464d --- /dev/null +++ b/stable/sonarr/6.11.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/sonarr + pullPolicy: IfNotPresent + tag: v3.0.6.1265 + +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:8989/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 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/sonarr/6.11.2/questions.yaml b/stable/sonarr/6.11.2/questions.yaml new file mode 100644 index 00000000000..bcb6f5d2bdf --- /dev/null +++ b/stable/sonarr/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8989 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36017 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/sonarr/6.11.2/templates/common.yaml b/stable/sonarr/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/sonarr/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sonarr/6.11.2/test_values.yaml b/stable/sonarr/6.11.2/test_values.yaml new file mode 100644 index 00000000000..861e725aa70 --- /dev/null +++ b/stable/sonarr/6.11.2/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Sonarr. + +image: + repository: ghcr.io/k8s-at-home/sonarr + pullPolicy: IfNotPresent + tag: v3.0.6.1265 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8989 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +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:8989/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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/sonarr/6.11.2/values.yaml b/stable/sonarr/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/stash/1.9.3/CONFIG.md b/stable/stash/1.9.3/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/stash/1.9.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/stash/1.9.3/Chart.lock b/stable/stash/1.9.3/Chart.lock new file mode 100644 index 00000000000..22fd5941d89 --- /dev/null +++ b/stable/stash/1.9.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:19:36.242838626Z" diff --git a/stable/stash/1.9.3/Chart.yaml b/stable/stash/1.9.3/Chart.yaml new file mode 100644 index 00000000000..c21718637db --- /dev/null +++ b/stable/stash/1.9.3/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: An organizer for your porn, written in Go +home: https://github.com/truechartsapps/tree/master/charts/incubator/stash +icon: https://raw.githubusercontent.com/stashapp/website/master/images/stash.svg +keywords: +- porn +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: stash +sources: +- https://github.com/stashapp/stash +- https://hub.docker.com/r/stashapp/stash +version: 1.9.3 diff --git a/stable/stash/1.9.3/README.md b/stable/stash/1.9.3/README.md new file mode 100644 index 00000000000..d8243f91367 --- /dev/null +++ b/stable/stash/1.9.3/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.3](https://img.shields.io/badge/Version-1.9.3-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +An organizer for your porn, written in Go + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/stash/1.9.3/app-readme.md b/stable/stash/1.9.3/app-readme.md new file mode 100644 index 00000000000..3bc1ec0fd7b --- /dev/null +++ b/stable/stash/1.9.3/app-readme.md @@ -0,0 +1,4 @@ +An organizer for your porn, written in Go + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +An organizer for your porn, written in Go diff --git a/stable/stash/1.9.3/charts/common-6.12.1.tgz b/stable/stash/1.9.3/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/stash/1.9.3/ci/ct-values.yaml b/stable/stash/1.9.3/ci/ct-values.yaml new file mode 100644 index 00000000000..322b5784ed3 --- /dev/null +++ b/stable/stash/1.9.3/ci/ct-values.yaml @@ -0,0 +1,15 @@ +env: + STASH_PORT: 9999 + STASH_STASH: "/media" + STASH_GENERATED: "/root/.stash/generated" + STASH_METADATA: "/root/.stash/metadata" + STASH_CACHE: "/root/.stash/cache" +persistence: + config: + enabled: true + type: emptyDir + mountPath: /root/.stash + media: + enabled: true + type: emptyDir + mountPath: /media diff --git a/stable/stash/1.9.3/ix_values.yaml b/stable/stash/1.9.3/ix_values.yaml new file mode 100644 index 00000000000..d447043b538 --- /dev/null +++ b/stable/stash/1.9.3/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: stashapp/stash + pullPolicy: IfNotPresent + tag: latest@sha256:020ef83cbcb739e7842bc8282696357f337c61bc85b68cfbc051ad3193d65a20 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/stash/1.9.3/questions.yaml b/stable/stash/1.9.3/questions.yaml new file mode 100644 index 00000000000..e7db2420d25 --- /dev/null +++ b/stable/stash/1.9.3/questions.yaml @@ -0,0 +1,1060 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: STASH_PORT + label: "STASH_PORT" + schema: + type: string + default: "9999" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9999 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9999 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36085 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.stash" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/stash/1.9.3/templates/common.yaml b/stable/stash/1.9.3/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/stash/1.9.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/stash/1.9.3/test_values.yaml b/stable/stash/1.9.3/test_values.yaml new file mode 100644 index 00000000000..0a12ca10c3d --- /dev/null +++ b/stable/stash/1.9.3/test_values.yaml @@ -0,0 +1,47 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: stashapp/stash + # -- image tag + tag: latest@sha256:020ef83cbcb739e7842bc8282696357f337c61bc85b68cfbc051ad3193d65a20 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [stashapp documentation](https://raw.githubusercontent.com/stashapp/stash/master/docker/production/docker-compose.yml) +# @default -- See below +env: + # -- Set the container port + STASH_PORT: 9999 + # STASH_STASH: + # STASH_GENERATED: + # STASH_METADATA: + # STASH_CACHE: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9999 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.stash + + media: + enabled: false + mountPath: /media diff --git a/stable/stash/1.9.3/values.yaml b/stable/stash/1.9.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/syncthing/6.11.2/CONFIG.md b/stable/syncthing/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/syncthing/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/syncthing/6.11.2/Chart.lock b/stable/syncthing/6.11.2/Chart.lock new file mode 100644 index 00000000000..a7418c2ab6f --- /dev/null +++ b/stable/syncthing/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:41.636355022Z" diff --git a/stable/syncthing/6.11.2/Chart.yaml b/stable/syncthing/6.11.2/Chart.yaml new file mode 100644 index 00000000000..a2037b11752 --- /dev/null +++ b/stable/syncthing/6.11.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: P2P file synchronization application +home: https://github.com/truecharts/apps/tree/master/charts/stable/syncthing +icon: https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png +keywords: +- syncthing +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: luuk@nieuwdorp.me + name: luuknieuwdorp + url: nieuwdorp.me +name: syncthing +sources: +- https://syncthing.net/ +- https://github.com/syncthing/syncthing +- https://hub.docker.com/r/syncthing/syncthing +type: application +version: 6.11.2 diff --git a/stable/syncthing/6.11.2/README.md b/stable/syncthing/6.11.2/README.md new file mode 100644 index 00000000000..b9936c0bd4d --- /dev/null +++ b/stable/syncthing/6.11.2/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +P2P file synchronization application + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/syncthing/6.11.2/app-readme.md b/stable/syncthing/6.11.2/app-readme.md new file mode 100644 index 00000000000..9b6ba169503 --- /dev/null +++ b/stable/syncthing/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +P2P file synchronization application + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +P2P file synchronization application diff --git a/stable/syncthing/6.11.2/charts/common-6.12.1.tgz b/stable/syncthing/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/syncthing/6.11.2/ix_values.yaml b/stable/syncthing/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..701758ecde7 --- /dev/null +++ b/stable/syncthing/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.18" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/syncthing/6.11.2/questions.yaml b/stable/syncthing/6.11.2/questions.yaml new file mode 100644 index 00000000000..2bc1c2894db --- /dev/null +++ b/stable/syncthing/6.11.2/questions.yaml @@ -0,0 +1,1362 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8384 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8384 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36024 + - variable: listeners + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + - variable: discovery + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: discovery + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 21027 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 21027 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 21027 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/syncthing" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/syncthing/6.11.2/templates/common.yaml b/stable/syncthing/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/syncthing/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/6.11.2/test_values.yaml b/stable/syncthing/6.11.2/test_values.yaml new file mode 100644 index 00000000000..d0893ab5fa9 --- /dev/null +++ b/stable/syncthing/6.11.2/test_values.yaml @@ -0,0 +1,40 @@ +# Default values for Syncthing. + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.18" + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8384 + listeners: + ports: + tcp: + enabled: true + port: 22000 + protocol: TCP + udp: + enabled: true + port: 22000 + protocol: UDP + discovery: + ports: + discovery: + enabled: true + port: 21027 + protocol: UDP + +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + mountPath: "/var/syncthing/" diff --git a/stable/syncthing/6.11.2/values.yaml b/stable/syncthing/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tautulli/6.11.2/CONFIG.md b/stable/tautulli/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/tautulli/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/tautulli/6.11.2/Chart.lock b/stable/tautulli/6.11.2/Chart.lock new file mode 100644 index 00000000000..4841c8dd7b4 --- /dev/null +++ b/stable/tautulli/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:46.856285753Z" diff --git a/stable/tautulli/6.11.2/Chart.yaml b/stable/tautulli/6.11.2/Chart.yaml new file mode 100644 index 00000000000..85811b1bbb8 --- /dev/null +++ b/stable/tautulli/6.11.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A Python based monitoring and tracking tool for Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/tautulli +icon: https://github.com/Tautulli/Tautulli/blob/master/data/interfaces/default/images/logo.png?raw=true +keywords: +- tautulli +- plex +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: tautulli +sources: +- https://github.com/Tautulli/Tautulli +type: application +version: 6.11.2 diff --git a/stable/tautulli/6.11.2/README.md b/stable/tautulli/6.11.2/README.md new file mode 100644 index 00000000000..c53e3d64219 --- /dev/null +++ b/stable/tautulli/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A Python based monitoring and tracking tool for Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/tautulli/6.11.2/app-readme.md b/stable/tautulli/6.11.2/app-readme.md new file mode 100644 index 00000000000..36c08b5c9b7 --- /dev/null +++ b/stable/tautulli/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +A Python based monitoring and tracking tool for Plex Media Server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A Python based monitoring and tracking tool for Plex Media Server diff --git a/stable/tautulli/6.11.2/charts/common-6.12.1.tgz b/stable/tautulli/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/tautulli/6.11.2/ix_values.yaml b/stable/tautulli/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..5fea4cd85e4 --- /dev/null +++ b/stable/tautulli/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/tautulli + pullPolicy: IfNotPresent + tag: v2.7.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/tautulli/6.11.2/questions.yaml b/stable/tautulli/6.11.2/questions.yaml new file mode 100644 index 00000000000..ad67e88691b --- /dev/null +++ b/stable/tautulli/6.11.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8181 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36018 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/tautulli/6.11.2/templates/common.yaml b/stable/tautulli/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/tautulli/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tautulli/6.11.2/test_values.yaml b/stable/tautulli/6.11.2/test_values.yaml new file mode 100644 index 00000000000..33a94ad03f3 --- /dev/null +++ b/stable/tautulli/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Tautulli. + +image: + repository: ghcr.io/k8s-at-home/tautulli + pullPolicy: IfNotPresent + tag: v2.7.5 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8181 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/tautulli/6.11.2/values.yaml b/stable/tautulli/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/thelounge/1.11.2/CONFIG.md b/stable/thelounge/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/thelounge/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/thelounge/1.11.2/Chart.lock b/stable/thelounge/1.11.2/Chart.lock new file mode 100644 index 00000000000..f7f112f8214 --- /dev/null +++ b/stable/thelounge/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:52.17614585Z" diff --git a/stable/thelounge/1.11.2/Chart.yaml b/stable/thelounge/1.11.2/Chart.yaml new file mode 100644 index 00000000000..68c451361e9 --- /dev/null +++ b/stable/thelounge/1.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: The Lounge, modern web IRC client designed for self-hosting +home: https://github.com/truecharts/apps/tree/master/charts/incubator/thelounge +icon: https://avatars.githubusercontent.com/u/14336958?s=200&v=4 +keywords: +- thelounge +- IRC +- The Lounge +- docker +- thelounge-docker +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: thelounge +sources: +- https://github.com/thelounge/thelounge +version: 1.11.2 diff --git a/stable/thelounge/1.11.2/README.md b/stable/thelounge/1.11.2/README.md new file mode 100644 index 00000000000..81a4324ca88 --- /dev/null +++ b/stable/thelounge/1.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +The Lounge, modern web IRC client designed for self-hosting + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/thelounge/1.11.2/app-readme.md b/stable/thelounge/1.11.2/app-readme.md new file mode 100644 index 00000000000..cd1a83c63c2 --- /dev/null +++ b/stable/thelounge/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +The Lounge, modern web IRC client designed for self-hosting + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +The Lounge, modern web IRC client designed for self-hosting diff --git a/stable/thelounge/1.11.2/charts/common-6.12.1.tgz b/stable/thelounge/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/thelounge/1.11.2/ix_values.yaml b/stable/thelounge/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..12e3b82367b --- /dev/null +++ b/stable/thelounge/1.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: thelounge/thelounge + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.2.0-alpine + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/thelounge/1.11.2/questions.yaml b/stable/thelounge/1.11.2/questions.yaml new file mode 100644 index 00000000000..f446bcd57f4 --- /dev/null +++ b/stable/thelounge/1.11.2/questions.yaml @@ -0,0 +1,1062 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: THELOUNGE_HOME + label: "THELOUNGE_HOME" + schema: + type: string + default: "/config" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36086 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/thelounge/1.11.2/templates/common.yaml b/stable/thelounge/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/thelounge/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/thelounge/1.11.2/test_values.yaml b/stable/thelounge/1.11.2/test_values.yaml new file mode 100644 index 00000000000..df1e164be5d --- /dev/null +++ b/stable/thelounge/1.11.2/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: thelounge/thelounge + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.2.0-alpine + +strategy: + type: Recreate + +# -- environment variables. See [image docs](https://hub.docker.com/r/thelounge/thelounge/) for more details. +# @default -- See below +env: + THELOUNGE_HOME: "/config" + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9000 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/thelounge/1.11.2/values.yaml b/stable/thelounge/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.13.1/CONFIG.md b/stable/traefik/6.13.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/traefik/6.13.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/traefik/6.13.1/Chart.lock b/stable/traefik/6.13.1/Chart.lock new file mode 100644 index 00000000000..c64549b24cf --- /dev/null +++ b/stable/traefik/6.13.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:19:57.377807816Z" diff --git a/stable/traefik/6.13.1/Chart.yaml b/stable/traefik/6.13.1/Chart.yaml new file mode 100644 index 00000000000..ff855baa7f9 --- /dev/null +++ b/stable/traefik/6.13.1/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: '2.4' +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A Traefik based Reverse Proxy and Certificate Manager +home: https://github.com/truecharts/apps/tree/master/charts/stable/traefik +icon: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png +keywords: +- traefik +- ingress +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: traefik +sources: +- https://github.com/traefik/traefik +- https://github.com/traefik/traefik-helm-chart +- https://traefik.io/ +type: application +upstream_version: v9.19.2 +version: 6.13.1 diff --git a/stable/traefik/6.13.1/LICENSE b/stable/traefik/6.13.1/LICENSE new file mode 100644 index 00000000000..907ff83212c --- /dev/null +++ b/stable/traefik/6.13.1/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Containous + Copyright 2020 Traefik Labs + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/stable/traefik/6.13.1/README.md b/stable/traefik/6.13.1/README.md new file mode 100644 index 00000000000..19773ca9031 --- /dev/null +++ b/stable/traefik/6.13.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.13.1](https://img.shields.io/badge/Version-6.13.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.4](https://img.shields.io/badge/AppVersion-2.4-informational?style=flat-square) + +A Traefik based Reverse Proxy and Certificate Manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/6.13.1/app-readme.md b/stable/traefik/6.13.1/app-readme.md new file mode 100644 index 00000000000..6ac1d9a76a4 --- /dev/null +++ b/stable/traefik/6.13.1/app-readme.md @@ -0,0 +1,4 @@ +A Traefik based Reverse Proxy and Certificate Manager + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A Traefik based Reverse Proxy and Certificate Manager diff --git a/stable/traefik/6.13.1/charts/common-6.12.1.tgz b/stable/traefik/6.13.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/traefik/6.13.1/crds/ingressroute.yaml b/stable/traefik/6.13.1/crds/ingressroute.yaml new file mode 100644 index 00000000000..9422be3c878 --- /dev/null +++ b/stable/traefik/6.13.1/crds/ingressroute.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutes.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRoute + plural: ingressroutes + singular: ingressroute + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/ingressroutetcp.yaml b/stable/traefik/6.13.1/crds/ingressroutetcp.yaml new file mode 100644 index 00000000000..b50eb9dcc46 --- /dev/null +++ b/stable/traefik/6.13.1/crds/ingressroutetcp.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutetcps.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteTCP + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/ingressrouteudp.yaml b/stable/traefik/6.13.1/crds/ingressrouteudp.yaml new file mode 100644 index 00000000000..d7c2624b576 --- /dev/null +++ b/stable/traefik/6.13.1/crds/ingressrouteudp.yaml @@ -0,0 +1,13 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressrouteudps.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteUDP + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/middlewares.yaml b/stable/traefik/6.13.1/crds/middlewares.yaml new file mode 100644 index 00000000000..513b36f5d8a --- /dev/null +++ b/stable/traefik/6.13.1/crds/middlewares.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: middlewares.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: Middleware + plural: middlewares + singular: middleware + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/serverstransports.yaml b/stable/traefik/6.13.1/crds/serverstransports.yaml new file mode 100644 index 00000000000..689a57f71bd --- /dev/null +++ b/stable/traefik/6.13.1/crds/serverstransports.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: serverstransports.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: ServersTransport + plural: serverstransports + singular: serverstransport + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/tlsoptions.yaml b/stable/traefik/6.13.1/crds/tlsoptions.yaml new file mode 100644 index 00000000000..a0c2573fb93 --- /dev/null +++ b/stable/traefik/6.13.1/crds/tlsoptions.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tlsoptions.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TLSOption + plural: tlsoptions + singular: tlsoption + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/tlsstores.yaml b/stable/traefik/6.13.1/crds/tlsstores.yaml new file mode 100644 index 00000000000..f9a40052ba6 --- /dev/null +++ b/stable/traefik/6.13.1/crds/tlsstores.yaml @@ -0,0 +1,13 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tlsstores.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TLSStore + plural: tlsstores + singular: tlsstore + scope: Namespaced diff --git a/stable/traefik/6.13.1/crds/traefikservices.yaml b/stable/traefik/6.13.1/crds/traefikservices.yaml new file mode 100644 index 00000000000..59fa4839477 --- /dev/null +++ b/stable/traefik/6.13.1/crds/traefikservices.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: traefikservices.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TraefikService + plural: traefikservices + singular: traefikservice + scope: Namespaced diff --git a/stable/traefik/6.13.1/ix_values.yaml b/stable/traefik/6.13.1/ix_values.yaml new file mode 100644 index 00000000000..0a43b81babd --- /dev/null +++ b/stable/traefik/6.13.1/ix_values.yaml @@ -0,0 +1,332 @@ +# Default values for Traefik +image: + name: traefik + # defaults to appVersion + tag: v2.4 + pullPolicy: IfNotPresent + +# +# Configure the deployment +# +deployment: + enabled: true + # Can be either Deployment or DaemonSet + kind: Deployment + # Number of pods of the deployment (only applies when kind == Deployment) + replicas: 1 + # Additional deployment annotations (e.g. for jaeger-operator sidecar injection) + annotations: {} + # Additional deployment labels (e.g. for filtering deployment by custom labels) + labels: {} + # Additional pod annotations (e.g. for mesh injection or prometheus scraping) + podAnnotations: {} + # Additional Pod labels (e.g. for filtering Pod by custom labels) + podLabels: {} + # Additional containers (e.g. for metric offloading sidecars) + additionalContainers: [] + # https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=host + # - name: socat-proxy + # image: alpine/socat:1.0.5 + # args: ["-s", "-u", "udp-recv:8125", "unix-sendto:/socket/socket"] + # volumeMounts: + # - name: dsdsocket + # mountPath: /socket + # Additional volumes available for use with initContainers and additionalContainers + additionalVolumes: [] + # - name: dsdsocket + # hostPath: + # path: /var/run/statsd-exporter + # Additional initContainers (e.g. for setting file permission as shown below) + initContainers: [] + # The "volume-permissions" init container is required if you run into permission issues. + # Related issue: https://github.com/traefik/traefik/issues/6972 + # - name: volume-permissions + # image: busybox:1.31.1 + # command: ["sh", "-c", "chmod -Rv 600 /data/*"] + # volumeMounts: + # - name: data + # mountPath: /data + # Custom pod DNS policy. Apply if `hostNetwork: true` + # dnsPolicy: ClusterFirstWithHostNet + # Additional imagePullSecrets + imagePullSecrets: [] + # - name: myRegistryKeySecretName + +# Pod disruption budget +podDisruptionBudget: + enabled: false + # maxUnavailable: 1 + # minAvailable: 0 + +# 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: + +# Activate Pilot integration +pilot: + enabled: false + token: "" + # Toggle Pilot Dashboard + # dashboard: false + +# Enable experimental features +experimental: + plugins: + enabled: false + kubernetesGateway: + enabled: false + appLabelSelector: "traefik" + certificates: [] + # - group: "core" + # kind: "Secret" + # name: "mysecret" + +# 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: {} + +rollingUpdate: + maxUnavailable: 1 + maxSurge: 1 + + +# +# 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: false + # Published Kubernetes Service to copy status from. Format: namespace/servicename + # By default this Traefik service + # pathOverride: "" + +# +# Add volumes to the traefik pod. The volume name will be passed to tpl. +# This can be used to mount a cert pair or a configmap that holds a config.toml file. +# After the volume has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--providers.file.filename=/config/dynamic.toml" +# - "--ping" +# - "--ping.entrypoint=web" +volumes: [] +# - name: public-cert +# mountPath: "/certs" +# type: secret +# - name: '{{ printf "%s-configs" .Release.Name }}' +# mountPath: "/config" +# type: configMap + +# Additional volumeMounts to add to the Traefik container +additionalVolumeMounts: [] + # For instance when using a logshipper for access logs + # - name: traefik-logs + # mountPath: /var/log/traefik + +# 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 logs use a text format (common), but you can + # also ask for the json format in the format option + # format: json + # By default, the level is set to ERROR. Alternative logging levels are DEBUG, PANIC, FATAL, ERROR, WARN, and INFO. + level: INFO + access: + # To enable access logs + enabled: false + # By default, logs are written using the Common Log Format (CLF). + # To write logs in JSON, use json in the format option. + # If the given format is unsupported, the default (CLF) is used instead. + # format: json + # 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 + +globalArguments: + - "--global.checknewversion" + +# +# Configure Traefik static configuration +# 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" + +# Environment variables to be passed to Traefik's binary +env: [] +# - name: SOME_VAR +# value: some-var-value +# - name: SOME_VAR_FROM_CONFIG_MAP +# valueFrom: +# configMapRef: +# name: configmap-name +# key: config-key +# - name: SOME_SECRET +# valueFrom: +# secretKeyRef: +# name: secret-name +# key: secret-key + +envFrom: [] + +# TLS Options are created as TLSOption CRDs +# https://doc.traefik.io/traefik/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. +service: + enabled: true + type: LoadBalancer + # Additional annotations (e.g. for cloud provider specific config) + annotations: {} + # Additional service labels (e.g. for filtering Service by custom labels) + labels: {} + # Additional entries here will be added to the service spec. Cannot contains + # type, selector or ports entries. + spec: {} + # externalTrafficPolicy: Cluster + # loadBalancerIP: "1.2.3.4" + # clusterIP: "2.3.4.5" + loadBalancerSourceRanges: [] + # - 192.168.0.1/32 + # - 172.16.0.0/16 + externalIPs: [] + # - 1.2.3.4 + +## Create HorizontalPodAutoscaler object. +## +autoscaling: + enabled: false +# minReplicas: 1 +# maxReplicas: 10 +# metrics: +# - type: Resource +# resource: +# name: cpu +# targetAverageUtilization: 60 +# - type: Resource +# resource: +# name: memory +# targetAverageUtilization: 60 + +# Enable persistence using Persistent Volume Claims +# ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ +# After the pvc has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--certificatesresolvers.le.acme.storage=/data/acme.json" +# It will persist TLS certificates. +persistence: + enabled: false + name: data + accessMode: ReadWriteOnce + size: 128Mi + path: /data + +# Whether Role Based Access Control objects like roles and rolebindings should be created +rbac: + enabled: true + + # If set to false, installs ClusterRole and ClusterRoleBinding so Traefik can be used across namespaces. + # If set to true, installs namespace-specific Role and RoleBinding and requires provider configuration be set to that same namespace + namespaced: false + +# Enable to create a PodSecurityPolicy and assign it to the Service Account via RoleBinding or ClusterRoleBinding +podSecurityPolicy: + enabled: false + +# The service account the pods will use to interact with the Kubernetes API +serviceAccount: + # If set, an existing service account is used + # If not set, a service account is created automatically using the fullname template + name: "" + +# Additional serviceAccount annotations (e.g. for oidc authentication) +serviceAccountAnnotations: {} + +affinity: {} +# # This example pod anti-affinity forces the scheduler to put traefik pods +# # on nodes where no other traefik pods are scheduled. +# # It should be used when hostNetwork: true to prevent port conflicts +# podAntiAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# - labelSelector: +# matchExpressions: +# - key: app +# operator: In +# values: +# - {{ template "traefik.name" . }} +# topologyKey: failure-domain.beta.kubernetes.io/zone +nodeSelector: {} +tolerations: [] + +# Pods can have priority. +# Priority indicates the importance of a Pod relative to other Pods. +priorityClassName: "" + +# Set the container security context +# To run the container with ports below 1024 this will need to be adjust to run as root +securityContext: + capabilities: + drop: [ALL] + +portalhook: + enabled: true diff --git a/stable/traefik/6.13.1/questions.yaml b/stable/traefik/6.13.1/questions.yaml new file mode 100644 index 00000000000..6031935fd58 --- /dev/null +++ b/stable/traefik/6.13.1/questions.yaml @@ -0,0 +1,508 @@ +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: "Middlewares" + description: "Traefik Middlewares" + - 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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/dashboard/" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + - variable: pilot + label: "Traefik Pilot" + group: "App Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: token + label: "token" + schema: + type: string + default: "" + - variable: dashboard + label: "Pilot Dashboard" + schema: + type: boolean + default: false + + - variable: middlewares + label: "" + group: "Middlewares" + schema: + type: dict + attrs: + - variable: basicAuth + label: "basicAuth" + schema: + type: list + default: [] + items: + - variable: basicAuthEntry + label: "" + schema: + 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: + 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: + 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: 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: + 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: + 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 + required: true + default: false + + - variable: rateLimit + label: "rateLimit" + schema: + type: list + default: [] + items: + - variable: rateLimitEntry + label: "" + schema: + 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: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: ports + label: "(Advanced) Traefik Entrypoints" + group: "Networking and Services" + schema: + type: dict + attrs: + - variable: traefik + label: "traefik internal" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 9000 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port on the outside" + schema: + type: int + show_if: [["expose", "=", true]] + default: 9000 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + default: "TCP" + - variable: web + label: "web" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 9080 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 9080 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: redirectEnable + label: "Enable Redirect" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: redirectTo + label: "Target Entrypoint" + description: "Select the Target Entrypoint to redirect to" + schema: + type: string + required: true + default: "websecure" + - variable: websecure + label: "websecure" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 9443 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 9443 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: tls + label: "tls" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: true + hidden: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 65532 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 65532 + + + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 65532 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" diff --git a/stable/traefik/6.13.1/templates/_helpers.tpl b/stable/traefik/6.13.1/templates/_helpers.tpl new file mode 100644 index 00000000000..f7b055fa82e --- /dev/null +++ b/stable/traefik/6.13.1/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* +Expand the name of the chart. +*/}} +{{- define "traefik.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "traefik.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "traefik.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +The name of the service account to use +*/}} +{{- define "traefik.serviceAccountName" -}} +{{- default (include "traefik.fullname" .) .Values.serviceAccount.name -}} +{{- end -}} + +{{/* +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" -}} +{{- $defServiceName := printf "%s/%s" .Release.Namespace (include "traefik.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/6.13.1/templates/_podtemplate.tpl b/stable/traefik/6.13.1/templates/_podtemplate.tpl new file mode 100644 index 00000000000..9e8fe8aca34 --- /dev/null +++ b/stable/traefik/6.13.1/templates/_podtemplate.tpl @@ -0,0 +1,265 @@ +{{- define "traefik.podTemplate" }} + metadata: + annotations: + {{- with .Values.deployment.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.deployment.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "traefik.serviceAccountName" . }} + terminationGracePeriodSeconds: 60 + hostNetwork: {{ .Values.hostNetwork }} + {{- with .Values.deployment.dnsPolicy }} + dnsPolicy: {{ . }} + {{- end }} + {{- with .Values.deployment.initContainers }} + initContainers: + {{- toYaml . | nindent 6 }} + {{- end }} + containers: + - image: "{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ template "traefik.fullname" . }} + resources: + {{- with .Values.resources }} + {{- toYaml . | nindent 10 }} + {{- end }} + readinessProbe: + httpGet: + path: /ping + port: {{ default .Values.ports.traefik.port .Values.ports.traefik.healthchecksPort }} + failureThreshold: 1 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 2 + livenessProbe: + httpGet: + path: /ping + port: {{ default .Values.ports.traefik.port .Values.ports.traefik.healthchecksPort }} + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 2 + ports: + {{- range $name, $config := .Values.ports }} + {{- if $config }} + - name: {{ $name | quote }} + containerPort: {{ $config.port }} + {{- if $config.hostPort }} + hostPort: {{ $config.hostPort }} + {{- end }} + {{- if $config.hostIP }} + hostIP: {{ $config.hostIP }} + {{- end }} + protocol: {{ default "TCP" $config.protocol | quote }} + {{- end }} + {{- end }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 10 }} + {{- end }} + volumeMounts: + - name: {{ .Values.persistence.name }} + mountPath: {{ .Values.persistence.path }} + {{- if .Values.persistence.subPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + - name: tmp + mountPath: /tmp + {{- $root := . }} + {{- range .Values.volumes }} + - name: {{ tpl (.name) $root }} + mountPath: {{ .mountPath }} + readOnly: true + {{- end }} + {{- if .Values.experimental.plugins.enabled }} + - name: plugins + mountPath: "/plugins-storage" + {{- end }} + {{- if .Values.additionalVolumeMounts }} + {{- toYaml .Values.additionalVolumeMounts | nindent 10 }} + {{- end }} + args: + {{- with .Values.globalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- range $name, $config := .Values.ports }} + {{- if $config }} + - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" + {{- end }} + {{- end }} + - "--api.dashboard=true" + - "--ping=true" + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress" + {{- if and .Values.service.enabled .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 .Values.experimental.kubernetesGateway.enabled }} + - "--providers.kubernetesgateway" + - "--experimental.kubernetesgateway" + {{- 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 }} + {{- range $entrypoint, $config := $.Values.ports }} + {{- if $config.redirectTo }} + {{- $toPort := index $.Values.ports $config.redirectTo }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.exposedPort }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- end }} + {{- if $config.tls }} + {{- if $config.tls.enabled }} + - "--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 }} + {{- if .general.format }} + - "--log.format={{ .general.format }}" + {{- end }} + {{- if ne .general.level "ERROR" }} + - "--log.level={{ .general.level | upper }}" + {{- end }} + {{- if .access.enabled }} + - "--accesslog=true" + {{- if .access.format }} + - "--accesslog.format={{ .access.format }}" + {{- end }} + {{- 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 }} + {{- if .Values.pilot.enabled }} + - "--pilot.token={{ .Values.pilot.token }}" + {{- end }} + {{- if hasKey .Values.pilot "dashboard" }} + - "--pilot.dashboard={{ .Values.pilot.dashboard }}" + {{- end }} + {{- with .Values.additionalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- with .Values.env }} + env: + {{- toYaml . | nindent 10 }} + {{- end }} + {{- with .Values.envFrom }} + envFrom: + {{- toYaml . | nindent 10 }} + {{- end }} + {{- if .Values.deployment.additionalContainers }} + {{- toYaml .Values.deployment.additionalContainers | nindent 6 }} + {{- end }} + volumes: + - name: {{ .Values.persistence.name }} + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ default (include "traefik.fullname" .) .Values.persistence.existingClaim }} + {{- else }} + emptyDir: {} + {{- end }} + - name: tmp + emptyDir: {} + {{- $root := . }} + {{- range .Values.volumes }} + - name: {{ tpl (.name) $root }} + {{- if eq .type "secret" }} + secret: + secretName: {{ tpl (.name) $root }} + {{- else if eq .type "configMap" }} + configMap: + name: {{ tpl (.name) $root }} + {{- end }} + {{- end }} + {{- if .Values.deployment.additionalVolumes }} + {{- toYaml .Values.deployment.additionalVolumes | nindent 8 }} + {{- end }} + {{- if .Values.experimental.plugins.enabled }} + - name: plugins + emptyDir: {} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName }} + {{- end }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} +{{ end -}} diff --git a/stable/traefik/6.13.1/templates/custom/common.yaml b/stable/traefik/6.13.1/templates/custom/common.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.13.1/templates/custom/middleware-namespace.yaml b/stable/traefik/6.13.1/templates/custom/middleware-namespace.yaml new file mode 100644 index 00000000000..16156ee5e12 --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middleware-namespace.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: traefikmiddlewares + namespace: traefikmiddlewares + annotations: + "helm.sh/hook": pre-install diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/basic-middleware.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..98f7d1c170c --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/basic-middleware.yaml @@ -0,0 +1,58 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: compress + namespace: traefikmiddlewares +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: traefikmiddlewares +spec: + rateLimit: + average: 300 + burst: 200 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-secure-headers + namespace: traefikmiddlewares +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 + customResponseHeaders: + X-Robots-Tag: 'none' + server: '' +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: chain-basic + namespace: traefikmiddlewares +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: basic-secure-headers + - name: compress diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/basicauth.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/basicauth.yaml new file mode 100644 index 00000000000..4e0f326a2f4 --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/basicauth.yaml @@ -0,0 +1,29 @@ +{{ 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: traefikmiddlewares +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: traefikmiddlewares +spec: + basicAuth: + secret: {{printf "%v-%v" $middlewareData.name "secret" }} +{{ end }} diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/chain.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/chain.yaml new file mode 100644 index 00000000000..ef592c255ba --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/chain.yaml @@ -0,0 +1,16 @@ +{{ range $index, $middlewareData := .Values.middlewares.chain }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + chain: + middlewares: + {{ range $index, $chainData := .Values.middlewares.chainmiddlewares }} + - name: {{ printf "%v-%v@%v" "traefikmiddlewares" $chainData.name "kubernetescrd" }} + {{ end }} +{{ end }} diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/forwardauth.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..bb90d33775e --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/forwardauth.yaml @@ -0,0 +1,23 @@ +{{ range $index, $middlewareData := .Values.middlewares.forwardAuth }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + forwardAuth: + address: {{ $middlewareData.address }} + {{- if $middlewareData.authResponseHeaders }} + authResponseHeaders: {{ $middlewareData.authResponseHeaders }} + {{- end }} + {{- if $middlewareData.authRequestHeaders }} + authRequestHeaders: {{ $middlewareData.authRequestHeaders }} + {{- end }} + {{- if $middlewareData.authResponseHeadersRegex }} + authResponseHeadersRegex: {{ $middlewareData.authResponseHeadersRegex }} + {{- end }} + {{- if $middlewareData.trustForwardHeader }} + trustForwardHeader: true + {{- end }} +{{ end }} diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/ratelimit.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/ratelimit.yaml new file mode 100644 index 00000000000..b4bfa938e6e --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/ratelimit.yaml @@ -0,0 +1,14 @@ +{{ range $index, $middlewareData := .Values.middlewares.rateLimit }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + rateLimit: + average: {{ $middlewareData.average }} + burst: {{ $middlewareData.burst }} +{{ end }} diff --git a/stable/traefik/6.13.1/templates/custom/middlewares/redirectScheme.yaml b/stable/traefik/6.13.1/templates/custom/middlewares/redirectScheme.yaml new file mode 100644 index 00000000000..070c8fc4a90 --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/middlewares/redirectScheme.yaml @@ -0,0 +1,14 @@ +{{ range $index, $middlewareData := .Values.middlewares.redirectScheme }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + redirectScheme: + scheme: {{ $middlewareData.scheme }} + permanent: {{ $middlewareData.permanent }} +{{ end }} diff --git a/stable/traefik/6.13.1/templates/custom/portal.yaml b/stable/traefik/6.13.1/templates/custom/portal.yaml new file mode 100644 index 00000000000..92e80f287a2 --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/portal.yaml @@ -0,0 +1,45 @@ +{{- if .Values.portal }} +{{- if .Values.portal.enabled }} +{{- $ingr := dict -}} +{{- $host := "$node_ip" }} +{{- $port := 443 }} +{{- $protocol := "https" }} +{{- $portProtocol := "" }} +{{- $path := "/dashboard/" }} + +{{- if $ingr }} + {{- if $ingr.enabled }} + {{- range $ingr.hosts }} + {{- if .hostTpl }} + {{ $host = ( tpl .hostTpl $ ) }} + {{- else if .host }} + {{ $host = .host }} + {{- else }} + {{ $host = "$node_ip" }} + {{- end }} + {{- if .paths }} + {{- $path = (first .paths).path }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} + +{{- if eq $host "$node_ip" }} + {{- $port = .Values.ports.traefik.exposedPort }} + {{- $protocol = "http" }} +{{- end }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + protocol: {{ $protocol }} + host: {{ $host | quote }} + port: {{ $port | quote }} + path: {{ $path | quote }} + url: {{ ( printf "%v://%v:%v%v" $protocol $host $port $path ) | quote }} +{{- end }} +{{- end }} diff --git a/stable/traefik/6.13.1/templates/custom/portalhook.yaml b/stable/traefik/6.13.1/templates/custom/portalhook.yaml new file mode 100644 index 00000000000..5a9fee80da4 --- /dev/null +++ b/stable/traefik/6.13.1/templates/custom/portalhook.yaml @@ -0,0 +1,12 @@ +{{- if .Values.portalhook.enabled }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portalhook + namespace: traefikmiddlewares +data: + websecureport: {{ .Values.ports.websecure.exposedPort | quote }} +{{- end }} diff --git a/stable/traefik/6.13.1/templates/daemonset.yaml b/stable/traefik/6.13.1/templates/daemonset.yaml new file mode 100644 index 00000000000..469e105c358 --- /dev/null +++ b/stable/traefik/6.13.1/templates/daemonset.yaml @@ -0,0 +1,40 @@ +{{- if and .Values.deployment.enabled (eq .Values.deployment.kind "DaemonSet") -}} + {{- with .Values.additionalArguments -}} + {{- range . -}} + {{- if contains ".acme." . -}} + {{- fail (printf "ACME functionality is not supported when running Traefik as a DaemonSet") -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- if eq (default .Chart.AppVersion .Values.image.tag) "latest" }} + {{- fail "\n\n ERROR: latest tag should not be used" }} + {{- end }} + +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.deployment.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: {{ .Values.rollingUpdate.maxUnavailable }} + template: {{ template "traefik.podTemplate" . }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/dashboard-hook-ingressroute.yaml b/stable/traefik/6.13.1/templates/dashboard-hook-ingressroute.yaml new file mode 100644 index 00000000000..ec278c26910 --- /dev/null +++ b/stable/traefik/6.13.1/templates/dashboard-hook-ingressroute.yaml @@ -0,0 +1,28 @@ +{{- if .Values.ingressRoute.dashboard.enabled -}} +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: {{ template "traefik.fullname" . }}-dashboard + annotations: + helm.sh/hook: "post-install,post-upgrade" + {{- with .Values.ingressRoute.dashboard.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.ingressRoute.dashboard.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + entryPoints: + - traefik + routes: + - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + kind: Rule + services: + - name: api@internal + kind: TraefikService +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/deployment.yaml b/stable/traefik/6.13.1/templates/deployment.yaml new file mode 100644 index 00000000000..494087cfd0a --- /dev/null +++ b/stable/traefik/6.13.1/templates/deployment.yaml @@ -0,0 +1,47 @@ +{{- if and .Values.deployment.enabled (eq .Values.deployment.kind "Deployment") -}} + {{- if gt (int .Values.deployment.replicas) 1 -}} + {{- with .Values.additionalArguments -}} + {{- range . -}} + {{- if contains ".acme." . -}} + {{- fail (printf "You can not enable acme if you set more than one traefik replica") -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- if eq (default .Chart.AppVersion .Values.image.tag) "latest" }} + {{- fail "\n\n ERROR: latest tag should not be used" }} + {{- end }} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.deployment.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ default 1 .Values.deployment.replicas }} + {{- end }} + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + strategy: + type: RollingUpdate + rollingUpdate: + {{- with .Values.rollingUpdate }} + {{- toYaml . | nindent 6 }} + {{- end }} + template: {{ template "traefik.podTemplate" . }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/gateway.yaml b/stable/traefik/6.13.1/templates/gateway.yaml new file mode 100644 index 00000000000..85194211fe5 --- /dev/null +++ b/stable/traefik/6.13.1/templates/gateway.yaml @@ -0,0 +1,33 @@ +{{- if .Values.experimental.kubernetesGateway.enabled }} +--- +apiVersion: networking.x-k8s.io/v1alpha1 +kind: Gateway +metadata: + name: traefik-gateway + namespace: default +spec: + gatewayClassName: traefik + listeners: + - port: {{ .Values.ports.web.port }} + protocol: HTTP + routes: + kind: HTTPRoute + selector: + matchLabels: + app: {{ .Values.experimental.kubernetesGateway.appLabelSelector }} + + {{- range $index, $cert:= .Values.experimental.kubernetesGateway.certificates }} + - port: {{ $.Values.ports.websecure.port }} + protocol: HTTPS + tls: + certificateRef: + name: {{ $cert.name }} + group: {{ $cert.group }} + kind: {{ $cert.kind }} + routes: + kind: HTTPRoute + selector: + matchLabels: + app: {{ $.Values.experimental.kubernetesGateway.appLabelSelector }} + {{- end }} +{{- end }} diff --git a/stable/traefik/6.13.1/templates/gatewayclass.yaml b/stable/traefik/6.13.1/templates/gatewayclass.yaml new file mode 100644 index 00000000000..61bf007db1e --- /dev/null +++ b/stable/traefik/6.13.1/templates/gatewayclass.yaml @@ -0,0 +1,9 @@ +{{- if .Values.experimental.kubernetesGateway.enabled }} +--- +kind: GatewayClass +apiVersion: networking.x-k8s.io/v1alpha1 +metadata: + name: traefik +spec: + controller: traefik.io/gateway-controller +{{- end }} diff --git a/stable/traefik/6.13.1/templates/hpa.yaml b/stable/traefik/6.13.1/templates/hpa.yaml new file mode 100644 index 00000000000..bf37117de6a --- /dev/null +++ b/stable/traefik/6.13.1/templates/hpa.yaml @@ -0,0 +1,20 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ template "traefik.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: +{{ toYaml .Values.autoscaling.metrics | indent 4 }} +{{- end }} diff --git a/stable/traefik/6.13.1/templates/ingressclass.yaml b/stable/traefik/6.13.1/templates/ingressclass.yaml new file mode 100644 index 00000000000..7c62458c82e --- /dev/null +++ b/stable/traefik/6.13.1/templates/ingressclass.yaml @@ -0,0 +1,23 @@ +{{- if and .Values.ingressClass.enabled (semverCompare ">=2.3.0" (default .Chart.AppVersion .Values.image.tag)) -}} + {{- 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 atleast networking.k8s.io/v1beta1 to use ingressClass" }} + {{- end }} +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: {{ .Values.ingressClass.isDefaultClass | quote }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + name: {{ template "traefik.fullname" . }} +spec: + controller: traefik.io/ingress-controller +{{- end }} diff --git a/stable/traefik/6.13.1/templates/poddisruptionbudget.yaml b/stable/traefik/6.13.1/templates/poddisruptionbudget.yaml new file mode 100644 index 00000000000..9893e521759 --- /dev/null +++ b/stable/traefik/6.13.1/templates/poddisruptionbudget.yaml @@ -0,0 +1,22 @@ +{{- if .Values.podDisruptionBudget.enabled -}} +apiVersion: policy/v1beta1 +kind: PodDisruptionBudget +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- if .Values.podDisruptionBudget.minAvailable }} + minAvailable: {{ .Values.podDisruptionBudget.minAvailable | int }} + {{- end }} + {{- if .Values.podDisruptionBudget.maxUnavailable }} + maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable | int }} + {{- end }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/clusterrole.yaml b/stable/traefik/6.13.1/templates/rbac/clusterrole.yaml new file mode 100644 index 00000000000..2c63e006414 --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/clusterrole.yaml @@ -0,0 +1,112 @@ +{{- if and .Values.rbac.enabled (not .Values.rbac.namespaced) -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +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 + - tlsoptions + - tlsstores + - traefikservices + - serverstransports + verbs: + - get + - list + - watch +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: + - policy + resourceNames: + - {{ template "traefik.fullname" . }} + resources: + - podsecuritypolicies + verbs: + - use +{{- end -}} +{{- if .Values.experimental.kubernetesGateway.enabled }} + - apiGroups: + - networking.x-k8s.io + resources: + - gatewayclasses + - gatewayclasses/status + - gateways + verbs: + - get + - list + - watch + - apiGroups: + - networking.x-k8s.io + resources: + - gatewayclasses/status + verbs: + - get + - patch + - update + - apiGroups: + - networking.x-k8s.io + resources: + - gateways/status + verbs: + - get + - patch + - update + - apiGroups: + - networking.x-k8s.io + resources: + - httproutes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.x-k8s.io + resources: + - httproutes/status + verbs: + - get + - patch + - update +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/clusterrolebinding.yaml b/stable/traefik/6.13.1/templates/rbac/clusterrolebinding.yaml new file mode 100644 index 00000000000..509e92ff2b7 --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/clusterrolebinding.yaml @@ -0,0 +1,19 @@ +{{- if and .Values.rbac.enabled (not .Values.rbac.namespaced) }} +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "traefik.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "traefik.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/podsecuritypolicy.yaml b/stable/traefik/6.13.1/templates/rbac/podsecuritypolicy.yaml new file mode 100644 index 00000000000..66bc1458d55 --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/podsecuritypolicy.yaml @@ -0,0 +1,68 @@ +{{- if .Values.podSecurityPolicy.enabled }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + annotations: + seccomp.security.alpha.kubernetes.io/allowedProfileNames: runtime/default + seccomp.security.alpha.kubernetes.io/defaultProfileName: runtime/default + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + privileged: false + allowPrivilegeEscalation: false + requiredDropCapabilities: + - ALL +{{- if not .Values.securityContext.runAsNonRoot }} + allowedCapabilities: + - NET_BIND_SERVICE +{{- end }} + hostNetwork: {{ .Values.hostNetwork }} + hostIPC: false + hostPID: false + fsGroup: +{{- if .Values.securityContext.runAsNonRoot }} + ranges: + - max: 65535 + min: 1 + rule: MustRunAs +{{- else }} + rule: RunAsAny +{{- end }} +{{- if .Values.hostNetwork }} + hostPorts: + - max: 65535 + min: 1 +{{- end }} + readOnlyRootFilesystem: true + runAsUser: +{{- if .Values.securityContext.runAsNonRoot }} + rule: MustRunAsNonRoot +{{- else }} + rule: RunAsAny +{{- end }} + seLinux: + rule: RunAsAny + supplementalGroups: +{{- if .Values.securityContext.runAsNonRoot }} + ranges: + - max: 65535 + min: 1 + rule: MustRunAs +{{- else }} + rule: RunAsAny +{{- end }} + volumes: + - configMap + - downwardAPI + - secret + - emptyDir + - projected +{{- if .Values.persistence.enabled }} + - persistentVolumeClaim +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/role.yaml b/stable/traefik/6.13.1/templates/rbac/role.yaml new file mode 100644 index 00000000000..6c763065d6f --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/role.yaml @@ -0,0 +1,61 @@ +{{- if and .Values.rbac.enabled .Values.rbac.namespaced }} +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + resources: + - ingressroutes + - ingressroutetcps + - ingressrouteudps + - middlewares + - tlsoptions + - tlsstores + - traefikservices + - serverstransports + verbs: + - get + - list + - watch +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: + - extensions + resourceNames: + - {{ template "traefik.fullname" . }} + resources: + - podsecuritypolicies + verbs: + - use +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/rolebinding.yaml b/stable/traefik/6.13.1/templates/rbac/rolebinding.yaml new file mode 100644 index 00000000000..10416401867 --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/rolebinding.yaml @@ -0,0 +1,19 @@ +{{- if and .Values.rbac.enabled .Values.rbac.namespaced }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ template "traefik.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "traefik.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/rbac/serviceaccount.yaml b/stable/traefik/6.13.1/templates/rbac/serviceaccount.yaml new file mode 100644 index 00000000000..bcc941eec95 --- /dev/null +++ b/stable/traefik/6.13.1/templates/rbac/serviceaccount.yaml @@ -0,0 +1,15 @@ +{{- if not .Values.serviceAccount.name -}} +kind: ServiceAccount +apiVersion: v1 +metadata: + name: {{ include "traefik.serviceAccountName" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + annotations: + {{- with .Values.serviceAccountAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/service.yaml b/stable/traefik/6.13.1/templates/service.yaml new file mode 100644 index 00000000000..745bb9102d7 --- /dev/null +++ b/stable/traefik/6.13.1/templates/service.yaml @@ -0,0 +1,114 @@ +{{- if .Values.service.enabled -}} + +{{ $tcpPorts := dict }} +{{ $udpPorts := dict }} +{{- range $name, $config := .Values.ports }} + {{- if eq (toString $config.protocol) "UDP" }} + {{ $_ := set $udpPorts $name $config }} + {{- else }} + {{ $_ := set $tcpPorts $name $config }} + {{- end }} +{{- end }} + +apiVersion: v1 +kind: List +metadata: + name: {{ template "traefik.fullname" . }} +items: +{{- if $tcpPorts }} + - apiVersion: v1 + kind: Service + metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.service.labels }} + {{- toYaml . | nindent 8 }} + {{- end }} + annotations: + {{- with .Values.service.annotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- $type := default "LoadBalancer" .Values.service.type }} + type: {{ $type }} + {{- with .Values.service.spec }} + {{- toYaml . | nindent 6 }} + {{- end }} + selector: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + ports: + {{- range $name, $config := $tcpPorts }} + {{- if $config.expose }} + - port: {{ default $config.port $config.exposedPort }} + name: {{ $name }} + targetPort: {{ $name | quote }} + protocol: {{ default "TCP" $config.protocol | quote }} + {{- if $config.nodePort }} + nodePort: {{ $config.nodePort }} + {{- end }} + {{- end }} + {{- end }} + {{- if eq $type "LoadBalancer" }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 6 }} + {{- end -}} + {{- end -}} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 6 }} + {{- end -}} +{{- end }} + +{{- if $udpPorts }} + - apiVersion: v1 + kind: Service + metadata: + name: {{ template "traefik.fullname" . }}-udp + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + annotations: + {{- with .Values.service.annotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- $type := default "LoadBalancer" .Values.service.type }} + type: {{ $type }} + {{- with .Values.service.spec }} + {{- toYaml . | nindent 6 }} + {{- end }} + selector: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + ports: + {{- range $name, $config := $udpPorts }} + {{- if $config.expose }} + - port: {{ default $config.port $config.exposedPort }} + name: {{ $name }} + targetPort: {{ $name | quote }} + protocol: {{ default "UDP" $config.protocol | quote }} + {{- if $config.nodePort }} + nodePort: {{ $config.nodePort }} + {{- end }} + {{- end }} + {{- end }} + {{- if eq $type "LoadBalancer" }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 6 }} + {{- end -}} + {{- end -}} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 6 }} + {{- end -}} +{{- end }} +{{- end -}} diff --git a/stable/traefik/6.13.1/templates/tlsoption.yaml b/stable/traefik/6.13.1/templates/tlsoption.yaml new file mode 100644 index 00000000000..ec46e8bbc94 --- /dev/null +++ b/stable/traefik/6.13.1/templates/tlsoption.yaml @@ -0,0 +1,14 @@ +{{- range $name, $config := .Values.tlsOptions }} +apiVersion: traefik.containo.us/v1alpha1 +kind: TLSOption +metadata: + name: {{ $name }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" $ }} + helm.sh/chart: {{ template "traefik.chart" $ }} + app.kubernetes.io/managed-by: {{ $.Release.Service }} + app.kubernetes.io/instance: {{ $.Release.Name }} +spec: + {{- toYaml $config | nindent 2 }} +--- +{{- end -}} diff --git a/stable/traefik/6.13.1/test_values.yaml b/stable/traefik/6.13.1/test_values.yaml new file mode 100644 index 00000000000..596cc786695 --- /dev/null +++ b/stable/traefik/6.13.1/test_values.yaml @@ -0,0 +1,438 @@ +# Default values for Traefik +image: + name: traefik + # defaults to appVersion + tag: v2.4 + pullPolicy: IfNotPresent + +# +# Configure the deployment +# +deployment: + enabled: true + # Can be either Deployment or DaemonSet + kind: Deployment + # Number of pods of the deployment (only applies when kind == Deployment) + replicas: 1 + # Additional deployment annotations (e.g. for jaeger-operator sidecar injection) + annotations: {} + # Additional deployment labels (e.g. for filtering deployment by custom labels) + labels: {} + # Additional pod annotations (e.g. for mesh injection or prometheus scraping) + podAnnotations: {} + # Additional Pod labels (e.g. for filtering Pod by custom labels) + podLabels: {} + # Additional containers (e.g. for metric offloading sidecars) + additionalContainers: [] + # https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=host + # - name: socat-proxy + # image: alpine/socat:1.0.5 + # args: ["-s", "-u", "udp-recv:8125", "unix-sendto:/socket/socket"] + # volumeMounts: + # - name: dsdsocket + # mountPath: /socket + # Additional volumes available for use with initContainers and additionalContainers + additionalVolumes: [] + # - name: dsdsocket + # hostPath: + # path: /var/run/statsd-exporter + # Additional initContainers (e.g. for setting file permission as shown below) + initContainers: [] + # The "volume-permissions" init container is required if you run into permission issues. + # Related issue: https://github.com/traefik/traefik/issues/6972 + # - name: volume-permissions + # image: busybox:1.31.1 + # command: ["sh", "-c", "chmod -Rv 600 /data/*"] + # volumeMounts: + # - name: data + # mountPath: /data + # Custom pod DNS policy. Apply if `hostNetwork: true` + # dnsPolicy: ClusterFirstWithHostNet + # Additional imagePullSecrets + imagePullSecrets: [] + # - name: myRegistryKeySecretName + +# Pod disruption budget +podDisruptionBudget: + enabled: false + # maxUnavailable: 1 + # minAvailable: 0 + +# 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: + +# Activate Pilot integration +pilot: + enabled: false + token: "" + # Toggle Pilot Dashboard + # dashboard: false + +# Enable experimental features +experimental: + plugins: + enabled: false + kubernetesGateway: + enabled: false + appLabelSelector: "traefik" + certificates: [] + # - group: "core" + # kind: "Secret" + # name: "mysecret" + +# 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: {} + +rollingUpdate: + maxUnavailable: 1 + maxSurge: 1 + + +# +# 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: false + # Published Kubernetes Service to copy status from. Format: namespace/servicename + # By default this Traefik service + # pathOverride: "" + +# +# Add volumes to the traefik pod. The volume name will be passed to tpl. +# This can be used to mount a cert pair or a configmap that holds a config.toml file. +# After the volume has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--providers.file.filename=/config/dynamic.toml" +# - "--ping" +# - "--ping.entrypoint=web" +volumes: [] +# - name: public-cert +# mountPath: "/certs" +# type: secret +# - name: '{{ printf "%s-configs" .Release.Name }}' +# mountPath: "/config" +# type: configMap + +# Additional volumeMounts to add to the Traefik container +additionalVolumeMounts: [] + # For instance when using a logshipper for access logs + # - name: traefik-logs + # mountPath: /var/log/traefik + +# 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 logs use a text format (common), but you can + # also ask for the json format in the format option + # format: json + # By default, the level is set to ERROR. Alternative logging levels are DEBUG, PANIC, FATAL, ERROR, WARN, and INFO. + level: INFO + access: + # To enable access logs + enabled: false + # By default, logs are written using the Common Log Format (CLF). + # To write logs in JSON, use json in the format option. + # If the given format is unsupported, the default (CLF) is used instead. + # format: json + # 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 + +globalArguments: + - "--global.checknewversion" + +# +# Configure Traefik static configuration +# 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" + +# Environment variables to be passed to Traefik's binary +env: [] +# - name: SOME_VAR +# value: some-var-value +# - name: SOME_VAR_FROM_CONFIG_MAP +# valueFrom: +# configMapRef: +# name: configmap-name +# key: config-key +# - name: SOME_SECRET +# valueFrom: +# secretKeyRef: +# name: secret-name +# key: secret-key + +envFrom: [] +# - configMapRef: +# name: config-map-name +# - secretRef: +# name: secret-name + +# Configure ports +ports: + # The name of this one can't be changed as it is used for the readiness and + # liveness probes, but you can adjust its config to your liking + traefik: + port: 9000 + # Use hostPort if set. + # hostPort: 9000 + # + # Use hostIP if set. If not set, Kubernetes will default to 0.0.0.0, which + # means it's listening on all your interfaces and all your IPs. You may want + # to set this value if you need traefik to listen on specific interface + # only. + # hostIP: 192.168.100.10 + + # Defines whether the port is exposed if service.type is LoadBalancer or + # NodePort. + # + # You SHOULD NOT expose the traefik port on production deployments. + # If you want to access it from outside of your cluster, + # use `kubectl port-forward` or create a secure ingress + expose: false + # The exposed port for this service + exposedPort: 9000 + # The port protocol (TCP/UDP) + protocol: TCP + web: + port: 9080 + # hostPort: 8000 + expose: true + exposedPort: 80 + # The port protocol (TCP/UDP) + protocol: TCP + # Use nodeport if set. This is useful if you have configured Traefik in a + # LoadBalancer + # nodePort: 32080 + # Port Redirections + # Added in 2.2, you can make permanent redirects via entrypoints. + # https://docs.traefik.io/routing/entrypoints/#redirection + redirectTo: websecure + websecure: + port: 9443 + # hostPort: 8443 + expose: true + exposedPort: 443 + # The port protocol (TCP/UDP) + protocol: TCP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls + tls: + enabled: true + +# TLS Options are created as TLSOption CRDs +# https://doc.traefik.io/traefik/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. +service: + enabled: true + type: LoadBalancer + # Additional annotations (e.g. for cloud provider specific config) + annotations: {} + # Additional service labels (e.g. for filtering Service by custom labels) + labels: {} + # Additional entries here will be added to the service spec. Cannot contains + # type, selector or ports entries. + spec: {} + # externalTrafficPolicy: Cluster + # loadBalancerIP: "1.2.3.4" + # clusterIP: "2.3.4.5" + loadBalancerSourceRanges: [] + # - 192.168.0.1/32 + # - 172.16.0.0/16 + externalIPs: [] + # - 1.2.3.4 + +## Create HorizontalPodAutoscaler object. +## +autoscaling: + enabled: false +# minReplicas: 1 +# maxReplicas: 10 +# metrics: +# - type: Resource +# resource: +# name: cpu +# targetAverageUtilization: 60 +# - type: Resource +# resource: +# name: memory +# targetAverageUtilization: 60 + +# Enable persistence using Persistent Volume Claims +# ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ +# After the pvc has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--certificatesresolvers.le.acme.storage=/data/acme.json" +# It will persist TLS certificates. +persistence: + enabled: false + name: data + accessMode: ReadWriteOnce + size: 128Mi + path: /data + +# If hostNetwork is true, runs traefik in the host network namespace +# To prevent unschedulabel pods due to port collisions, if hostNetwork=true +# and replicas>1, a pod anti-affinity is recommended and will be set if the +# affinity is left as default. +hostNetwork: false + +# Whether Role Based Access Control objects like roles and rolebindings should be created +rbac: + enabled: true + + # If set to false, installs ClusterRole and ClusterRoleBinding so Traefik can be used across namespaces. + # If set to true, installs namespace-specific Role and RoleBinding and requires provider configuration be set to that same namespace + namespaced: false + +# Enable to create a PodSecurityPolicy and assign it to the Service Account via RoleBinding or ClusterRoleBinding +podSecurityPolicy: + enabled: false + +# The service account the pods will use to interact with the Kubernetes API +serviceAccount: + # If set, an existing service account is used + # If not set, a service account is created automatically using the fullname template + name: "" + +# Additional serviceAccount annotations (e.g. for oidc authentication) +serviceAccountAnnotations: {} + +resources: {} + # requests: + # cpu: "100m" + # memory: "50Mi" + # limits: + # cpu: "300m" + # memory: "150Mi" +affinity: {} +# # This example pod anti-affinity forces the scheduler to put traefik pods +# # on nodes where no other traefik pods are scheduled. +# # It should be used when hostNetwork: true to prevent port conflicts +# podAntiAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# - labelSelector: +# matchExpressions: +# - key: app +# operator: In +# values: +# - {{ template "traefik.name" . }} +# topologyKey: failure-domain.beta.kubernetes.io/zone +nodeSelector: {} +tolerations: [] + +# Pods can have priority. +# Priority indicates the importance of a Pod relative to other Pods. +priorityClassName: "" + +# Set the container security context +# To run the container with ports below 1024 this will need to be adjust to run as root +securityContext: + capabilities: + drop: [ALL] + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 + +podSecurityContext: + fsGroup: 65532 + +## 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: [] + # middlewares: + # - name: compress + redirectScheme: [] + # scheme: https + # permanent: true + rateLimit: [] + # average: 300 + # burst: 200 + +portalhook: + enabled: true diff --git a/stable/traefik/6.13.1/values.yaml b/stable/traefik/6.13.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/transmission/6.11.2/CONFIG.md b/stable/transmission/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/transmission/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/transmission/6.11.2/Chart.lock b/stable/transmission/6.11.2/Chart.lock new file mode 100644 index 00000000000..4163e27e745 --- /dev/null +++ b/stable/transmission/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:02.651275209Z" diff --git a/stable/transmission/6.11.2/Chart.yaml b/stable/transmission/6.11.2/Chart.yaml new file mode 100644 index 00000000000..9f07f99e7bf --- /dev/null +++ b/stable/transmission/6.11.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/transmission +icon: https://github.com/Jackett/Jackett/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: transmission +sources: +- https://github.com/transmission/transmission +- https://hub.docker.com/r/linuxserver/transmission +type: application +version: 6.11.2 diff --git a/stable/transmission/6.11.2/README.md b/stable/transmission/6.11.2/README.md new file mode 100644 index 00000000000..d7d1b5d0578 --- /dev/null +++ b/stable/transmission/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/transmission/6.11.2/app-readme.md b/stable/transmission/6.11.2/app-readme.md new file mode 100644 index 00000000000..98549f0fc93 --- /dev/null +++ b/stable/transmission/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +API Support for your favorite torrent trackers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +API Support for your favorite torrent trackers. diff --git a/stable/transmission/6.11.2/charts/common-6.12.1.tgz b/stable/transmission/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/transmission/6.11.2/ix_values.yaml b/stable/transmission/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..aeea220e56b --- /dev/null +++ b/stable/transmission/6.11.2/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/transmission + pullPolicy: IfNotPresent + tag: v3.00 + +transmissionFixedConfig: + bind-address-ipv4: "0.0.0.0" + bind-address-ipv6: ::" + cache-size-mb: 4 + lpd-enabled: false + dht-enabled: true + peer-congestion-algorithm: "" + message-level: 2 + peer-id-ttl-hours: 4 + peer-port: 51413 + peer-port-random-high: 65535 + peer-port-random-low: 49152 + peer-port-random-on-start: false + peer-socket-tos: "default" + pex-enabled: true + port-forwarding-enabled: false + preallocation: 0 + prefetch-enabled: true + rename-partial-files: true + rpc-authentication-required: false + rpc-bind-address: "0.0.0.0" + rpc-enabled: true + rpc-host-whitelist: "" + rpc-host-whitelist-enabled: false + rpc-password: "CHANGEME" + rpc-port: 9091 + rpc-url: "/transmission/" + rpc-username: "" + rpc-whitelist: "" + rpc-whitelist-enabled: false + umask: 2 + utp-enabled: true + watch-dir: "/watch" + watch-dir-enabled: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/transmission/6.11.2/questions.yaml b/stable/transmission/6.11.2/questions.yaml new file mode 100644 index 00000000000..aec21861b87 --- /dev/null +++ b/stable/transmission/6.11.2/questions.yaml @@ -0,0 +1,1591 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/web/" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: TRANSMISSION_ALT_SPEED_DOWN + label: TRANSMISSION_ALT_SPEED_DOWN + schema: + type: int + default: 50 + - variable: TRANSMISSION_ALT_SPEED_ENABLED + label: TRANSMISSION_ALT_SPEED_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_ALT_SPEED_TIME_BEGIN + label: TRANSMISSION_ALT_SPEED_TIME_BEGIN + schema: + type: int + default: 540 + - variable: TRANSMISSION_ALT_SPEED_TIME_DAY + label: TRANSMISSION_ALT_SPEED_TIME_DAY + schema: + type: int + default: 127 + - variable: TRANSMISSION_ALT_SPEED_TIME_ENABLED + label: TRANSMISSION_ALT_SPEED_TIME_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_ALT_SPEED_TIME_END + label: TRANSMISSION_ALT_SPEED_TIME_END + schema: + type: int + default: 1020 + - variable: TRANSMISSION_ALT_SPEED_UP + label: TRANSMISSION_ALT_SPEED_UP + schema: + type: int + default: 50 + - variable: TRANSMISSION_BIND_ADDRESS_IPV4 + label: TRANSMISSION_BIND_ADDRESS_IPV4 + schema: + type: string + default: "0.0.0.0" + - variable: TRANSMISSION_BIND_ADDRESS_IPV6 + label: TRANSMISSION_BIND_ADDRESS_IPV6 + schema: + type: string + default: "::" + - variable: TRANSMISSION_BLOCKLIST_ENABLED + label: TRANSMISSION_BLOCKLIST_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_BLOCKLIST_URL + label: TRANSMISSION_BLOCKLIST_URL + schema: + type: string + default: "http://john.bitsurge.net/public/biglist.p2p.gz" + - variable: TRANSMISSION_CACHE_SIZE_MB + label: TRANSMISSION_CACHE_SIZE_MB + schema: + type: int + default: 4 + - variable: TRANSMISSION_DHT_ENABLED + label: TRANSMISSION_DHT_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_DOWNLOAD_DIR + label: TRANSMISSION_DOWNLOAD_DIR + schema: + type: string + default: "/downloads/complete" + - variable: TRANSMISSION_DOWNLOAD_QUEUE_ENABLED + label: TRANSMISSION_DOWNLOAD_QUEUE_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_DOWNLOAD_QUEUE_SIZE + label: TRANSMISSION_DOWNLOAD_QUEUE_SIZE + schema: + type: int + default: 5 + - variable: TRANSMISSION_ENCRYPTION + label: TRANSMISSION_ENCRYPTION + schema: + type: int + default: 1 + - variable: TRANSMISSION_IDLE_SEEDING_LIMIT + label: TRANSMISSION_IDLE_SEEDING_LIMIT + schema: + type: int + default: 30 + - variable: TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED + label: TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_INCOMPLETE_DIR + label: TRANSMISSION_INCOMPLETE_DIR + schema: + type: string + default: "/downloads/incomplete" + - variable: TRANSMISSION_INCOMPLETE_DIR_ENABLED + label: TRANSMISSION_INCOMPLETE_DIR_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_LPD_ENABLED + label: TRANSMISSION_LPD_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_MESSAGE_LEVEL + label: TRANSMISSION_MESSAGE_LEVEL + schema: + type: int + default: 2 + - variable: TRANSMISSION_PEER_CONGESTION_ALGORITHM + label: TRANSMISSION_PEER_CONGESTION_ALGORITHM + schema: + type: string + default: "" + - variable: TRANSMISSION_PEER_ID_TTL_HOURS + label: TRANSMISSION_PEER_ID_TTL_HOURS + schema: + type: int + default: 6 + - variable: TRANSMISSION_PEER_LIMIT_GLOBAL + label: TRANSMISSION_PEER_LIMIT_GLOBAL + schema: + type: int + default: 200 + - variable: TRANSMISSION_PEER_LIMIT_PER_TORRENT + label: TRANSMISSION_PEER_LIMIT_PER_TORRENT + schema: + type: int + default: 50 + - variable: TRANSMISSION_PEER_PORT + label: TRANSMISSION_PEER_PORT + schema: + type: int + default: 51413 + - variable: TRANSMISSION_PEER_PORT_RANDOM_HIGH + label: TRANSMISSION_PEER_PORT_RANDOM_HIGH + schema: + type: int + default: 65535 + - variable: TRANSMISSION_PEER_PORT_RANDOM_LOW + label: TRANSMISSION_PEER_PORT_RANDOM_LOW + schema: + type: int + default: 49152 + - variable: TRANSMISSION_PEER_PORT_RANDOM_ON_START + label: TRANSMISSION_PEER_PORT_RANDOM_ON_START + schema: + type: boolean + default: false + - variable: TRANSMISSION_PEER_SOCKET_TOS + label: TRANSMISSION_PEER_SOCKET_TOS + schema: + type: string + default: "default" + - variable: TRANSMISSION_PEX_ENABLED + label: TRANSMISSION_PEX_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_PORT_FORWARDING_ENABLED + label: TRANSMISSION_PORT_FORWARDING_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_PREALLOCATION + label: TRANSMISSION_PREALLOCATION + schema: + type: int + default: 1 + - variable: TRANSMISSION_PREFETCH_ENABLED + label: TRANSMISSION_PREFETCH_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_QUEUE_STALLED_ENABLED + label: TRANSMISSION_QUEUE_STALLED_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_QUEUE_STALLED_MINUTES + label: TRANSMISSION_QUEUE_STALLED_MINUTES + schema: + type: int + default: 30 + - variable: TRANSMISSION_RATIO_LIMIT + label: TRANSMISSION_RATIO_LIMIT + schema: + type: int + default: 2 + - variable: TRANSMISSION_RATIO_LIMIT_ENABLED + label: TRANSMISSION_RATIO_LIMIT_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RENAME_PARTIAL_FILES + label: TRANSMISSION_RENAME_PARTIAL_FILES + schema: + type: boolean + default: true + - variable: TRANSMISSION_RPC_AUTHENTICATION_REQUIRED + label: TRANSMISSION_RPC_AUTHENTICATION_REQUIRED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RPC_BIND_ADDRESS + label: TRANSMISSION_RPC_BIND_ADDRESS + schema: + type: string + default: "0.0.0.0" + - variable: TRANSMISSION_RPC_ENABLED + label: TRANSMISSION_RPC_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_RPC_HOST_WHITELIST + label: TRANSMISSION_RPC_HOST_WHITELIST + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_HOST_WHITELIST_ENABLED + label: TRANSMISSION_RPC_HOST_WHITELIST_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RPC_PASSWORD + label: TRANSMISSION_RPC_PASSWORD + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_PORT + label: TRANSMISSION_RPC_PORT + schema: + type: int + default: 9091 + - variable: TRANSMISSION_RPC_URL + label: TRANSMISSION_RPC_URL + schema: + type: string + default: "/" + - variable: TRANSMISSION_RPC_USERNAME + label: TRANSMISSION_RPC_USERNAME + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_WHITELIST + label: TRANSMISSION_RPC_WHITELIST + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_WHITELIST_ENABLED + label: TRANSMISSION_RPC_WHITELIST_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED + label: TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED + label: TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME + label: TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME + schema: + type: string + default: "" + - variable: TRANSMISSION_SEED_QUEUE_ENABLED + label: TRANSMISSION_SEED_QUEUE_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SEED_QUEUE_SIZE + label: TRANSMISSION_SEED_QUEUE_SIZE + schema: + type: int + default: 10 + - variable: TRANSMISSION_SPEED_LIMIT_DOWN + label: TRANSMISSION_SPEED_LIMIT_DOWN + schema: + type: int + default: 100 + - variable: TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED + label: TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SPEED_LIMIT_UP + label: TRANSMISSION_SPEED_LIMIT_UP + schema: + type: int + default: 100 + - variable: TRANSMISSION_SPEED_LIMIT_UP_ENABLED + label: TRANSMISSION_SPEED_LIMIT_UP_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_START_ADDED_TORRENTS + label: TRANSMISSION_START_ADDED_TORRENTS + schema: + type: boolean + default: true + - variable: TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES + label: TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES + schema: + type: boolean + default: false + - variable: TRANSMISSION_UMASK + label: TRANSMISSION_UMASK + schema: + type: int + default: 2 + - variable: TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT + label: TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT + schema: + type: int + default: 14 + - variable: TRANSMISSION_UTP_ENABLED + label: TRANSMISSION_UTP_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_WATCH_DIR + label: TRANSMISSION_WATCH_DIR + schema: + type: string + default: "/watch" + - variable: TRANSMISSION_WATCH_DIR_ENABLED + label: TRANSMISSION_WATCH_DIR_ENABLED + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36019 + - variable: torrent + label: "Torrent Service" + description: "Torrent service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/transmission/6.11.2/templates/common.yaml b/stable/transmission/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..f6d3b6d3a08 --- /dev/null +++ b/stable/transmission/6.11.2/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/transmission/6.11.2/test_values.yaml b/stable/transmission/6.11.2/test_values.yaml new file mode 100644 index 00000000000..64e8f3714a9 --- /dev/null +++ b/stable/transmission/6.11.2/test_values.yaml @@ -0,0 +1,108 @@ +# Default values for Transmission. + +image: + repository: ghcr.io/k8s-at-home/transmission + pullPolicy: IfNotPresent + tag: v3.00 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 9091 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + # TRANSMISSION_ALT_SPEED_DOWN: 50 + # TRANSMISSION_ALT_SPEED_ENABLED: false + # TRANSMISSION_ALT_SPEED_TIME_BEGIN: 540 + # TRANSMISSION_ALT_SPEED_TIME_DAY: 127 + # TRANSMISSION_ALT_SPEED_TIME_ENABLED: false + # TRANSMISSION_ALT_SPEED_TIME_END: 1020 + # TRANSMISSION_ALT_SPEED_UP: 50 + # TRANSMISSION_BIND_ADDRESS_IPV4: "0.0.0.0" + # TRANSMISSION_BIND_ADDRESS_IPV6: "::" + # TRANSMISSION_BLOCKLIST_ENABLED: true + # TRANSMISSION_BLOCKLIST_URL: "http://john.bitsurge.net/public/biglist.p2p.gz" + # TRANSMISSION_CACHE_SIZE_MB: 4 + # TRANSMISSION_DHT_ENABLED: true + # TRANSMISSION_DOWNLOAD_DIR: "/downloads/complete" + # TRANSMISSION_DOWNLOAD_QUEUE_ENABLED: true + # TRANSMISSION_DOWNLOAD_QUEUE_SIZE: 5 + # TRANSMISSION_ENCRYPTION: 1 + # TRANSMISSION_IDLE_SEEDING_LIMIT: 30 + # TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED: false + # TRANSMISSION_INCOMPLETE_DIR: "/downloads/incomplete" + # TRANSMISSION_INCOMPLETE_DIR_ENABLED: true + # TRANSMISSION_LPD_ENABLED: false + # TRANSMISSION_MESSAGE_LEVEL: 2 + # TRANSMISSION_PEER_CONGESTION_ALGORITHM: "" + # TRANSMISSION_PEER_ID_TTL_HOURS: 6 + # TRANSMISSION_PEER_LIMIT_GLOBAL: 200 + # TRANSMISSION_PEER_LIMIT_PER_TORRENT: 50 + # TRANSMISSION_PEER_PORT: 51413 + # TRANSMISSION_PEER_PORT_RANDOM_HIGH: 65535 + # TRANSMISSION_PEER_PORT_RANDOM_LOW: 49152 + # TRANSMISSION_PEER_PORT_RANDOM_ON_START: false + # TRANSMISSION_PEER_SOCKET_TOS: default" + # TRANSMISSION_PEX_ENABLED: true + # TRANSMISSION_PORT_FORWARDING_ENABLED: false + # TRANSMISSION_PREALLOCATION: 1 + # TRANSMISSION_PREFETCH_ENABLED: true + # TRANSMISSION_QUEUE_STALLED_ENABLED: true + # TRANSMISSION_QUEUE_STALLED_MINUTES: 30 + # TRANSMISSION_RATIO_LIMIT: 2 + # TRANSMISSION_RATIO_LIMIT_ENABLED: false + # TRANSMISSION_RENAME_PARTIAL_FILES: true + # TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: false + # TRANSMISSION_RPC_BIND_ADDRESS: "0.0.0.0" + # TRANSMISSION_RPC_ENABLED: true + # TRANSMISSION_RPC_HOST_WHITELIST: "" + # TRANSMISSION_RPC_HOST_WHITELIST_ENABLED: false + # TRANSMISSION_RPC_PASSWORD: "" + # TRANSMISSION_RPC_PORT: 9091 + # TRANSMISSION_RPC_URL: "/transmission/" + # TRANSMISSION_RPC_USERNAME: "" + # TRANSMISSION_RPC_WHITELIST: "" + # TRANSMISSION_RPC_WHITELIST_ENABLED: false + # TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED: true + # TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED: false + # TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME: "" + # TRANSMISSION_SEED_QUEUE_ENABLED: false + # TRANSMISSION_SEED_QUEUE_SIZE: 10 + # TRANSMISSION_SPEED_LIMIT_DOWN: 100 + # TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED: false + # TRANSMISSION_SPEED_LIMIT_UP: 100 + # TRANSMISSION_SPEED_LIMIT_UP_ENABLED: false + # TRANSMISSION_START_ADDED_TORRENTS: true + # TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES: false + # TRANSMISSION_UMASK: 2 + # TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT: 14 + # TRANSMISSION_UTP_ENABLED: true + # TRANSMISSION_WATCH_DIR: "/watch" + # TRANSMISSION_WATCH_DIR_ENABLED: false + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/transmission/6.11.2/values.yaml b/stable/transmission/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/truecommand/6.11.2/CONFIG.md b/stable/truecommand/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/truecommand/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/truecommand/6.11.2/Chart.lock b/stable/truecommand/6.11.2/Chart.lock new file mode 100644 index 00000000000..dd965e6b447 --- /dev/null +++ b/stable/truecommand/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:07.971223775Z" diff --git a/stable/truecommand/6.11.2/Chart.yaml b/stable/truecommand/6.11.2/Chart.yaml new file mode 100644 index 00000000000..19132f78b99 --- /dev/null +++ b/stable/truecommand/6.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: nightly +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Aggregated management of TrueNAS devices +home: https://github.com/truecharts/apps/tree/master/charts/incubator/truecommand +icon: https://www.ixsystems.com/documentation/truecommand/1.2/_static/tv-logo.png +keywords: +- truecommand +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: truecommand +sources: +- https://hub.docker.com/r/ixsystems/truecommand +type: application +version: 6.11.2 diff --git a/stable/truecommand/6.11.2/README.md b/stable/truecommand/6.11.2/README.md new file mode 100644 index 00000000000..e5950243805 --- /dev/null +++ b/stable/truecommand/6.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: nightly](https://img.shields.io/badge/AppVersion-nightly-informational?style=flat-square) + +Aggregated management of TrueNAS devices + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/truecommand/6.11.2/app-readme.md b/stable/truecommand/6.11.2/app-readme.md new file mode 100644 index 00000000000..2ec511489ba --- /dev/null +++ b/stable/truecommand/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Aggregated management of TrueNAS devices + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Aggregated management of TrueNAS devices diff --git a/stable/truecommand/6.11.2/charts/common-6.12.1.tgz b/stable/truecommand/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/truecommand/6.11.2/ix_values.yaml b/stable/truecommand/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..feeb16a6372 --- /dev/null +++ b/stable/truecommand/6.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: "2.0" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/truecommand/6.11.2/questions.yaml b/stable/truecommand/6.11.2/questions.yaml new file mode 100644 index 00000000000..751ed183b8e --- /dev/null +++ b/stable/truecommand/6.11.2/questions.yaml @@ -0,0 +1,1066 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36044 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/truecommand/6.11.2/templates/common.yaml b/stable/truecommand/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/truecommand/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/truecommand/6.11.2/test_values.yaml b/stable/truecommand/6.11.2/test_values.yaml new file mode 100644 index 00000000000..00803865bfe --- /dev/null +++ b/stable/truecommand/6.11.2/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Jackett. + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: "2.0" + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/truecommand/6.11.2/values.yaml b/stable/truecommand/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tvheadend/7.11.2/CONFIG.md b/stable/tvheadend/7.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/tvheadend/7.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/tvheadend/7.11.2/Chart.lock b/stable/tvheadend/7.11.2/Chart.lock new file mode 100644 index 00000000000..efd3837d0eb --- /dev/null +++ b/stable/tvheadend/7.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:13.281643262Z" diff --git a/stable/tvheadend/7.11.2/Chart.yaml b/stable/tvheadend/7.11.2/Chart.yaml new file mode 100644 index 00000000000..8972003a13c --- /dev/null +++ b/stable/tvheadend/7.11.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: TVheadend - a TV streaming server and digital video recorder +home: https://github.com/truecharts/apps/tree/master/charts/incubator/tvheadend +icon: https://avatars.githubusercontent.com/u/1908588?s=200&v=4 +keywords: +- tvheadend +- tv +- streaming +- dvb +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: tvheadend +sources: +- https://github.com/tvheadend/tvheadend +type: application +version: 7.11.2 diff --git a/stable/tvheadend/7.11.2/README.md b/stable/tvheadend/7.11.2/README.md new file mode 100644 index 00000000000..dc01b38157d --- /dev/null +++ b/stable/tvheadend/7.11.2/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 7.11.2](https://img.shields.io/badge/Version-7.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +TVheadend - a TV streaming server and digital video recorder + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/tvheadend/7.11.2/app-readme.md b/stable/tvheadend/7.11.2/app-readme.md new file mode 100644 index 00000000000..2434a94cc52 --- /dev/null +++ b/stable/tvheadend/7.11.2/app-readme.md @@ -0,0 +1,4 @@ +TVheadend - a TV streaming server and digital video recorder + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +TVheadend - a TV streaming server and digital video recorder diff --git a/stable/tvheadend/7.11.2/charts/common-6.12.1.tgz b/stable/tvheadend/7.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/tvheadend/7.11.2/ix_values.yaml b/stable/tvheadend/7.11.2/ix_values.yaml new file mode 100644 index 00000000000..9f7637469cc --- /dev/null +++ b/stable/tvheadend/7.11.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/tvheadend + pullPolicy: IfNotPresent + tag: version-63784405 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/tvheadend/7.11.2/questions.yaml b/stable/tvheadend/7.11.2/questions.yaml new file mode 100644 index 00000000000..bd58108abfb --- /dev/null +++ b/stable/tvheadend/7.11.2/questions.yaml @@ -0,0 +1,1161 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9981 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36042 + - variable: htsp + label: "HTSP Service" + description: "HTSP service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: htsp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9982 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36043 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/tvheadend/7.11.2/templates/common.yaml b/stable/tvheadend/7.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/tvheadend/7.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tvheadend/7.11.2/test_values.yaml b/stable/tvheadend/7.11.2/test_values.yaml new file mode 100644 index 00000000000..b517736201d --- /dev/null +++ b/stable/tvheadend/7.11.2/test_values.yaml @@ -0,0 +1,38 @@ +# Default values for tvheadend. + +image: + repository: linuxserver/tvheadend + pullPolicy: IfNotPresent + tag: version-63784405 + +strategy: + type: Recreate + +# See https://github.com/linuxserver/docker-tvheadend#parameters +env: {} + # PUID: 1000 + # PGID: 1000 + # TZ: Europe/London + # RUN_OPTS: + +service: + main: + ports: + main: + port: 9981 + htsp: + enabled: true + type: ClusterIP + ports: + htsp: + enabled: true + port: 9982 + protocol: TCP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/tvheadend/7.11.2/values.yaml b/stable/tvheadend/7.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/unifi/6.11.2/CONFIG.md b/stable/unifi/6.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/unifi/6.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/unifi/6.11.2/Chart.lock b/stable/unifi/6.11.2/Chart.lock new file mode 100644 index 00000000000..41416aab321 --- /dev/null +++ b/stable/unifi/6.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:18.595105482Z" diff --git a/stable/unifi/6.11.2/Chart.yaml b/stable/unifi/6.11.2/Chart.yaml new file mode 100644 index 00000000000..334751a00be --- /dev/null +++ b/stable/unifi/6.11.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Ubiquiti Network's Unifi Controller +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unifi +icon: https://dl.ubnt.com/press/logo-UniFi.png +keywords: +- ubiquiti +- unifi +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unifi +sources: +- https://github.com/jacobalberty/unifi-docker +- https://unifi-network.ui.com +type: application +version: 6.11.2 diff --git a/stable/unifi/6.11.2/README.md b/stable/unifi/6.11.2/README.md new file mode 100644 index 00000000000..8d27549e24c --- /dev/null +++ b/stable/unifi/6.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.2](https://img.shields.io/badge/Version-6.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Ubiquiti Network's Unifi Controller + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/unifi/6.11.2/app-readme.md b/stable/unifi/6.11.2/app-readme.md new file mode 100644 index 00000000000..6d1448f6aa5 --- /dev/null +++ b/stable/unifi/6.11.2/app-readme.md @@ -0,0 +1,4 @@ +Ubiquiti Network's Unifi Controller + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Ubiquiti Network's Unifi Controller diff --git a/stable/unifi/6.11.2/charts/common-6.12.1.tgz b/stable/unifi/6.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/unifi/6.11.2/ix_values.yaml b/stable/unifi/6.11.2/ix_values.yaml new file mode 100644 index 00000000000..c32ec8b42a3 --- /dev/null +++ b/stable/unifi/6.11.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jacobalberty/unifi + tag: v6.2.26 + pullPolicy: IfNotPresent + +envTpl: + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/unifi/6.11.2/questions.yaml b/stable/unifi/6.11.2/questions.yaml new file mode 100644 index 00000000000..8567299d258 --- /dev/null +++ b/stable/unifi/6.11.2/questions.yaml @@ -0,0 +1,1257 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36035 + - variable: comm + label: "Unifi Device Communication Service" + description: "Unifi Device Communication Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: stun + label: "STUN Device Communication Service" + description: "STUN Device Communication Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: udp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3478 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/unifi" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/unifi/6.11.2/templates/common.yaml b/stable/unifi/6.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/unifi/6.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/unifi/6.11.2/test_values.yaml b/stable/unifi/6.11.2/test_values.yaml new file mode 100644 index 00000000000..28ecee7e990 --- /dev/null +++ b/stable/unifi/6.11.2/test_values.yaml @@ -0,0 +1,50 @@ +# Default values for Unifi. + +image: + repository: jacobalberty/unifi + tag: v6.2.26 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +envTpl: + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" + +service: + main: + ports: + main: + protocol: HTTPS + port: 8443 + comm: + enabled: true + ports: + tcp: + enabled: true + port: 8080 + targetPort: 8080 + protocol: TCP + stun: + enabled: true + ports: + udp: + enabled: true + port: 3478 + targetPort: 3478 + protocol: UDP + +env: + # TZ: + PUID: "568" + PGID: "568" + +persistence: + config: + enabled: true + mountPath: "/unifi" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/unifi/6.11.2/values.yaml b/stable/unifi/6.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/unpackerr/1.11.2/CONFIG.md b/stable/unpackerr/1.11.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/unpackerr/1.11.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/unpackerr/1.11.2/Chart.lock b/stable/unpackerr/1.11.2/Chart.lock new file mode 100644 index 00000000000..121a30a16e8 --- /dev/null +++ b/stable/unpackerr/1.11.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:23.876604483Z" diff --git a/stable/unpackerr/1.11.2/Chart.yaml b/stable/unpackerr/1.11.2/Chart.yaml new file mode 100644 index 00000000000..16ffe1fdce2 --- /dev/null +++ b/stable/unpackerr/1.11.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: This application runs as a daemon on your download host. It checks for + completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may + import them +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unpackrr +icon: https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/unpackerr-logo-text.png +keywords: +- unpackerr +- sonarr +- radarr +- lidarr +- readarr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unpackerr +sources: +- https://github.com/davidnewhall/unpackerr +- https://hub.docker.com/r/golift/unpackerr +type: application +version: 1.11.2 diff --git a/stable/unpackerr/1.11.2/README.md b/stable/unpackerr/1.11.2/README.md new file mode 100644 index 00000000000..fc2a8c0aa58 --- /dev/null +++ b/stable/unpackerr/1.11.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.11.2](https://img.shields.io/badge/Version-1.11.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +This application runs as a daemon on your download host. It checks for completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may import them + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/unpackerr/1.11.2/app-readme.md b/stable/unpackerr/1.11.2/app-readme.md new file mode 100644 index 00000000000..ad2f49ba6ca --- /dev/null +++ b/stable/unpackerr/1.11.2/app-readme.md @@ -0,0 +1,4 @@ +This application runs as a daemon on your download host. It checks for completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may import them + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +This application runs as a daemon on your download host. It checks for diff --git a/stable/unpackerr/1.11.2/charts/common-6.12.1.tgz b/stable/unpackerr/1.11.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/unpackerr/1.11.2/ix_values.yaml b/stable/unpackerr/1.11.2/ix_values.yaml new file mode 100644 index 00000000000..f94e0877d86 --- /dev/null +++ b/stable/unpackerr/1.11.2/ix_values.yaml @@ -0,0 +1,32 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.9.7 + +service: + main: + enabled: false + ports: + main: + enabled: false + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/unpackerr/1.11.2/questions.yaml b/stable/unpackerr/1.11.2/questions.yaml new file mode 100644 index 00000000000..baefc94c0bd --- /dev/null +++ b/stable/unpackerr/1.11.2/questions.yaml @@ -0,0 +1,978 @@ +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: "Advanced" + description: "Advanced Configuration" + +questions: + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: downoads + label: "App downoads Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/downoads" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/unpackerr/1.11.2/templates/common.yaml b/stable/unpackerr/1.11.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/unpackerr/1.11.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/unpackerr/1.11.2/test_values.yaml b/stable/unpackerr/1.11.2/test_values.yaml new file mode 100644 index 00000000000..8e823d75dd7 --- /dev/null +++ b/stable/unpackerr/1.11.2/test_values.yaml @@ -0,0 +1,53 @@ +# Default values for Sonarr. + +image: + repository: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.9.7 + +strategy: + type: Recreate + +service: + main: + enabled: false + ports: + main: + enabled: false + +portal: + enabled: false + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + + +persistence: + downloads: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /downloads + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" diff --git a/stable/unpackerr/1.11.2/values.yaml b/stable/unpackerr/1.11.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/vaultwarden/5.0.1/CONFIG.md b/stable/vaultwarden/5.0.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/vaultwarden/5.0.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/vaultwarden/5.0.1/Chart.lock b/stable/vaultwarden/5.0.1/Chart.lock new file mode 100644 index 00000000000..b7a822b0734 --- /dev/null +++ b/stable/vaultwarden/5.0.1/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +digest: sha256:8f143052e2c3c03042badc1bebcdd961d592c6863d53176fadf2a7b89044874f +generated: "2021-08-31T03:20:30.221000768Z" diff --git a/stable/vaultwarden/5.0.1/Chart.yaml b/stable/vaultwarden/5.0.1/Chart.yaml new file mode 100644 index 00000000000..f71bd2284f9 --- /dev/null +++ b/stable/vaultwarden/5.0.1/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.5.1 +deprecated: false +description: Unofficial Bitwarden compatible server written in Rust +home: https://github.com/truecharts/apps/tree/master/charts/stable/vaultwarden +icon: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png +keywords: +- bitwarden +- bitwardenrs +- bitwarden_rs +- vaultwarden +- password +- rust +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: vaultwarden +sources: +- https://github.com/dani-garcia/vaultwarden +type: application +version: 5.0.1 diff --git a/stable/vaultwarden/5.0.1/README.md b/stable/vaultwarden/5.0.1/README.md new file mode 100644 index 00000000000..f3d21f32d22 --- /dev/null +++ b/stable/vaultwarden/5.0.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 5.0.1](https://img.shields.io/badge/Version-5.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Unofficial Bitwarden compatible server written in Rust + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | +| https://truecharts.org/ | postgresql | 1.5.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/vaultwarden/5.0.1/app-readme.md b/stable/vaultwarden/5.0.1/app-readme.md new file mode 100644 index 00000000000..badd081d742 --- /dev/null +++ b/stable/vaultwarden/5.0.1/app-readme.md @@ -0,0 +1,4 @@ +Unofficial Bitwarden compatible server written in Rust + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Unofficial Bitwarden compatible server written in Rust diff --git a/stable/vaultwarden/5.0.1/charts/common-6.12.1.tgz b/stable/vaultwarden/5.0.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/5.0.1/charts/postgresql-1.5.1.tgz b/stable/vaultwarden/5.0.1/charts/postgresql-1.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8e827c8eff81247e723d1304eef80ec4ffb6a818 GIT binary patch literal 32168 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/5.0.1/ix_values.yaml b/stable/vaultwarden/5.0.1/ix_values.yaml new file mode 100644 index 00000000000..d6af750a431 --- /dev/null +++ b/stable/vaultwarden/5.0.1/ix_values.yaml @@ -0,0 +1,55 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.22.2 + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: "{{ .Release.Name }}-vaultwardenconfig" + - secretRef: + name: "{{ .Release.Name }}-vaultwardensecret" + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: false + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + retries: 30 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: "{{ .Release.Name }}-dbcreds" + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/vaultwarden/5.0.1/questions.yaml b/stable/vaultwarden/5.0.1/questions.yaml new file mode 100644 index 00000000000..4f1632e1529 --- /dev/null +++ b/stable/vaultwarden/5.0.1/questions.yaml @@ -0,0 +1,1497 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: vaultwarden + label: "" + group: "App Configuration" + schema: + type: dict + attrs: + - variable: yubico + label: "Yubico OTP authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Yubico OTP authentication" + description: "Please refer to the manual at: https://github.com/dani-garcia/vaultwarden/wiki/Enabling-Yubikey-OTP-authentication" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: server + label: "Yubico server" + description: "Defaults to YubiCloud" + schema: + type: string + default: "" + - variable: clientId + label: "Yubico ID" + schema: + type: string + default: "" + - variable: secretKey + label: "Yubico Secret Key" + schema: + type: string + default: "" + - variable: admin + label: "Admin Portal" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Admin Portal" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: disableAdminToken + label: "Make Accessible Without Password/Token" + schema: + type: boolean + default: false + - variable: token + label: "Admin Portal Password/Token" + description: "Will be automatically generated if not defined" + schema: + type: string + default: "" + - variable: icons + label: "Icon Download Settings" + schema: + type: dict + attrs: + - variable: disableDownload + label: "Disable Icon Download" + description: "Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache)" + schema: + type: boolean + default: false + - variable: cache + label: "Cache time-to-live" + description: "Cache time-to-live for icons fetched. 0 means no purging" + schema: + type: int + default: 2592000 + - variable: token + label: "Failed Downloads Cache time-to-live" + description: "Cache time-to-live for icons that were not available. 0 means no purging." + schema: + type: int + default: 2592000 + - variable: log + label: "Logging" + schema: + type: dict + attrs: + - variable: level + label: "Log level" + schema: + type: string + default: "info" + required: true + enum: + - value: "trace" + description: "trace" + - value: "debug" + description: "debug" + - value: "info" + description: "info" + - value: "warn" + description: "warn" + - value: "error" + description: "error" + - value: "off" + description: "off" + - variable: file + label: "Log-File Location" + schema: + type: string + default: "" + - variable: smtp + label: "SMTP Settings (Email)" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable SMTP Support" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: "SMTP hostname" + schema: + type: string + required: true + default: "" + - variable: from + label: "SMTP sender e-mail address" + schema: + type: string + required: true + default: "" + - variable: fromName + label: "SMTP sender name" + schema: + type: string + required: true + default: "" + - variable: user + label: "SMTP username" + schema: + type: string + required: true + default: "" + - variable: password + label: "SMTP password" + description: "Required is user is specified, ignored if no user provided" + schema: + type: string + default: "" + - variable: ssl + label: "Enable SSL connection" + schema: + type: boolean + default: true + - variable: port + label: "SMTP port" + description: "Usually: 25 without SSL, 587 with SSL" + schema: + type: int + default: 587 + - variable: authMechanism + label: "SMTP Authentication Mechanisms" + description: "Comma-separated options: Plain, Login and Xoauth2" + schema: + type: string + default: "Plain" + - variable: heloName + label: "SMTP HELO - Hostname" + description: "Hostname to be sent for SMTP HELO. Defaults to pod name" + schema: + type: string + default: "" + - variable: port + label: "SMTP timeout" + schema: + type: int + default: 15 + - variable: invalidHostname + label: "Accept Invalid Hostname" + description: "Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: invalidCertificate + label: "Accept Invalid Certificate" + description: "Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: allowSignups + label: "Allow Signup" + description: "Allow any user to sign-up: https://github.com/dani-garcia/vaultwarden/wiki/Disable-registration-of-new-users" + schema: + type: boolean + default: true + - variable: allowInvitation + label: "Always allow Invitation" + description: "Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/vaultwarden/wiki/Disable-invitations" + schema: + type: boolean + default: true + - variable: defaultInviteName + label: "Default Invite Organisation Name" + description: "Default organization name in invitation e-mails that are not coming from a specific organization." + schema: + type: string + default: "" + - variable: showPasswordHint + label: "Show password hints" + description: "https://github.com/dani-garcia/vaultwarden/wiki/Password-hint-display" + schema: + type: boolean + default: true + - variable: signupwhitelistenable + label: "Enable Signup Whitelist" + description: "allowSignups is ignored if set" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: signupDomains + label: "Signup Whitelist Domains" + schema: + type: list + default: [] + items: + - variable: domain + label: "Domain" + schema: + type: string + default: "" + - variable: verifySignup + label: "Verifiy Signup" + description: "Verify e-mail before login is enabled. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: requireEmail + label: "Block Login if email fails" + description: "When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: emailAttempts + label: "Email token reset attempts" + description: "Maximum attempts before an email token is reset and a new email will need to be sent" + schema: + type: int + default: 3 + - variable: emailTokenExpiration + label: "Email token validity in seconds" + schema: + type: int + default: 600 + - variable: enableWebsockets + label: "Enable Websocket Connections" + description: "Enable Websockets for notification. https://github.com/dani-garcia/vaultwarden/wiki/Enabling-WebSocket-notifications" + schema: + type: boolean + default: true + hidden: true + - variable: enableWebVault + label: "Enable Webvault" + description: "Enable Web Vault (static content). https://github.com/dani-garcia/vaultwarden/wiki/Disabling-or-overriding-the-Vault-interface-hosting" + schema: + type: boolean + default: true + - variable: orgCreationUsers + label: "Limit Organisation Creation to (users)" + description: "Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users." + schema: + type: string + default: "all" + - variable: attachmentLimitOrg + label: "Limit Attachment Disk Usage per Organisation" + schema: + type: string + default: "" + - variable: attachmentLimitUser + label: "Limit Attachment Disk Usage per User" + schema: + type: string + default: "" + - variable: hibpApiKey + label: "HaveIBeenPwned API Key" + description: "Can be purchased at https://haveibeenpwned.com/API/Key" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36000 + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3012 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36001 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/vaultwarden/5.0.1/templates/_configmap.tpl b/stable/vaultwarden/5.0.1/templates/_configmap.tpl new file mode 100644 index 00000000000..aa7ddb01bf5 --- /dev/null +++ b/stable/vaultwarden/5.0.1/templates/_configmap.tpl @@ -0,0 +1,116 @@ +{{/* Define the configmap */}} +{{- define "vaultwarden.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-vaultwardenconfig +data: + ROCKET_PORT: "8080" + SIGNUPS_ALLOWED: {{ .Values.vaultwarden.allowSignups | quote }} + {{- if .Values.vaultwarden.signupDomains }} + SIGNUPS_DOMAINS_WHITELIST: {{ join "," .Values.vaultwarden.signupDomains | quote }} + {{- end }} + {{- if and (eq .Values.vaultwarden.verifySignup true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Signup verification requires SMTP to be enabled" nil}}{{end}} + SIGNUPS_VERIFY: {{ .Values.vaultwarden.verifySignup | quote }} + {{- if and (eq .Values.vaultwarden.requireEmail true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Requiring emails for login depends on SMTP" nil}}{{end}} + REQUIRE_DEVICE_EMAIL: {{ .Values.vaultwarden.requireEmail | quote }} + {{- if .Values.vaultwarden.emailAttempts }} + EMAIL_ATTEMPTS_LIMIT: {{ .Values.vaultwarden.emailAttempts | quote }} + {{- end }} + {{- if .Values.vaultwarden.emailTokenExpiration }} + EMAIL_EXPIRATION_TIME: {{ .Values.vaultwarden.emailTokenExpiration | quote }} + {{- end }} + INVITATIONS_ALLOWED: {{ .Values.vaultwarden.allowInvitation | quote }} + {{- if .Values.vaultwarden.defaultInviteName }} + INVITATION_ORG_NAME: {{ .Values.vaultwarden.defaultInviteName | quote }} + {{- end }} + SHOW_PASSWORD_HINT: {{ .Values.vaultwarden.showPasswordHint | quote }} + WEBSOCKET_ENABLED: {{ .Values.vaultwarden.enableWebsockets | quote }} + WEB_VAULT_ENABLED: {{ .Values.vaultwarden.enableWebVault | quote }} + ORG_CREATION_USERS: {{ .Values.vaultwarden.orgCreationUsers | quote }} + {{- if .Values.vaultwarden.attachmentLimitOrg }} + ORG_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitOrg | quote }} + {{- end }} + {{- if .Values.vaultwarden.attachmentLimitUser }} + USER_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitUser | quote }} + {{- end }} + {{- if .Values.vaultwarden.hibpApiKey }} + HIBP_API_KEY: {{ .Values.vaultwarden.hibpApiKey | quote }} + {{- end }} + {{- include "vaultwarden.dbTypeValid" . }} + {{- if .Values.database.retries }} + DB_CONNECTION_RETRIES: {{ .Values.database.retries | quote }} + {{- end }} + {{- if .Values.database.maxConnections }} + DATABASE_MAX_CONNS: {{ .Values.database.maxConnections | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.smtp.enabled true }} + SMTP_HOST: {{ required "SMTP host is required to enable SMTP" .Values.vaultwarden.smtp.host | quote }} + SMTP_FROM: {{ required "SMTP sender address ('from') is required to enable SMTP" .Values.vaultwarden.smtp.from | quote }} + {{- if .Values.vaultwarden.smtp.fromName }} + SMTP_FROM_NAME: {{ .Values.vaultwarden.smtp.fromName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.ssl }} + SMTP_SSL: {{ .Values.vaultwarden.smtp.ssl | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.port }} + SMTP_PORT: {{ .Values.vaultwarden.smtp.port | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.authMechanism }} + SMTP_AUTH_MECHANISM: {{ .Values.vaultwarden.smtp.authMechanism | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.heloName }} + HELO_NAME: {{ .Values.vaultwarden.smtp.heloName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.timeout }} + SMTP_TIMEOUT: {{ .Values.vaultwarden.smtp.timeout | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidHostname }} + SMTP_ACCEPT_INVALID_HOSTNAMES: {{ .Values.vaultwarden.smtp.invalidHostname | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidCertificate }} + SMTP_ACCEPT_INVALID_CERTS: {{ .Values.vaultwarden.smtp.invalidCertificate | quote }} + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.log.file }} + LOG_FILE: {{ .Values.vaultwarden.log.file | quote }} + {{- end }} + {{- if or .Values.vaultwarden.log.level .Values.vaultwarden.log.timeFormat }} + EXTENDED_LOGGING: "true" + {{- end }} + {{- if .Values.vaultwarden.log.level }} + {{- include "vaultwarden.logLevelValid" . }} + LOG_LEVEL: {{ .Values.vaultwarden.log.level | quote }} + {{- end }} + {{- if .Values.vaultwarden.log.timeFormat }} + LOG_TIMESTAMP_FORMAT: {{ .Values.vaultwarden.log.timeFormat | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.disableDownload }} + DISABLE_ICON_DOWNLOAD: {{ .Values.vaultwarden.icons.disableDownload | quote }} + {{- if and (not .Values.vaultwarden.icons.cache) (eq .Values.vaultwarden.icons.disableDownload "true") }} + ICON_CACHE_TTL: "0" + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.icons.cache }} + ICON_CACHE_TTL: {{ .Values.vaultwarden.icons.cache | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.cacheFailed }} + ICON_CACHE_NEGTTL: {{ .Values.vaultwarden.icons.cacheFailed | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.admin.enabled true }} + {{- if eq .Values.vaultwarden.admin.disableAdminToken true }} + DISABLE_ADMIN_TOKEN: "true" + {{- end }} + {{- end }} + {{- if eq .Values.vaultwarden.yubico.enabled true }} + {{- if .Values.vaultwarden.yubico.server }} + YUBICO_SERVER: {{ .Values.vaultwarden.yubico.server | quote }} + {{- end }} + {{- end }} + {{- if eq .Values.database.type "sqlite" }} + ENABLE_DB_WAL: {{ .Values.database.wal | quote }} + {{- else }} + ENABLE_DB_WAL: "false" + {{- end }} +{{- end -}} diff --git a/stable/vaultwarden/5.0.1/templates/_secrets.tpl b/stable/vaultwarden/5.0.1/templates/_secrets.tpl new file mode 100644 index 00000000000..1cb019e48f3 --- /dev/null +++ b/stable/vaultwarden/5.0.1/templates/_secrets.tpl @@ -0,0 +1,59 @@ +{{/* Define the secrets */}} +{{- define "vaultwarden.secrets" -}} + +{{- $adminToken := "" }} +{{- if eq .Values.vaultwarden.admin.enabled true }} +{{- $adminToken = .Values.vaultwarden.admin.token | default (randAlphaNum 48) | b64enc | quote }} +{{- end -}} + +{{- $smtpUser := "" }} +{{- if and (eq .Values.vaultwarden.smtp.enabled true ) (.Values.vaultwarden.smtp.user) }} +{{- $smtpUser = .Values.vaultwarden.smtp.user | b64enc | quote }} +{{- end -}} + +{{- $yubicoClientId := "" }} +{{- if eq .Values.vaultwarden.yubico.enabled true }} +{{- $yubicoClientId = required "Yubico Client ID required" .Values.vaultwarden.yubico.clientId | toString | b64enc | quote }} +{{- end -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-vaultwardensecret +data: + {{- if ne $adminToken "" }} + ADMIN_TOKEN: {{ $adminToken }} + {{- end }} + {{- if ne $smtpUser "" }} + SMTP_USERNAME: {{ $smtpUser }} + SMTP_PASSWORD: {{ required "Must specify SMTP password" .Values.vaultwarden.smtp.password | b64enc | quote }} + {{- end }} + {{- if ne $yubicoClientId "" }} + YUBICO_CLIENT_ID: {{ $yubicoClientId }} + YUBICO_SECRET_KEY: {{ required "Yubico Secret Key required" .Values.vaultwarden.yubico.secretKey | b64enc | quote }} + {{- end }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: {{ .Release.Name }}-dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" .Release.Name "dbcreds" ) | quote ) }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/stable/vaultwarden/5.0.1/templates/_validate.tpl b/stable/vaultwarden/5.0.1/templates/_validate.tpl new file mode 100644 index 00000000000..e4832c2f6e5 --- /dev/null +++ b/stable/vaultwarden/5.0.1/templates/_validate.tpl @@ -0,0 +1,17 @@ +{{/* +Ensure valid DB type is select, defaults to SQLite +*/}} +{{- define "vaultwarden.dbTypeValid" -}} +{{- if not (or (eq .Values.database.type "postgresql") (eq .Values.database.type "mysql") (eq .Values.database.type "sqlite")) }} +{{- required "Invalid database type" nil }} +{{- end -}} +{{- end -}} + +{{/* +Ensure log type is valid +*/}} +{{- define "vaultwarden.logLevelValid" -}} +{{- if not (or (eq .Values.vaultwarden.log.level "trace") (eq .Values.vaultwarden.log.level "debug") (eq .Values.vaultwarden.log.level "info") (eq .Values.vaultwarden.log.level "warn") (eq .Values.vaultwarden.log.level "error") (eq .Values.vaultwarden.log.level "off")) }} +{{- required "Invalid log level" nil }} +{{- end }} +{{- end }} diff --git a/stable/vaultwarden/5.0.1/templates/common.yaml b/stable/vaultwarden/5.0.1/templates/common.yaml new file mode 100644 index 00000000000..74f04d2d8c2 --- /dev/null +++ b/stable/vaultwarden/5.0.1/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for vaultwarden */}} +{{- include "vaultwarden.configmap" . }} + +{{/* Render secrets for vaultwarden */}} +{{- include "vaultwarden.secrets" . }} diff --git a/stable/vaultwarden/5.0.1/test_values.yaml b/stable/vaultwarden/5.0.1/test_values.yaml new file mode 100644 index 00000000000..28348b1942e --- /dev/null +++ b/stable/vaultwarden/5.0.1/test_values.yaml @@ -0,0 +1,161 @@ +# Default values for Bitwarden. + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.22.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + ws: + ports: + ws: + enabled: true + port: 3012 + +env: {} + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: "{{ .Release.Name }}-vaultwardenconfig" + - secretRef: + name: "{{ .Release.Name }}-vaultwardensecret" + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: "{{ .Release.Name }}-dbcreds" + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: true + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + # retries: 15 + +# Set Bitwarden_rs application variables +vaultwarden: + # Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users + allowSignups: true + ## Whitelist domains allowed to sign-up. 'allowSignups' is ignored if set. + # signupDomains: + # - domain.tld + # Verify e-mail before login is enabled. SMTP must be enabled. + verifySignup: false + # When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled. + requireEmail: false + ## Maximum attempts before an email token is reset and a new email will need to be sent. + # emailAttempts: 3 + ## Email token validity in seconds. + # emailTokenExpiration: 600 + # Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations + allowInvitation: true + # Show password hints: https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display + ## Default organization name in invitation e-mails that are not coming from a specific organization. + # defaultInviteName: "" + showPasswordHint: true + # Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications + # Redirect HTTP path "/notifications/hub" to port 3012. Ingress/IngressRoute controllers are automatically configured. + enableWebsockets: true + # Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting + enableWebVault: true + # Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users. + orgCreationUsers: all + ## Limit attachment disk usage per organization. + # attachmentLimitOrg: + ## Limit attachment disk usage per user. + # attachmentLimitUser: + ## HaveIBeenPwned API Key. Can be purchased at https://haveibeenpwned.com/API/Key. + # hibpApiKey: + + admin: + # Enable admin portal. + enabled: false + # Disabling the admin token will make the admin portal accessible to anyone, use carefully: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-admin-token + disableAdminToken: false + ## Token for admin login, will be generated if not defined. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-admin-page + # token: + + # Enable SMTP. https://github.com/dani-garcia/bitwarden_rs/wiki/SMTP-configuration + smtp: + enabled: false + # SMTP hostname, required if SMTP is enabled. + host: "" + # SMTP sender e-mail address, required if SMTP is enabled. + from: "" + ## SMTP sender name, defaults to 'Bitwarden_RS'. + # fromName: "" + ## Enable SSL connection. + # ssl: true + ## SMTP port. Defaults to 25 without SSL, 587 with SSL. + # port: 587 + ## SMTP Authentication Mechanisms. Comma-separated options: 'Plain', 'Login' and 'Xoauth2'. Defaults to 'Plain'. + # authMechanism: Plain + ## Hostname to be sent for SMTP HELO. Defaults to pod name. + # heloName: "" + ## SMTP timeout. + # timeout: 15 + ## Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidHostname: false + ## Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidCertificate: false + ## SMTP username. + # user: "" + ## SMTP password. Required is user is specified, ignored if no user provided. + # password: "" + + ## Enable Yubico OTP authentication. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication + yubico: + enabled: false + ## Yubico server. Defaults to YubiCloud. + # server: + ## Yubico ID and Secret Key. + # clientId: + # secretKey: + + ## Logging options. https://github.com/dani-garcia/bitwarden_rs/wiki/Logging + log: + # Log to file. + file: "" + # Log level. Options are "trace", "debug", "info", "warn", "error" or "off". + level: "trace" + ## Log timestamp format. See https://docs.rs/chrono/0.4.15/chrono/format/strftime/index.html. Defaults to time in milliseconds. + # timeFormat: "" + + icons: + # Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache). TTL will default to zero. + disableDownload: false + ## Cache time-to-live for icons fetched. 0 means no purging. + # cache: 2592000 + ## Cache time-to-live for icons that were not available. 0 means no purging. + # cacheFailed: 259200 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: "{{ .Release.Name }}-dbcreds" diff --git a/stable/vaultwarden/5.0.1/values.yaml b/stable/vaultwarden/5.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/xteve/1.9.2/CONFIG.md b/stable/xteve/1.9.2/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/xteve/1.9.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/xteve/1.9.2/Chart.lock b/stable/xteve/1.9.2/Chart.lock new file mode 100644 index 00000000000..c1670c3b306 --- /dev/null +++ b/stable/xteve/1.9.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-31T03:20:36.840231067Z" diff --git a/stable/xteve/1.9.2/Chart.yaml b/stable/xteve/1.9.2/Chart.yaml new file mode 100644 index 00000000000..ae176163286 --- /dev/null +++ b/stable/xteve/1.9.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: M3U Proxy for Plex DVR and Emby Live TV. +home: https://github.com/truechartsapps/tree/master/charts/incubator/xteve +icon: https://raw.githubusercontent.com/xteve-project/xTeVe/master/html/img/logo_b_880x200.jpg +keywords: +- xteve +- iptv +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: xteve +sources: +- https://github.com/xteve-project/xTeVe +- https://github.com/k8s-at-home/container-images +version: 1.9.2 diff --git a/stable/xteve/1.9.2/README.md b/stable/xteve/1.9.2/README.md new file mode 100644 index 00000000000..efd2dedd813 --- /dev/null +++ b/stable/xteve/1.9.2/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.9.2](https://img.shields.io/badge/Version-1.9.2-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +M3U Proxy for Plex DVR and Emby Live TV. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/xteve/1.9.2/app-readme.md b/stable/xteve/1.9.2/app-readme.md new file mode 100644 index 00000000000..cb6dd4c03dc --- /dev/null +++ b/stable/xteve/1.9.2/app-readme.md @@ -0,0 +1,4 @@ +M3U Proxy for Plex DVR and Emby Live TV. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +M3U Proxy for Plex DVR and Emby Live TV. diff --git a/stable/xteve/1.9.2/charts/common-6.12.1.tgz b/stable/xteve/1.9.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/xteve/1.9.2/ix_values.yaml b/stable/xteve/1.9.2/ix_values.yaml new file mode 100644 index 00000000000..ad5c311aa5b --- /dev/null +++ b/stable/xteve/1.9.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/xteve + pullPolicy: IfNotPresent + tag: v2.2.0.200 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/xteve/1.9.2/questions.yaml b/stable/xteve/1.9.2/questions.yaml new file mode 100644 index 00000000000..f5d43263a2a --- /dev/null +++ b/stable/xteve/1.9.2/questions.yaml @@ -0,0 +1,1104 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 34400 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 34400 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36087 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/xteve/1.9.2/templates/common.yaml b/stable/xteve/1.9.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/xteve/1.9.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/xteve/1.9.2/test_values.yaml b/stable/xteve/1.9.2/test_values.yaml new file mode 100644 index 00000000000..b7f896590c6 --- /dev/null +++ b/stable/xteve/1.9.2/test_values.yaml @@ -0,0 +1,36 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/xteve + # -- image tag + tag: v2.2.0.200 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +service: + main: + ports: + main: + port: 34400 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/xteve/1.9.2/values.yaml b/stable/xteve/1.9.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/zwavejs2mqtt/6.11.3/CONFIG.md b/stable/zwavejs2mqtt/6.11.3/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/zwavejs2mqtt/6.11.3/Chart.lock b/stable/zwavejs2mqtt/6.11.3/Chart.lock new file mode 100644 index 00000000000..d9f67963fd0 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-31T03:20:42.12662745Z" diff --git a/stable/zwavejs2mqtt/6.11.3/Chart.yaml b/stable/zwavejs2mqtt/6.11.3/Chart.yaml new file mode 100644 index 00000000000..0b4593d566f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS + and Vue +home: https://github.com/truecharts/apps/tree/master/charts/stable/zwavejs2mqtt +icon: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png +keywords: +- zwavejs2mqtt +- zwave-js +- z-wave +- zwave +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: zwavejs2mqtt +sources: +- https://github.com/zwave-js/zwavejs2mqtt +- https://hub.docker.com/r/zwavejs/zwavejs2mqtt +type: application +version: 6.11.3 diff --git a/stable/zwavejs2mqtt/6.11.3/README.md b/stable/zwavejs2mqtt/6.11.3/README.md new file mode 100644 index 00000000000..19eeea7875a --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.11.3](https://img.shields.io/badge/Version-6.11.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.12.1 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/zwavejs2mqtt/6.11.3/app-readme.md b/stable/zwavejs2mqtt/6.11.3/app-readme.md new file mode 100644 index 00000000000..309c7f0168f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/app-readme.md @@ -0,0 +1,4 @@ +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS diff --git a/stable/zwavejs2mqtt/6.11.3/charts/common-6.12.1.tgz b/stable/zwavejs2mqtt/6.11.3/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/6.11.3/ix_values.yaml b/stable/zwavejs2mqtt/6.11.3/ix_values.yaml new file mode 100644 index 00000000000..d09ceb1865c --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/ix_values.yaml @@ -0,0 +1,58 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: zwavejs/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 5.5.2 + +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 +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/zwavejs2mqtt/6.11.3/questions.yaml b/stable/zwavejs2mqtt/6.11.3/questions.yaml new file mode 100644 index 00000000000..e4df47c0dc1 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/questions.yaml @@ -0,0 +1,1233 @@ +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: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + 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" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + 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: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36022 + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: 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: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36023 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + 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: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/src/app/store" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + 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: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + 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" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "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: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + 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: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + 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: + 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: + 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: + 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: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + 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: + 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: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + 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" + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + 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: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - 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 diff --git a/stable/zwavejs2mqtt/6.11.3/templates/common.yaml b/stable/zwavejs2mqtt/6.11.3/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/zwavejs2mqtt/6.11.3/test_values.yaml b/stable/zwavejs2mqtt/6.11.3/test_values.yaml new file mode 100644 index 00000000000..04bc328662f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.3/test_values.yaml @@ -0,0 +1,105 @@ +# Default values for zwavejs2mqtt. +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/charts/tree/master/charts/common + +image: + repository: zwavejs/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 5.5.2 + +strategy: + type: Recreate + +# 5=tty 20=dialout 24=cdrom +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [5, 20, 24] + +# # See more environment variables in the zwavejs2mqtt documentation +# https://zwave-js.github.io/zwavejs2mqtt/#/guide/env-vars +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 + ws: + enabled: true + type: ClusterIP + ports: + ws: + enabled: true + port: 3000 + protocol: TCP + +# Privileged may be required if USB controller is accessed directly through the host machine +# securityContext: +# privileged: true + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller diff --git a/stable/zwavejs2mqtt/6.11.3/values.yaml b/stable/zwavejs2mqtt/6.11.3/values.yaml new file mode 100644 index 00000000000..e69de29bb2d