From 31affe04dad5d5a0415afd32f9d8203ef3684d15 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Thu, 12 Aug 2021 11:52:31 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- deprecated/nzbhydra/6.6.0/CONFIG.md | 9 + deprecated/nzbhydra/6.6.0/Chart.lock | 6 + deprecated/nzbhydra/6.6.0/Chart.yaml | 20 + deprecated/nzbhydra/6.6.0/README.md | 54 + deprecated/nzbhydra/6.6.0/app-readme.md | 3 + .../nzbhydra/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes deprecated/nzbhydra/6.6.0/ix_values.yaml | 51 + deprecated/nzbhydra/6.6.0/questions.yaml | 668 +++++++++ .../nzbhydra/6.6.0/templates/common.yaml | 1 + deprecated/nzbhydra/6.6.0/test_values.yaml | 62 + deprecated/nzbhydra/6.6.0/values.yaml | 0 develop/prototype-gui/1.7.0/CONFIG.md | 9 + develop/prototype-gui/1.7.0/Chart.lock | 6 + develop/prototype-gui/1.7.0/Chart.yaml | 22 + develop/prototype-gui/1.7.0/README.md | 52 + develop/prototype-gui/1.7.0/app-readme.md | 3 + .../1.7.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes develop/prototype-gui/1.7.0/ix_values.yaml | 25 + develop/prototype-gui/1.7.0/questions.yaml | 689 ++++++++++ .../prototype-gui/1.7.0/templates/common.yaml | 1 + develop/prototype-gui/1.7.0/test_values.yaml | 39 + develop/prototype-gui/1.7.0/values.yaml | 0 incubator/airsonic/1.6.0/CONFIG.md | 9 + incubator/airsonic/1.6.0/Chart.lock | 6 + incubator/airsonic/1.6.0/Chart.yaml | 22 + incubator/airsonic/1.6.0/README.md | 56 + incubator/airsonic/1.6.0/app-readme.md | 1 + .../airsonic/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/airsonic/1.6.0/ix_values.yaml | 19 + incubator/airsonic/1.6.0/questions.yaml | 642 +++++++++ .../airsonic/1.6.0/templates/common.yaml | 1 + incubator/airsonic/1.6.0/test_values.yaml | 60 + incubator/airsonic/1.6.0/values.yaml | 0 incubator/appdaemon/3.6.0/CONFIG.md | 9 + incubator/appdaemon/3.6.0/Chart.lock | 6 + incubator/appdaemon/3.6.0/Chart.yaml | 29 + incubator/appdaemon/3.6.0/README.md | 54 + incubator/appdaemon/3.6.0/app-readme.md | 3 + .../appdaemon/3.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/appdaemon/3.6.0/ix_values.yaml | 16 + incubator/appdaemon/3.6.0/questions.yaml | 604 +++++++++ .../appdaemon/3.6.0/templates/common.yaml | 1 + incubator/appdaemon/3.6.0/test_values.yaml | 41 + incubator/appdaemon/3.6.0/values.yaml | 0 incubator/bazarr/6.6.0/CONFIG.md | 9 + incubator/bazarr/6.6.0/Chart.lock | 6 + incubator/bazarr/6.6.0/Chart.yaml | 32 + incubator/bazarr/6.6.0/README.md | 55 + incubator/bazarr/6.6.0/app-readme.md | 3 + .../bazarr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/bazarr/6.6.0/ix_values.yaml | 15 + incubator/bazarr/6.6.0/questions.yaml | 668 +++++++++ incubator/bazarr/6.6.0/templates/common.yaml | 1 + incubator/bazarr/6.6.0/test_values.yaml | 26 + incubator/bazarr/6.6.0/values.yaml | 0 incubator/booksonic-air/1.4.0/CONFIG.md | 9 + incubator/booksonic-air/1.4.0/Chart.lock | 6 + incubator/booksonic-air/1.4.0/Chart.yaml | 23 + incubator/booksonic-air/1.4.0/README.md | 55 + incubator/booksonic-air/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/booksonic-air/1.4.0/ix_values.yaml | 15 + incubator/booksonic-air/1.4.0/questions.yaml | 640 +++++++++ .../booksonic-air/1.4.0/templates/common.yaml | 1 + .../booksonic-air/1.4.0/test_values.yaml | 47 + incubator/booksonic-air/1.4.0/values.yaml | 0 incubator/calibre-web/6.6.0/CONFIG.md | 9 + incubator/calibre-web/6.6.0/Chart.lock | 6 + incubator/calibre-web/6.6.0/Chart.yaml | 26 + incubator/calibre-web/6.6.0/README.md | 55 + incubator/calibre-web/6.6.0/app-readme.md | 3 + .../calibre-web/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/calibre-web/6.6.0/ix_values.yaml | 16 + incubator/calibre-web/6.6.0/questions.yaml | 628 +++++++++ .../calibre-web/6.6.0/templates/common.yaml | 1 + incubator/calibre-web/6.6.0/test_values.yaml | 28 + incubator/calibre-web/6.6.0/values.yaml | 0 incubator/calibre/1.4.0/CONFIG.md | 9 + incubator/calibre/1.4.0/Chart.lock | 6 + incubator/calibre/1.4.0/Chart.yaml | 21 + incubator/calibre/1.4.0/README.md | 55 + incubator/calibre/1.4.0/app-readme.md | 1 + .../calibre/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/calibre/1.4.0/ix_values.yaml | 15 + incubator/calibre/1.4.0/questions.yaml | 756 +++++++++++ incubator/calibre/1.4.0/templates/common.yaml | 3 + incubator/calibre/1.4.0/test_values.yaml | 58 + incubator/calibre/1.4.0/values.yaml | 0 incubator/deconz/1.4.0/CONFIG.md | 9 + incubator/deconz/1.4.0/Chart.lock | 6 + incubator/deconz/1.4.0/Chart.yaml | 25 + incubator/deconz/1.4.0/README.md | 55 + incubator/deconz/1.4.0/app-readme.md | 1 + .../deconz/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/deconz/1.4.0/ix_values.yaml | 15 + incubator/deconz/1.4.0/questions.yaml | 861 ++++++++++++ incubator/deconz/1.4.0/templates/common.yaml | 1 + incubator/deconz/1.4.0/test_values.yaml | 72 + incubator/deconz/1.4.0/values.yaml | 0 incubator/deluge/6.6.0/CONFIG.md | 9 + incubator/deluge/6.6.0/Chart.lock | 6 + incubator/deluge/6.6.0/Chart.yaml | 24 + incubator/deluge/6.6.0/README.md | 54 + incubator/deluge/6.6.0/app-readme.md | 3 + .../deluge/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/deluge/6.6.0/ix_values.yaml | 16 + incubator/deluge/6.6.0/questions.yaml | 745 ++++++++++ incubator/deluge/6.6.0/templates/common.yaml | 1 + incubator/deluge/6.6.0/test_values.yaml | 33 + incubator/deluge/6.6.0/values.yaml | 0 incubator/dizquetv/1.4.0/CONFIG.md | 9 + incubator/dizquetv/1.4.0/Chart.lock | 6 + incubator/dizquetv/1.4.0/Chart.yaml | 22 + incubator/dizquetv/1.4.0/README.md | 55 + incubator/dizquetv/1.4.0/app-readme.md | 1 + .../dizquetv/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/dizquetv/1.4.0/ix_values.yaml | 15 + incubator/dizquetv/1.4.0/questions.yaml | 640 +++++++++ .../dizquetv/1.4.0/templates/common.yaml | 1 + incubator/dizquetv/1.4.0/test_values.yaml | 40 + incubator/dizquetv/1.4.0/values.yaml | 0 incubator/duplicati/1.4.0/CONFIG.md | 9 + incubator/duplicati/1.4.0/Chart.lock | 6 + incubator/duplicati/1.4.0/Chart.yaml | 21 + incubator/duplicati/1.4.0/README.md | 55 + incubator/duplicati/1.4.0/app-readme.md | 1 + .../duplicati/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/duplicati/1.4.0/ix_values.yaml | 15 + incubator/duplicati/1.4.0/questions.yaml | 640 +++++++++ .../duplicati/1.4.0/templates/common.yaml | 1 + incubator/duplicati/1.4.0/test_values.yaml | 43 + incubator/duplicati/1.4.0/values.yaml | 0 incubator/fireflyiii/4.11.0/CONFIG.md | 9 + incubator/fireflyiii/4.11.0/Chart.lock | 9 + incubator/fireflyiii/4.11.0/Chart.yaml | 30 + incubator/fireflyiii/4.11.0/README.md | 55 + incubator/fireflyiii/4.11.0/app-readme.md | 3 + .../fireflyiii/4.11.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../4.11.0/charts/postgresql-10.9.1.tgz | Bin 0 -> 52056 bytes incubator/fireflyiii/4.11.0/ix_values.yaml | 51 + incubator/fireflyiii/4.11.0/questions.yaml | 866 ++++++++++++ .../fireflyiii/4.11.0/templates/common.yaml | 5 + .../fireflyiii/4.11.0/templates/secrets.yaml | 19 + incubator/fireflyiii/4.11.0/test_values.yaml | 82 ++ incubator/fireflyiii/4.11.0/values.yaml | 0 incubator/flaresolverr/1.4.0/CONFIG.md | 9 + incubator/flaresolverr/1.4.0/Chart.lock | 6 + incubator/flaresolverr/1.4.0/Chart.yaml | 22 + incubator/flaresolverr/1.4.0/README.md | 55 + incubator/flaresolverr/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/flaresolverr/1.4.0/ix_values.yaml | 15 + incubator/flaresolverr/1.4.0/questions.yaml | 667 +++++++++ .../flaresolverr/1.4.0/templates/common.yaml | 1 + incubator/flaresolverr/1.4.0/test_values.yaml | 28 + incubator/flaresolverr/1.4.0/values.yaml | 0 incubator/flood/1.4.0/CONFIG.md | 9 + incubator/flood/1.4.0/Chart.lock | 6 + incubator/flood/1.4.0/Chart.yaml | 24 + incubator/flood/1.4.0/README.md | 55 + incubator/flood/1.4.0/app-readme.md | 1 + incubator/flood/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/flood/1.4.0/ci/ct-values.yaml | 5 + incubator/flood/1.4.0/ix_values.yaml | 15 + incubator/flood/1.4.0/questions.yaml | 674 +++++++++ incubator/flood/1.4.0/templates/common.yaml | 1 + incubator/flood/1.4.0/test_values.yaml | 36 + incubator/flood/1.4.0/values.yaml | 0 incubator/focalboard/1.4.0/CONFIG.md | 9 + incubator/focalboard/1.4.0/Chart.lock | 6 + incubator/focalboard/1.4.0/Chart.yaml | 25 + incubator/focalboard/1.4.0/README.md | 56 + incubator/focalboard/1.4.0/app-readme.md | 1 + .../focalboard/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/focalboard/1.4.0/ix_values.yaml | 15 + incubator/focalboard/1.4.0/questions.yaml | 667 +++++++++ .../focalboard/1.4.0/templates/common.yaml | 1 + incubator/focalboard/1.4.0/test_values.yaml | 36 + incubator/focalboard/1.4.0/values.yaml | 0 incubator/freshrss/6.6.0/CONFIG.md | 9 + incubator/freshrss/6.6.0/Chart.lock | 6 + incubator/freshrss/6.6.0/Chart.yaml | 24 + incubator/freshrss/6.6.0/README.md | 55 + incubator/freshrss/6.6.0/app-readme.md | 3 + .../freshrss/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/freshrss/6.6.0/ix_values.yaml | 16 + incubator/freshrss/6.6.0/questions.yaml | 628 +++++++++ .../freshrss/6.6.0/templates/common.yaml | 1 + incubator/freshrss/6.6.0/test_values.yaml | 26 + incubator/freshrss/6.6.0/values.yaml | 0 incubator/gaps/6.6.0/CONFIG.md | 9 + incubator/gaps/6.6.0/Chart.lock | 6 + incubator/gaps/6.6.0/Chart.yaml | 25 + incubator/gaps/6.6.0/README.md | 54 + incubator/gaps/6.6.0/app-readme.md | 3 + incubator/gaps/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/gaps/6.6.0/ix_values.yaml | 15 + incubator/gaps/6.6.0/questions.yaml | 667 +++++++++ incubator/gaps/6.6.0/templates/common.yaml | 1 + incubator/gaps/6.6.0/test_values.yaml | 24 + incubator/gaps/6.6.0/values.yaml | 0 incubator/gonic/1.4.0/CONFIG.md | 9 + incubator/gonic/1.4.0/Chart.lock | 6 + incubator/gonic/1.4.0/Chart.yaml | 22 + incubator/gonic/1.4.0/README.md | 55 + incubator/gonic/1.4.0/app-readme.md | 1 + incubator/gonic/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/gonic/1.4.0/ci/ct-values.yaml | 21 + incubator/gonic/1.4.0/ix_values.yaml | 15 + incubator/gonic/1.4.0/questions.yaml | 667 +++++++++ incubator/gonic/1.4.0/templates/common.yaml | 1 + incubator/gonic/1.4.0/test_values.yaml | 44 + incubator/gonic/1.4.0/values.yaml | 0 incubator/grocy/6.6.0/CONFIG.md | 9 + incubator/grocy/6.6.0/Chart.lock | 6 + incubator/grocy/6.6.0/Chart.yaml | 23 + incubator/grocy/6.6.0/README.md | 54 + incubator/grocy/6.6.0/app-readme.md | 3 + incubator/grocy/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/grocy/6.6.0/ix_values.yaml | 16 + incubator/grocy/6.6.0/questions.yaml | 627 +++++++++ incubator/grocy/6.6.0/templates/common.yaml | 1 + incubator/grocy/6.6.0/test_values.yaml | 26 + incubator/grocy/6.6.0/values.yaml | 0 incubator/haste-server/1.6.0/CONFIG.md | 9 + incubator/haste-server/1.6.0/Chart.lock | 6 + incubator/haste-server/1.6.0/Chart.yaml | 24 + incubator/haste-server/1.6.0/README.md | 55 + incubator/haste-server/1.6.0/app-readme.md | 1 + .../1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/haste-server/1.6.0/ix_values.yaml | 19 + incubator/haste-server/1.6.0/questions.yaml | 673 +++++++++ .../haste-server/1.6.0/templates/common.yaml | 1 + incubator/haste-server/1.6.0/test_values.yaml | 50 + incubator/haste-server/1.6.0/values.yaml | 0 incubator/healthchecks/1.4.0/CONFIG.md | 9 + incubator/healthchecks/1.4.0/Chart.lock | 6 + incubator/healthchecks/1.4.0/Chart.yaml | 25 + incubator/healthchecks/1.4.0/README.md | 55 + incubator/healthchecks/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/healthchecks/1.4.0/ix_values.yaml | 15 + incubator/healthchecks/1.4.0/questions.yaml | 701 ++++++++++ .../healthchecks/1.4.0/templates/common.yaml | 1 + incubator/healthchecks/1.4.0/test_values.yaml | 41 + incubator/healthchecks/1.4.0/values.yaml | 0 incubator/heimdall/6.6.0/CONFIG.md | 9 + incubator/heimdall/6.6.0/Chart.lock | 6 + incubator/heimdall/6.6.0/Chart.yaml | 21 + incubator/heimdall/6.6.0/README.md | 52 + incubator/heimdall/6.6.0/app-readme.md | 3 + .../heimdall/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/heimdall/6.6.0/ix_values.yaml | 16 + incubator/heimdall/6.6.0/questions.yaml | 628 +++++++++ .../heimdall/6.6.0/templates/common.yaml | 1 + incubator/heimdall/6.6.0/test_values.yaml | 30 + incubator/heimdall/6.6.0/values.yaml | 0 incubator/hyperion-ng/1.4.0/CONFIG.md | 9 + incubator/hyperion-ng/1.4.0/Chart.lock | 6 + incubator/hyperion-ng/1.4.0/Chart.yaml | 22 + incubator/hyperion-ng/1.4.0/README.md | 55 + incubator/hyperion-ng/1.4.0/app-readme.md | 1 + .../hyperion-ng/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/hyperion-ng/1.4.0/ix_values.yaml | 15 + incubator/hyperion-ng/1.4.0/questions.yaml | 973 +++++++++++++ .../hyperion-ng/1.4.0/templates/common.yaml | 1 + incubator/hyperion-ng/1.4.0/test_values.yaml | 53 + incubator/hyperion-ng/1.4.0/values.yaml | 0 incubator/komga/1.4.0/CONFIG.md | 9 + incubator/komga/1.4.0/Chart.lock | 6 + incubator/komga/1.4.0/Chart.yaml | 24 + incubator/komga/1.4.0/README.md | 55 + incubator/komga/1.4.0/app-readme.md | 1 + incubator/komga/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/komga/1.4.0/ix_values.yaml | 15 + incubator/komga/1.4.0/questions.yaml | 777 +++++++++++ incubator/komga/1.4.0/templates/common.yaml | 1 + incubator/komga/1.4.0/test_values.yaml | 37 + incubator/komga/1.4.0/values.yaml | 0 incubator/lazylibrarian/6.6.0/CONFIG.md | 9 + incubator/lazylibrarian/6.6.0/Chart.lock | 6 + incubator/lazylibrarian/6.6.0/Chart.yaml | 27 + incubator/lazylibrarian/6.6.0/README.md | 55 + incubator/lazylibrarian/6.6.0/app-readme.md | 3 + .../6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/lazylibrarian/6.6.0/ix_values.yaml | 16 + incubator/lazylibrarian/6.6.0/questions.yaml | 628 +++++++++ .../lazylibrarian/6.6.0/templates/common.yaml | 1 + .../lazylibrarian/6.6.0/test_values.yaml | 26 + incubator/lazylibrarian/6.6.0/values.yaml | 0 incubator/librespeed/1.4.0/CONFIG.md | 9 + incubator/librespeed/1.4.0/Chart.lock | 6 + incubator/librespeed/1.4.0/Chart.yaml | 23 + incubator/librespeed/1.4.0/README.md | 56 + incubator/librespeed/1.4.0/app-readme.md | 1 + .../librespeed/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/librespeed/1.4.0/ci/ct-values.yaml | 2 + incubator/librespeed/1.4.0/ix_values.yaml | 15 + incubator/librespeed/1.4.0/questions.yaml | 640 +++++++++ .../librespeed/1.4.0/templates/common.yaml | 1 + incubator/librespeed/1.4.0/test_values.yaml | 46 + incubator/librespeed/1.4.0/values.yaml | 0 incubator/lychee/6.6.0/CONFIG.md | 9 + incubator/lychee/6.6.0/Chart.lock | 6 + incubator/lychee/6.6.0/Chart.yaml | 26 + incubator/lychee/6.6.0/README.md | 55 + incubator/lychee/6.6.0/app-readme.md | 3 + .../lychee/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/lychee/6.6.0/ix_values.yaml | 16 + incubator/lychee/6.6.0/questions.yaml | 628 +++++++++ incubator/lychee/6.6.0/templates/common.yaml | 1 + incubator/lychee/6.6.0/test_values.yaml | 26 + incubator/lychee/6.6.0/values.yaml | 0 incubator/mealie/1.6.0/CONFIG.md | 9 + incubator/mealie/1.6.0/Chart.lock | 6 + incubator/mealie/1.6.0/Chart.yaml | 22 + incubator/mealie/1.6.0/README.md | 54 + incubator/mealie/1.6.0/app-readme.md | 1 + .../mealie/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/mealie/1.6.0/ix_values.yaml | 19 + incubator/mealie/1.6.0/questions.yaml | 635 +++++++++ incubator/mealie/1.6.0/templates/common.yaml | 1 + incubator/mealie/1.6.0/test_values.yaml | 43 + incubator/mealie/1.6.0/values.yaml | 0 incubator/mosquitto/1.6.0/CONFIG.md | 9 + incubator/mosquitto/1.6.0/Chart.lock | 6 + incubator/mosquitto/1.6.0/Chart.yaml | 24 + incubator/mosquitto/1.6.0/README.md | 54 + incubator/mosquitto/1.6.0/app-readme.md | 3 + .../mosquitto/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/mosquitto/1.6.0/ix_values.yaml | 18 + incubator/mosquitto/1.6.0/questions.yaml | 789 +++++++++++ .../mosquitto/1.6.0/templates/common.yaml | 17 + .../mosquitto/1.6.0/templates/configmap.yaml | 22 + incubator/mosquitto/1.6.0/test_values.yaml | 39 + incubator/mosquitto/1.6.0/values.yaml | 0 incubator/mylar/1.4.0/CONFIG.md | 9 + incubator/mylar/1.4.0/Chart.lock | 6 + incubator/mylar/1.4.0/Chart.yaml | 22 + incubator/mylar/1.4.0/README.md | 56 + incubator/mylar/1.4.0/app-readme.md | 1 + incubator/mylar/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/mylar/1.4.0/ix_values.yaml | 15 + incubator/mylar/1.4.0/questions.yaml | 679 ++++++++++ incubator/mylar/1.4.0/templates/common.yaml | 1 + incubator/mylar/1.4.0/test_values.yaml | 45 + incubator/mylar/1.4.0/values.yaml | 0 incubator/navidrome/6.6.0/CONFIG.md | 9 + incubator/navidrome/6.6.0/Chart.lock | 6 + incubator/navidrome/6.6.0/Chart.yaml | 25 + incubator/navidrome/6.6.0/README.md | 55 + incubator/navidrome/6.6.0/app-readme.md | 3 + .../navidrome/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/navidrome/6.6.0/ix_values.yaml | 15 + incubator/navidrome/6.6.0/questions.yaml | 668 +++++++++ .../navidrome/6.6.0/templates/common.yaml | 1 + incubator/navidrome/6.6.0/test_values.yaml | 28 + incubator/navidrome/6.6.0/values.yaml | 0 incubator/node-red/6.6.0/CONFIG.md | 9 + incubator/node-red/6.6.0/Chart.lock | 6 + incubator/node-red/6.6.0/Chart.yaml | 23 + incubator/node-red/6.6.0/README.md | 54 + incubator/node-red/6.6.0/app-readme.md | 3 + .../node-red/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/node-red/6.6.0/ix_values.yaml | 15 + incubator/node-red/6.6.0/questions.yaml | 668 +++++++++ .../node-red/6.6.0/templates/common.yaml | 1 + incubator/node-red/6.6.0/test_values.yaml | 30 + incubator/node-red/6.6.0/values.yaml | 0 incubator/nullserv/1.4.0/CONFIG.md | 9 + incubator/nullserv/1.4.0/Chart.lock | 6 + incubator/nullserv/1.4.0/Chart.yaml | 20 + incubator/nullserv/1.4.0/README.md | 54 + incubator/nullserv/1.4.0/app-readme.md | 1 + .../nullserv/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/nullserv/1.4.0/ix_values.yaml | 26 + incubator/nullserv/1.4.0/questions.yaml | 771 +++++++++++ .../nullserv/1.4.0/templates/common.yaml | 1 + incubator/nullserv/1.4.0/test_values.yaml | 49 + incubator/nullserv/1.4.0/values.yaml | 0 incubator/nzbget/6.6.0/CONFIG.md | 9 + incubator/nzbget/6.6.0/Chart.lock | 6 + incubator/nzbget/6.6.0/Chart.yaml | 23 + incubator/nzbget/6.6.0/README.md | 54 + incubator/nzbget/6.6.0/app-readme.md | 3 + .../nzbget/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/nzbget/6.6.0/ix_values.yaml | 25 + incubator/nzbget/6.6.0/questions.yaml | 668 +++++++++ incubator/nzbget/6.6.0/templates/common.yaml | 1 + incubator/nzbget/6.6.0/test_values.yaml | 31 + incubator/nzbget/6.6.0/values.yaml | 0 incubator/octoprint/1.4.0/CONFIG.md | 9 + incubator/octoprint/1.4.0/Chart.lock | 6 + incubator/octoprint/1.4.0/Chart.yaml | 23 + incubator/octoprint/1.4.0/README.md | 55 + incubator/octoprint/1.4.0/app-readme.md | 1 + .../octoprint/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/octoprint/1.4.0/ix_values.yaml | 15 + incubator/octoprint/1.4.0/questions.yaml | 686 ++++++++++ .../octoprint/1.4.0/templates/common.yaml | 1 + incubator/octoprint/1.4.0/test_values.yaml | 53 + incubator/octoprint/1.4.0/values.yaml | 0 incubator/omada-controller/1.4.0/CONFIG.md | 9 + incubator/omada-controller/1.4.0/Chart.lock | 6 + incubator/omada-controller/1.4.0/Chart.yaml | 22 + incubator/omada-controller/1.4.0/README.md | 55 + .../omada-controller/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../omada-controller/1.4.0/ix_values.yaml | 15 + .../omada-controller/1.4.0/questions.yaml | 667 +++++++++ .../1.4.0/templates/common.yaml | 1 + .../omada-controller/1.4.0/test_values.yaml | 35 + incubator/omada-controller/1.4.0/values.yaml | 0 incubator/organizr/6.6.0/CONFIG.md | 9 + incubator/organizr/6.6.0/Chart.lock | 6 + incubator/organizr/6.6.0/Chart.yaml | 23 + incubator/organizr/6.6.0/README.md | 55 + incubator/organizr/6.6.0/app-readme.md | 3 + .../organizr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/organizr/6.6.0/ix_values.yaml | 16 + incubator/organizr/6.6.0/questions.yaml | 738 ++++++++++ .../organizr/6.6.0/templates/common.yaml | 1 + incubator/organizr/6.6.0/test_values.yaml | 26 + incubator/organizr/6.6.0/values.yaml | 0 incubator/overseerr/1.4.0/CONFIG.md | 9 + incubator/overseerr/1.4.0/Chart.lock | 6 + incubator/overseerr/1.4.0/Chart.yaml | 26 + incubator/overseerr/1.4.0/README.md | 55 + incubator/overseerr/1.4.0/app-readme.md | 1 + .../overseerr/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/overseerr/1.4.0/ix_values.yaml | 15 + incubator/overseerr/1.4.0/questions.yaml | 673 +++++++++ .../overseerr/1.4.0/templates/common.yaml | 1 + incubator/overseerr/1.4.0/test_values.yaml | 38 + incubator/overseerr/1.4.0/values.yaml | 0 incubator/owncast/1.4.0/CONFIG.md | 9 + incubator/owncast/1.4.0/Chart.lock | 6 + incubator/owncast/1.4.0/Chart.yaml | 25 + incubator/owncast/1.4.0/README.md | 55 + incubator/owncast/1.4.0/app-readme.md | 1 + .../owncast/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/owncast/1.4.0/ix_values.yaml | 15 + incubator/owncast/1.4.0/questions.yaml | 765 +++++++++++ incubator/owncast/1.4.0/templates/common.yaml | 1 + incubator/owncast/1.4.0/test_values.yaml | 41 + incubator/owncast/1.4.0/values.yaml | 0 incubator/owncloud-ocis/1.4.0/CONFIG.md | 9 + incubator/owncloud-ocis/1.4.0/Chart.lock | 6 + incubator/owncloud-ocis/1.4.0/Chart.yaml | 28 + incubator/owncloud-ocis/1.4.0/README.md | 55 + incubator/owncloud-ocis/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/owncloud-ocis/1.4.0/ix_values.yaml | 15 + incubator/owncloud-ocis/1.4.0/questions.yaml | 667 +++++++++ .../owncloud-ocis/1.4.0/templates/common.yaml | 1 + .../owncloud-ocis/1.4.0/test_values.yaml | 39 + incubator/owncloud-ocis/1.4.0/values.yaml | 0 incubator/photoprism/1.4.0/CONFIG.md | 9 + incubator/photoprism/1.4.0/Chart.lock | 6 + incubator/photoprism/1.4.0/Chart.yaml | 25 + incubator/photoprism/1.4.0/README.md | 55 + incubator/photoprism/1.4.0/app-readme.md | 1 + .../photoprism/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/photoprism/1.4.0/ix_values.yaml | 15 + incubator/photoprism/1.4.0/questions.yaml | 704 ++++++++++ .../photoprism/1.4.0/templates/common.yaml | 1 + incubator/photoprism/1.4.0/test_values.yaml | 54 + incubator/photoprism/1.4.0/values.yaml | 0 incubator/piaware/1.4.0/CONFIG.md | 9 + incubator/piaware/1.4.0/Chart.lock | 6 + incubator/piaware/1.4.0/Chart.yaml | 22 + incubator/piaware/1.4.0/README.md | 54 + incubator/piaware/1.4.0/app-readme.md | 1 + .../piaware/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/piaware/1.4.0/ci/ct-values.yaml | 3 + incubator/piaware/1.4.0/ix_values.yaml | 15 + incubator/piaware/1.4.0/questions.yaml | 707 ++++++++++ incubator/piaware/1.4.0/templates/common.yaml | 1 + incubator/piaware/1.4.0/test_values.yaml | 55 + incubator/piaware/1.4.0/values.yaml | 0 incubator/podgrab/4.6.0/CONFIG.md | 9 + incubator/podgrab/4.6.0/Chart.lock | 6 + incubator/podgrab/4.6.0/Chart.yaml | 27 + incubator/podgrab/4.6.0/README.md | 55 + incubator/podgrab/4.6.0/app-readme.md | 3 + .../podgrab/4.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/podgrab/4.6.0/ix_values.yaml | 26 + incubator/podgrab/4.6.0/questions.yaml | 676 ++++++++++ incubator/podgrab/4.6.0/templates/common.yaml | 1 + incubator/podgrab/4.6.0/test_values.yaml | 57 + incubator/podgrab/4.6.0/values.yaml | 0 incubator/pretend-youre-xyzzy/1.4.0/CONFIG.md | 9 + .../pretend-youre-xyzzy/1.4.0/Chart.lock | 6 + .../pretend-youre-xyzzy/1.4.0/Chart.yaml | 24 + incubator/pretend-youre-xyzzy/1.4.0/README.md | 55 + .../pretend-youre-xyzzy/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../pretend-youre-xyzzy/1.4.0/ix_values.yaml | 15 + .../pretend-youre-xyzzy/1.4.0/questions.yaml | 551 ++++++++ .../1.4.0/templates/common.yaml | 1 + .../1.4.0/test_values.yaml | 22 + .../pretend-youre-xyzzy/1.4.0/values.yaml | 0 incubator/protonmail-bridge/1.4.0/CONFIG.md | 9 + incubator/protonmail-bridge/1.4.0/Chart.lock | 6 + incubator/protonmail-bridge/1.4.0/Chart.yaml | 22 + incubator/protonmail-bridge/1.4.0/README.md | 55 + .../protonmail-bridge/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../protonmail-bridge/1.4.0/ix_values.yaml | 21 + .../protonmail-bridge/1.4.0/questions.yaml | 680 ++++++++++ .../1.4.0/templates/common.yaml | 1 + .../protonmail-bridge/1.4.0/test_values.yaml | 40 + incubator/protonmail-bridge/1.4.0/values.yaml | 0 incubator/prowlarr/1.6.0/CONFIG.md | 9 + incubator/prowlarr/1.6.0/Chart.lock | 6 + incubator/prowlarr/1.6.0/Chart.yaml | 24 + incubator/prowlarr/1.6.0/README.md | 55 + incubator/prowlarr/1.6.0/app-readme.md | 1 + .../prowlarr/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/prowlarr/1.6.0/ix_values.yaml | 19 + incubator/prowlarr/1.6.0/questions.yaml | 669 +++++++++ .../prowlarr/1.6.0/templates/common.yaml | 1 + incubator/prowlarr/1.6.0/test_values.yaml | 45 + incubator/prowlarr/1.6.0/values.yaml | 0 incubator/pyload/1.4.0/CONFIG.md | 9 + incubator/pyload/1.4.0/Chart.lock | 6 + incubator/pyload/1.4.0/Chart.yaml | 24 + incubator/pyload/1.4.0/README.md | 55 + incubator/pyload/1.4.0/app-readme.md | 1 + .../pyload/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/pyload/1.4.0/ix_values.yaml | 15 + incubator/pyload/1.4.0/questions.yaml | 679 ++++++++++ incubator/pyload/1.4.0/templates/common.yaml | 1 + incubator/pyload/1.4.0/test_values.yaml | 41 + incubator/pyload/1.4.0/values.yaml | 0 incubator/qbittorrent/6.6.0/CONFIG.md | 9 + incubator/qbittorrent/6.6.0/Chart.lock | 6 + incubator/qbittorrent/6.6.0/Chart.yaml | 22 + incubator/qbittorrent/6.6.0/README.md | 52 + incubator/qbittorrent/6.6.0/app-readme.md | 3 + .../qbittorrent/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/qbittorrent/6.6.0/ix_values.yaml | 15 + incubator/qbittorrent/6.6.0/questions.yaml | 815 +++++++++++ .../6.6.0/templates/_configmap.tpl | 32 + .../qbittorrent/6.6.0/templates/common.yaml | 6 + incubator/qbittorrent/6.6.0/test_values.yaml | 52 + incubator/qbittorrent/6.6.0/values.yaml | 0 incubator/readarr/6.6.0/CONFIG.md | 9 + incubator/readarr/6.6.0/Chart.lock | 6 + incubator/readarr/6.6.0/Chart.yaml | 30 + incubator/readarr/6.6.0/README.md | 55 + incubator/readarr/6.6.0/app-readme.md | 3 + .../readarr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/readarr/6.6.0/ix_values.yaml | 37 + incubator/readarr/6.6.0/questions.yaml | 668 +++++++++ incubator/readarr/6.6.0/templates/common.yaml | 1 + incubator/readarr/6.6.0/test_values.yaml | 47 + incubator/readarr/6.6.0/values.yaml | 0 incubator/reg/1.6.0/CONFIG.md | 9 + incubator/reg/1.6.0/Chart.lock | 6 + incubator/reg/1.6.0/Chart.yaml | 22 + incubator/reg/1.6.0/README.md | 55 + incubator/reg/1.6.0/app-readme.md | 1 + incubator/reg/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/reg/1.6.0/ci/ct-values.yaml | 2 + incubator/reg/1.6.0/ix_values.yaml | 19 + incubator/reg/1.6.0/questions.yaml | 663 +++++++++ incubator/reg/1.6.0/templates/common.yaml | 1 + incubator/reg/1.6.0/test_values.yaml | 40 + incubator/reg/1.6.0/values.yaml | 0 incubator/sabnzbd/6.6.0/CONFIG.md | 9 + incubator/sabnzbd/6.6.0/Chart.lock | 6 + incubator/sabnzbd/6.6.0/Chart.yaml | 23 + incubator/sabnzbd/6.6.0/README.md | 54 + incubator/sabnzbd/6.6.0/app-readme.md | 3 + .../sabnzbd/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/sabnzbd/6.6.0/ix_values.yaml | 15 + incubator/sabnzbd/6.6.0/questions.yaml | 675 ++++++++++ incubator/sabnzbd/6.6.0/templates/common.yaml | 1 + incubator/sabnzbd/6.6.0/test_values.yaml | 26 + incubator/sabnzbd/6.6.0/values.yaml | 0 incubator/ser2sock/1.4.0/CONFIG.md | 9 + incubator/ser2sock/1.4.0/Chart.lock | 6 + incubator/ser2sock/1.4.0/Chart.yaml | 21 + incubator/ser2sock/1.4.0/README.md | 55 + incubator/ser2sock/1.4.0/app-readme.md | 1 + .../ser2sock/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/ser2sock/1.4.0/ix_values.yaml | 15 + incubator/ser2sock/1.4.0/questions.yaml | 728 ++++++++++ .../ser2sock/1.4.0/templates/common.yaml | 1 + incubator/ser2sock/1.4.0/test_values.yaml | 63 + incubator/ser2sock/1.4.0/values.yaml | 0 incubator/stash/1.4.0/CONFIG.md | 9 + incubator/stash/1.4.0/Chart.lock | 6 + incubator/stash/1.4.0/Chart.yaml | 21 + incubator/stash/1.4.0/README.md | 55 + incubator/stash/1.4.0/app-readme.md | 1 + incubator/stash/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/stash/1.4.0/ci/ct-values.yaml | 15 + incubator/stash/1.4.0/ix_values.yaml | 15 + incubator/stash/1.4.0/questions.yaml | 672 +++++++++ incubator/stash/1.4.0/templates/common.yaml | 1 + incubator/stash/1.4.0/test_values.yaml | 44 + incubator/stash/1.4.0/values.yaml | 0 incubator/thelounge/1.6.0/CONFIG.md | 9 + incubator/thelounge/1.6.0/Chart.lock | 6 + incubator/thelounge/1.6.0/Chart.yaml | 24 + incubator/thelounge/1.6.0/README.md | 54 + incubator/thelounge/1.6.0/app-readme.md | 1 + .../thelounge/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/thelounge/1.6.0/ix_values.yaml | 19 + incubator/thelounge/1.6.0/questions.yaml | 635 +++++++++ .../thelounge/1.6.0/templates/common.yaml | 1 + incubator/thelounge/1.6.0/test_values.yaml | 44 + incubator/thelounge/1.6.0/values.yaml | 0 incubator/tvheadend/7.6.0/CONFIG.md | 9 + incubator/tvheadend/7.6.0/Chart.lock | 6 + incubator/tvheadend/7.6.0/Chart.yaml | 25 + incubator/tvheadend/7.6.0/README.md | 54 + incubator/tvheadend/7.6.0/app-readme.md | 3 + .../tvheadend/7.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/tvheadend/7.6.0/ix_values.yaml | 15 + incubator/tvheadend/7.6.0/questions.yaml | 724 ++++++++++ .../tvheadend/7.6.0/templates/common.yaml | 1 + incubator/tvheadend/7.6.0/test_values.yaml | 36 + incubator/tvheadend/7.6.0/values.yaml | 0 incubator/unifi/6.6.0/CONFIG.md | 9 + incubator/unifi/6.6.0/Chart.lock | 6 + incubator/unifi/6.6.0/Chart.yaml | 24 + incubator/unifi/6.6.0/README.md | 55 + incubator/unifi/6.6.0/app-readme.md | 3 + incubator/unifi/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/unifi/6.6.0/ix_values.yaml | 19 + incubator/unifi/6.6.0/questions.yaml | 823 +++++++++++ incubator/unifi/6.6.0/templates/common.yaml | 1 + incubator/unifi/6.6.0/test_values.yaml | 48 + incubator/unifi/6.6.0/values.yaml | 0 incubator/unpackerr/1.6.0/CONFIG.md | 9 + incubator/unpackerr/1.6.0/Chart.lock | 6 + incubator/unpackerr/1.6.0/Chart.yaml | 29 + incubator/unpackerr/1.6.0/README.md | 55 + incubator/unpackerr/1.6.0/app-readme.md | 3 + .../unpackerr/1.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/unpackerr/1.6.0/ix_values.yaml | 32 + incubator/unpackerr/1.6.0/questions.yaml | 540 ++++++++ .../unpackerr/1.6.0/templates/common.yaml | 1 + incubator/unpackerr/1.6.0/test_values.yaml | 51 + incubator/unpackerr/1.6.0/values.yaml | 0 incubator/xteve/1.4.0/CONFIG.md | 9 + incubator/xteve/1.4.0/Chart.lock | 6 + incubator/xteve/1.4.0/Chart.yaml | 24 + incubator/xteve/1.4.0/README.md | 55 + incubator/xteve/1.4.0/app-readme.md | 1 + incubator/xteve/1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes incubator/xteve/1.4.0/ix_values.yaml | 15 + incubator/xteve/1.4.0/questions.yaml | 667 +++++++++ incubator/xteve/1.4.0/templates/common.yaml | 1 + incubator/xteve/1.4.0/test_values.yaml | 33 + incubator/xteve/1.4.0/values.yaml | 0 non-free/resilio-sync/1.4.0/CONFIG.md | 9 + non-free/resilio-sync/1.4.0/Chart.lock | 6 + non-free/resilio-sync/1.4.0/Chart.yaml | 24 + non-free/resilio-sync/1.4.0/README.md | 54 + non-free/resilio-sync/1.4.0/app-readme.md | 1 + .../1.4.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes non-free/resilio-sync/1.4.0/ix_values.yaml | 15 + non-free/resilio-sync/1.4.0/questions.yaml | 858 ++++++++++++ .../resilio-sync/1.4.0/templates/common.yaml | 1 + non-free/resilio-sync/1.4.0/test_values.yaml | 72 + non-free/resilio-sync/1.4.0/values.yaml | 0 stable/collabora-online/6.6.0/CONFIG.md | 9 + stable/collabora-online/6.6.0/Chart.lock | 6 + stable/collabora-online/6.6.0/Chart.yaml | 28 + stable/collabora-online/6.6.0/README.md | 56 + stable/collabora-online/6.6.0/app-readme.md | 3 + .../6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/collabora-online/6.6.0/ix_values.yaml | 14 + stable/collabora-online/6.6.0/questions.yaml | 545 ++++++++ .../6.6.0/templates/common.yaml | 1 + .../collabora-online/6.6.0/test_values.yaml | 22 + stable/collabora-online/6.6.0/values.yaml | 0 stable/deepstack-cpu/4.6.0/CONFIG.md | 9 + stable/deepstack-cpu/4.6.0/Chart.lock | 6 + stable/deepstack-cpu/4.6.0/Chart.yaml | 28 + stable/deepstack-cpu/4.6.0/README.md | 56 + stable/deepstack-cpu/4.6.0/app-readme.md | 3 + .../4.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/deepstack-cpu/4.6.0/ix_values.yaml | 19 + stable/deepstack-cpu/4.6.0/questions.yaml | 681 ++++++++++ .../deepstack-cpu/4.6.0/templates/common.yaml | 1 + stable/deepstack-cpu/4.6.0/test_values.yaml | 39 + stable/deepstack-cpu/4.6.0/values.yaml | 0 stable/emby/6.6.0/CONFIG.md | 9 + stable/emby/6.6.0/Chart.lock | 6 + stable/emby/6.6.0/Chart.yaml | 28 + stable/emby/6.6.0/README.md | 55 + stable/emby/6.6.0/app-readme.md | 3 + stable/emby/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/emby/6.6.0/ix_values.yaml | 22 + stable/emby/6.6.0/questions.yaml | 676 ++++++++++ stable/emby/6.6.0/templates/common.yaml | 1 + stable/emby/6.6.0/test_values.yaml | 29 + stable/emby/6.6.0/values.yaml | 0 stable/esphome/6.6.0/CONFIG.md | 9 + stable/esphome/6.6.0/Chart.lock | 6 + stable/esphome/6.6.0/Chart.yaml | 27 + stable/esphome/6.6.0/README.md | 55 + stable/esphome/6.6.0/app-readme.md | 3 + stable/esphome/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/esphome/6.6.0/ix_values.yaml | 15 + stable/esphome/6.6.0/questions.yaml | 771 +++++++++++ stable/esphome/6.6.0/templates/common.yaml | 1 + stable/esphome/6.6.0/test_values.yaml | 30 + stable/esphome/6.6.0/values.yaml | 0 stable/freeradius/1.2.0/CONFIG.md | 0 stable/freeradius/1.2.0/Chart.lock | 6 + stable/freeradius/1.2.0/Chart.yaml | 27 + stable/freeradius/1.2.0/README.md | 0 stable/freeradius/1.2.0/app-readme.md | 1 + .../freeradius/1.2.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/freeradius/1.2.0/ix_values.yaml | 34 + stable/freeradius/1.2.0/questions.yaml | 601 +++++++++ stable/freeradius/1.2.0/templates/common.yaml | 5 + stable/freeradius/1.2.0/test_values.yaml | 47 + stable/freeradius/1.2.0/values.yaml | 0 stable/handbrake/6.6.0/CONFIG.md | 9 + stable/handbrake/6.6.0/Chart.lock | 6 + stable/handbrake/6.6.0/Chart.yaml | 30 + stable/handbrake/6.6.0/README.md | 56 + stable/handbrake/6.6.0/app-readme.md | 3 + .../handbrake/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/handbrake/6.6.0/ix_values.yaml | 20 + stable/handbrake/6.6.0/questions.yaml | 837 ++++++++++++ stable/handbrake/6.6.0/templates/common.yaml | 1 + stable/handbrake/6.6.0/test_values.yaml | 51 + stable/handbrake/6.6.0/values.yaml | 0 stable/home-assistant/6.6.0/CONFIG.md | 9 + stable/home-assistant/6.6.0/Chart.lock | 6 + stable/home-assistant/6.6.0/Chart.yaml | 28 + stable/home-assistant/6.6.0/README.md | 55 + stable/home-assistant/6.6.0/app-readme.md | 3 + .../6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/home-assistant/6.6.0/ix_values.yaml | 15 + stable/home-assistant/6.6.0/questions.yaml | 683 ++++++++++ .../6.6.0/templates/common.yaml | 1 + .../6.6.0/templates/secret.yaml | 15 + stable/home-assistant/6.6.0/test_values.yaml | 83 ++ stable/home-assistant/6.6.0/values.yaml | 0 stable/jackett/6.6.0/CONFIG.md | 9 + stable/jackett/6.6.0/Chart.lock | 6 + stable/jackett/6.6.0/Chart.yaml | 27 + stable/jackett/6.6.0/README.md | 54 + stable/jackett/6.6.0/app-readme.md | 3 + stable/jackett/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/jackett/6.6.0/ix_values.yaml | 25 + stable/jackett/6.6.0/questions.yaml | 667 +++++++++ stable/jackett/6.6.0/templates/common.yaml | 1 + stable/jackett/6.6.0/test_values.yaml | 39 + stable/jackett/6.6.0/values.yaml | 0 stable/jellyfin/6.6.0/CONFIG.md | 9 + stable/jellyfin/6.6.0/Chart.lock | 6 + stable/jellyfin/6.6.0/Chart.yaml | 27 + stable/jellyfin/6.6.0/README.md | 54 + stable/jellyfin/6.6.0/app-readme.md | 3 + stable/jellyfin/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/jellyfin/6.6.0/ix_values.yaml | 22 + stable/jellyfin/6.6.0/questions.yaml | 676 ++++++++++ stable/jellyfin/6.6.0/templates/common.yaml | 1 + stable/jellyfin/6.6.0/test_values.yaml | 29 + stable/jellyfin/6.6.0/values.yaml | 0 stable/kms/6.6.0/CONFIG.md | 9 + stable/kms/6.6.0/Chart.lock | 6 + stable/kms/6.6.0/Chart.yaml | 25 + stable/kms/6.6.0/README.md | 54 + stable/kms/6.6.0/app-readme.md | 3 + stable/kms/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/kms/6.6.0/ix_values.yaml | 16 + stable/kms/6.6.0/questions.yaml | 395 ++++++ stable/kms/6.6.0/templates/common.yaml | 1 + stable/kms/6.6.0/test_values.yaml | 16 + stable/kms/6.6.0/values.yaml | 0 stable/lidarr/6.6.0/CONFIG.md | 9 + stable/lidarr/6.6.0/Chart.lock | 6 + stable/lidarr/6.6.0/Chart.yaml | 27 + stable/lidarr/6.6.0/README.md | 54 + stable/lidarr/6.6.0/app-readme.md | 3 + stable/lidarr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/lidarr/6.6.0/ix_values.yaml | 37 + stable/lidarr/6.6.0/questions.yaml | 667 +++++++++ stable/lidarr/6.6.0/templates/common.yaml | 1 + stable/lidarr/6.6.0/test_values.yaml | 47 + stable/lidarr/6.6.0/values.yaml | 0 stable/nextcloud/1.10.0/CONFIG.md | 9 + stable/nextcloud/1.10.0/Chart.lock | 12 + stable/nextcloud/1.10.0/Chart.yaml | 39 + stable/nextcloud/1.10.0/README.md | 57 + stable/nextcloud/1.10.0/app-readme.md | 1 + .../nextcloud/1.10.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../1.10.0/charts/postgresql-10.9.1.tgz | Bin 0 -> 52056 bytes .../nextcloud/1.10.0/charts/redis-14.8.8.tgz | Bin 0 -> 77694 bytes stable/nextcloud/1.10.0/ix_values.yaml | 186 +++ stable/nextcloud/1.10.0/questions.yaml | 1055 +++++++++++++++ .../nextcloud/1.10.0/templates/_configmap.tpl | 33 + .../nextcloud/1.10.0/templates/_cronjob.tpl | 51 + .../nextcloud/1.10.0/templates/_secrets.tpl | 50 + stable/nextcloud/1.10.0/templates/common.yaml | 14 + stable/nextcloud/1.10.0/test_values.yaml | 224 +++ stable/nextcloud/1.10.0/values.yaml | 0 stable/ombi/6.6.0/CONFIG.md | 9 + stable/ombi/6.6.0/Chart.lock | 6 + stable/ombi/6.6.0/Chart.yaml | 30 + stable/ombi/6.6.0/README.md | 54 + stable/ombi/6.6.0/app-readme.md | 3 + stable/ombi/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/ombi/6.6.0/ix_values.yaml | 15 + stable/ombi/6.6.0/questions.yaml | 667 +++++++++ stable/ombi/6.6.0/templates/common.yaml | 1 + stable/ombi/6.6.0/test_values.yaml | 40 + stable/ombi/6.6.0/values.yaml | 0 stable/openldap/1.2.0/CONFIG.md | 9 + stable/openldap/1.2.0/Chart.lock | 6 + stable/openldap/1.2.0/Chart.yaml | 29 + stable/openldap/1.2.0/README.md | 56 + stable/openldap/1.2.0/app-readme.md | 1 + stable/openldap/1.2.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/openldap/1.2.0/ix_values.yaml | 50 + stable/openldap/1.2.0/questions.yaml | 799 +++++++++++ .../openldap/1.2.0/templates/_configmap.tpl | 21 + stable/openldap/1.2.0/templates/common.yaml | 8 + stable/openldap/1.2.0/test_values.yaml | 88 ++ stable/openldap/1.2.0/values.yaml | 0 stable/pgadmin/1.3.0/CONFIG.md | 9 + stable/pgadmin/1.3.0/Chart.lock | 6 + stable/pgadmin/1.3.0/Chart.yaml | 27 + stable/pgadmin/1.3.0/README.md | 54 + stable/pgadmin/1.3.0/app-readme.md | 1 + stable/pgadmin/1.3.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/pgadmin/1.3.0/ix_values.yaml | 16 + stable/pgadmin/1.3.0/questions.yaml | 681 ++++++++++ stable/pgadmin/1.3.0/templates/common.yaml | 1 + stable/pgadmin/1.3.0/test_values.yaml | 26 + stable/pgadmin/1.3.0/values.yaml | 0 stable/phpldapadmin/1.3.0/CONFIG.md | 9 + stable/phpldapadmin/1.3.0/Chart.lock | 6 + stable/phpldapadmin/1.3.0/Chart.yaml | 27 + stable/phpldapadmin/1.3.0/README.md | 54 + stable/phpldapadmin/1.3.0/app-readme.md | 1 + .../1.3.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/phpldapadmin/1.3.0/ix_values.yaml | 16 + stable/phpldapadmin/1.3.0/questions.yaml | 564 ++++++++ .../phpldapadmin/1.3.0/templates/common.yaml | 1 + stable/phpldapadmin/1.3.0/test_values.yaml | 21 + stable/phpldapadmin/1.3.0/values.yaml | 0 stable/plex/5.6.0/CONFIG.md | 9 + stable/plex/5.6.0/Chart.lock | 6 + stable/plex/5.6.0/Chart.yaml | 25 + stable/plex/5.6.0/README.md | 52 + stable/plex/5.6.0/app-readme.md | 3 + stable/plex/5.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/plex/5.6.0/ix_values.yaml | 19 + stable/plex/5.6.0/questions.yaml | 695 ++++++++++ stable/plex/5.6.0/templates/common.yaml | 1 + stable/plex/5.6.0/test_values.yaml | 32 + stable/plex/5.6.0/values.yaml | 0 stable/radarr/6.6.0/CONFIG.md | 9 + stable/radarr/6.6.0/Chart.lock | 6 + stable/radarr/6.6.0/Chart.yaml | 27 + stable/radarr/6.6.0/README.md | 54 + stable/radarr/6.6.0/app-readme.md | 3 + stable/radarr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/radarr/6.6.0/ix_values.yaml | 37 + stable/radarr/6.6.0/questions.yaml | 667 +++++++++ stable/radarr/6.6.0/templates/common.yaml | 1 + stable/radarr/6.6.0/test_values.yaml | 47 + stable/radarr/6.6.0/values.yaml | 0 stable/sonarr/6.6.0/CONFIG.md | 9 + stable/sonarr/6.6.0/Chart.lock | 6 + stable/sonarr/6.6.0/Chart.yaml | 27 + stable/sonarr/6.6.0/README.md | 54 + stable/sonarr/6.6.0/app-readme.md | 3 + stable/sonarr/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/sonarr/6.6.0/ix_values.yaml | 37 + stable/sonarr/6.6.0/questions.yaml | 667 +++++++++ stable/sonarr/6.6.0/templates/common.yaml | 1 + stable/sonarr/6.6.0/test_values.yaml | 47 + stable/sonarr/6.6.0/values.yaml | 0 stable/syncthing/6.6.0/CONFIG.md | 9 + stable/syncthing/6.6.0/Chart.lock | 6 + stable/syncthing/6.6.0/Chart.yaml | 27 + stable/syncthing/6.6.0/README.md | 56 + stable/syncthing/6.6.0/app-readme.md | 3 + .../syncthing/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/syncthing/6.6.0/ix_values.yaml | 15 + stable/syncthing/6.6.0/questions.yaml | 928 +++++++++++++ stable/syncthing/6.6.0/templates/common.yaml | 1 + stable/syncthing/6.6.0/test_values.yaml | 38 + stable/syncthing/6.6.0/values.yaml | 0 stable/tautulli/6.6.0/CONFIG.md | 9 + stable/tautulli/6.6.0/Chart.lock | 6 + stable/tautulli/6.6.0/Chart.yaml | 26 + stable/tautulli/6.6.0/README.md | 54 + stable/tautulli/6.6.0/app-readme.md | 3 + stable/tautulli/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/tautulli/6.6.0/ix_values.yaml | 15 + stable/tautulli/6.6.0/questions.yaml | 667 +++++++++ stable/tautulli/6.6.0/templates/common.yaml | 1 + stable/tautulli/6.6.0/test_values.yaml | 26 + stable/tautulli/6.6.0/values.yaml | 0 stable/traefik/6.8.0/CONFIG.md | 9 + stable/traefik/6.8.0/Chart.lock | 6 + stable/traefik/6.8.0/Chart.yaml | 29 + stable/traefik/6.8.0/LICENSE | 202 +++ stable/traefik/6.8.0/README.md | 56 + stable/traefik/6.8.0/app-readme.md | 3 + stable/traefik/6.8.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/traefik/6.8.0/crds/ingressroute.yaml | 12 + .../traefik/6.8.0/crds/ingressroutetcp.yaml | 12 + .../traefik/6.8.0/crds/ingressrouteudp.yaml | 13 + stable/traefik/6.8.0/crds/middlewares.yaml | 12 + .../traefik/6.8.0/crds/serverstransports.yaml | 12 + stable/traefik/6.8.0/crds/tlsoptions.yaml | 12 + stable/traefik/6.8.0/crds/tlsstores.yaml | 13 + .../traefik/6.8.0/crds/traefikservices.yaml | 12 + stable/traefik/6.8.0/ix_values.yaml | 332 +++++ stable/traefik/6.8.0/questions.yaml | 498 +++++++ stable/traefik/6.8.0/templates/_helpers.tpl | 62 + .../traefik/6.8.0/templates/_podtemplate.tpl | 265 ++++ .../6.8.0/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.8.0/templates/custom/portal.yaml | 45 + .../6.8.0/templates/custom/portalhook.yaml | 12 + stable/traefik/6.8.0/templates/daemonset.yaml | 40 + .../dashboard-hook-ingressroute.yaml | 28 + .../traefik/6.8.0/templates/deployment.yaml | 47 + stable/traefik/6.8.0/templates/gateway.yaml | 33 + .../traefik/6.8.0/templates/gatewayclass.yaml | 9 + stable/traefik/6.8.0/templates/hpa.yaml | 20 + .../traefik/6.8.0/templates/ingressclass.yaml | 23 + .../6.8.0/templates/poddisruptionbudget.yaml | 22 + .../6.8.0/templates/rbac/clusterrole.yaml | 112 ++ .../templates/rbac/clusterrolebinding.yaml | 19 + .../templates/rbac/podsecuritypolicy.yaml | 68 + stable/traefik/6.8.0/templates/rbac/role.yaml | 61 + .../6.8.0/templates/rbac/rolebinding.yaml | 19 + .../6.8.0/templates/rbac/serviceaccount.yaml | 15 + stable/traefik/6.8.0/templates/service.yaml | 114 ++ stable/traefik/6.8.0/templates/tlsoption.yaml | 14 + stable/traefik/6.8.0/test_values.yaml | 438 ++++++ stable/traefik/6.8.0/values.yaml | 0 stable/transmission/6.6.0/CONFIG.md | 9 + stable/transmission/6.6.0/Chart.lock | 6 + stable/transmission/6.6.0/Chart.yaml | 28 + stable/transmission/6.6.0/README.md | 55 + stable/transmission/6.6.0/app-readme.md | 3 + .../6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/transmission/6.6.0/ix_values.yaml | 50 + stable/transmission/6.6.0/questions.yaml | 1156 ++++++++++++++++ .../transmission/6.6.0/templates/common.yaml | 2 + stable/transmission/6.6.0/test_values.yaml | 106 ++ stable/transmission/6.6.0/values.yaml | 0 stable/truecommand/6.6.0/CONFIG.md | 9 + stable/truecommand/6.6.0/Chart.lock | 6 + stable/truecommand/6.6.0/Chart.yaml | 25 + stable/truecommand/6.6.0/README.md | 54 + stable/truecommand/6.6.0/app-readme.md | 3 + .../truecommand/6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/truecommand/6.6.0/ix_values.yaml | 15 + stable/truecommand/6.6.0/questions.yaml | 628 +++++++++ .../truecommand/6.6.0/templates/common.yaml | 1 + stable/truecommand/6.6.0/test_values.yaml | 26 + stable/truecommand/6.6.0/values.yaml | 0 stable/vaultwarden/3.11.0/CONFIG.md | 9 + stable/vaultwarden/3.11.0/Chart.lock | 9 + stable/vaultwarden/3.11.0/Chart.yaml | 34 + stable/vaultwarden/3.11.0/README.md | 55 + stable/vaultwarden/3.11.0/app-readme.md | 3 + .../3.11.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes .../3.11.0/charts/postgresql-10.8.0.tgz | Bin 0 -> 51360 bytes stable/vaultwarden/3.11.0/ix_values.yaml | 56 + stable/vaultwarden/3.11.0/questions.yaml | 1199 +++++++++++++++++ .../3.11.0/templates/_configmap.tpl | 116 ++ .../vaultwarden/3.11.0/templates/_secrets.tpl | 59 + .../3.11.0/templates/_validate.tpl | 17 + .../vaultwarden/3.11.0/templates/common.yaml | 11 + stable/vaultwarden/3.11.0/test_values.yaml | 176 +++ stable/vaultwarden/3.11.0/values.yaml | 0 stable/zwavejs2mqtt/6.6.0/CONFIG.md | 9 + stable/zwavejs2mqtt/6.6.0/Chart.lock | 6 + stable/zwavejs2mqtt/6.6.0/Chart.yaml | 30 + stable/zwavejs2mqtt/6.6.0/README.md | 55 + stable/zwavejs2mqtt/6.6.0/app-readme.md | 3 + .../6.6.0/charts/common-6.8.0.tgz | Bin 0 -> 23779 bytes stable/zwavejs2mqtt/6.6.0/ix_values.yaml | 63 + stable/zwavejs2mqtt/6.6.0/questions.yaml | 798 +++++++++++ .../zwavejs2mqtt/6.6.0/templates/common.yaml | 1 + stable/zwavejs2mqtt/6.6.0/test_values.yaml | 103 ++ stable/zwavejs2mqtt/6.6.0/values.yaml | 0 1003 files changed, 77433 insertions(+) create mode 100644 deprecated/nzbhydra/6.6.0/CONFIG.md create mode 100644 deprecated/nzbhydra/6.6.0/Chart.lock create mode 100644 deprecated/nzbhydra/6.6.0/Chart.yaml create mode 100644 deprecated/nzbhydra/6.6.0/README.md create mode 100644 deprecated/nzbhydra/6.6.0/app-readme.md create mode 100644 deprecated/nzbhydra/6.6.0/charts/common-6.8.0.tgz create mode 100644 deprecated/nzbhydra/6.6.0/ix_values.yaml create mode 100644 deprecated/nzbhydra/6.6.0/questions.yaml create mode 100644 deprecated/nzbhydra/6.6.0/templates/common.yaml create mode 100644 deprecated/nzbhydra/6.6.0/test_values.yaml create mode 100644 deprecated/nzbhydra/6.6.0/values.yaml create mode 100644 develop/prototype-gui/1.7.0/CONFIG.md create mode 100644 develop/prototype-gui/1.7.0/Chart.lock create mode 100644 develop/prototype-gui/1.7.0/Chart.yaml create mode 100644 develop/prototype-gui/1.7.0/README.md create mode 100644 develop/prototype-gui/1.7.0/app-readme.md create mode 100644 develop/prototype-gui/1.7.0/charts/common-6.8.0.tgz create mode 100644 develop/prototype-gui/1.7.0/ix_values.yaml create mode 100644 develop/prototype-gui/1.7.0/questions.yaml create mode 100644 develop/prototype-gui/1.7.0/templates/common.yaml create mode 100644 develop/prototype-gui/1.7.0/test_values.yaml create mode 100644 develop/prototype-gui/1.7.0/values.yaml create mode 100644 incubator/airsonic/1.6.0/CONFIG.md create mode 100644 incubator/airsonic/1.6.0/Chart.lock create mode 100644 incubator/airsonic/1.6.0/Chart.yaml create mode 100644 incubator/airsonic/1.6.0/README.md create mode 100644 incubator/airsonic/1.6.0/app-readme.md create mode 100644 incubator/airsonic/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/airsonic/1.6.0/ix_values.yaml create mode 100644 incubator/airsonic/1.6.0/questions.yaml create mode 100644 incubator/airsonic/1.6.0/templates/common.yaml create mode 100644 incubator/airsonic/1.6.0/test_values.yaml create mode 100644 incubator/airsonic/1.6.0/values.yaml create mode 100644 incubator/appdaemon/3.6.0/CONFIG.md create mode 100644 incubator/appdaemon/3.6.0/Chart.lock create mode 100644 incubator/appdaemon/3.6.0/Chart.yaml create mode 100644 incubator/appdaemon/3.6.0/README.md create mode 100644 incubator/appdaemon/3.6.0/app-readme.md create mode 100644 incubator/appdaemon/3.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/appdaemon/3.6.0/ix_values.yaml create mode 100644 incubator/appdaemon/3.6.0/questions.yaml create mode 100644 incubator/appdaemon/3.6.0/templates/common.yaml create mode 100644 incubator/appdaemon/3.6.0/test_values.yaml create mode 100644 incubator/appdaemon/3.6.0/values.yaml create mode 100644 incubator/bazarr/6.6.0/CONFIG.md create mode 100644 incubator/bazarr/6.6.0/Chart.lock create mode 100644 incubator/bazarr/6.6.0/Chart.yaml create mode 100644 incubator/bazarr/6.6.0/README.md create mode 100644 incubator/bazarr/6.6.0/app-readme.md create mode 100644 incubator/bazarr/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/bazarr/6.6.0/ix_values.yaml create mode 100644 incubator/bazarr/6.6.0/questions.yaml create mode 100644 incubator/bazarr/6.6.0/templates/common.yaml create mode 100644 incubator/bazarr/6.6.0/test_values.yaml create mode 100644 incubator/bazarr/6.6.0/values.yaml create mode 100644 incubator/booksonic-air/1.4.0/CONFIG.md create mode 100644 incubator/booksonic-air/1.4.0/Chart.lock create mode 100644 incubator/booksonic-air/1.4.0/Chart.yaml create mode 100644 incubator/booksonic-air/1.4.0/README.md create mode 100644 incubator/booksonic-air/1.4.0/app-readme.md create mode 100644 incubator/booksonic-air/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/booksonic-air/1.4.0/ix_values.yaml create mode 100644 incubator/booksonic-air/1.4.0/questions.yaml create mode 100644 incubator/booksonic-air/1.4.0/templates/common.yaml create mode 100644 incubator/booksonic-air/1.4.0/test_values.yaml create mode 100644 incubator/booksonic-air/1.4.0/values.yaml create mode 100644 incubator/calibre-web/6.6.0/CONFIG.md create mode 100644 incubator/calibre-web/6.6.0/Chart.lock create mode 100644 incubator/calibre-web/6.6.0/Chart.yaml create mode 100644 incubator/calibre-web/6.6.0/README.md create mode 100644 incubator/calibre-web/6.6.0/app-readme.md create mode 100644 incubator/calibre-web/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/calibre-web/6.6.0/ix_values.yaml create mode 100644 incubator/calibre-web/6.6.0/questions.yaml create mode 100644 incubator/calibre-web/6.6.0/templates/common.yaml create mode 100644 incubator/calibre-web/6.6.0/test_values.yaml create mode 100644 incubator/calibre-web/6.6.0/values.yaml create mode 100644 incubator/calibre/1.4.0/CONFIG.md create mode 100644 incubator/calibre/1.4.0/Chart.lock create mode 100644 incubator/calibre/1.4.0/Chart.yaml create mode 100644 incubator/calibre/1.4.0/README.md create mode 100644 incubator/calibre/1.4.0/app-readme.md create mode 100644 incubator/calibre/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/calibre/1.4.0/ix_values.yaml create mode 100644 incubator/calibre/1.4.0/questions.yaml create mode 100644 incubator/calibre/1.4.0/templates/common.yaml create mode 100644 incubator/calibre/1.4.0/test_values.yaml create mode 100644 incubator/calibre/1.4.0/values.yaml create mode 100644 incubator/deconz/1.4.0/CONFIG.md create mode 100644 incubator/deconz/1.4.0/Chart.lock create mode 100644 incubator/deconz/1.4.0/Chart.yaml create mode 100644 incubator/deconz/1.4.0/README.md create mode 100644 incubator/deconz/1.4.0/app-readme.md create mode 100644 incubator/deconz/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/deconz/1.4.0/ix_values.yaml create mode 100644 incubator/deconz/1.4.0/questions.yaml create mode 100644 incubator/deconz/1.4.0/templates/common.yaml create mode 100644 incubator/deconz/1.4.0/test_values.yaml create mode 100644 incubator/deconz/1.4.0/values.yaml create mode 100644 incubator/deluge/6.6.0/CONFIG.md create mode 100644 incubator/deluge/6.6.0/Chart.lock create mode 100644 incubator/deluge/6.6.0/Chart.yaml create mode 100644 incubator/deluge/6.6.0/README.md create mode 100644 incubator/deluge/6.6.0/app-readme.md create mode 100644 incubator/deluge/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/deluge/6.6.0/ix_values.yaml create mode 100644 incubator/deluge/6.6.0/questions.yaml create mode 100644 incubator/deluge/6.6.0/templates/common.yaml create mode 100644 incubator/deluge/6.6.0/test_values.yaml create mode 100644 incubator/deluge/6.6.0/values.yaml create mode 100644 incubator/dizquetv/1.4.0/CONFIG.md create mode 100644 incubator/dizquetv/1.4.0/Chart.lock create mode 100644 incubator/dizquetv/1.4.0/Chart.yaml create mode 100644 incubator/dizquetv/1.4.0/README.md create mode 100644 incubator/dizquetv/1.4.0/app-readme.md create mode 100644 incubator/dizquetv/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/dizquetv/1.4.0/ix_values.yaml create mode 100644 incubator/dizquetv/1.4.0/questions.yaml create mode 100644 incubator/dizquetv/1.4.0/templates/common.yaml create mode 100644 incubator/dizquetv/1.4.0/test_values.yaml create mode 100644 incubator/dizquetv/1.4.0/values.yaml create mode 100644 incubator/duplicati/1.4.0/CONFIG.md create mode 100644 incubator/duplicati/1.4.0/Chart.lock create mode 100644 incubator/duplicati/1.4.0/Chart.yaml create mode 100644 incubator/duplicati/1.4.0/README.md create mode 100644 incubator/duplicati/1.4.0/app-readme.md create mode 100644 incubator/duplicati/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/duplicati/1.4.0/ix_values.yaml create mode 100644 incubator/duplicati/1.4.0/questions.yaml create mode 100644 incubator/duplicati/1.4.0/templates/common.yaml create mode 100644 incubator/duplicati/1.4.0/test_values.yaml create mode 100644 incubator/duplicati/1.4.0/values.yaml create mode 100644 incubator/fireflyiii/4.11.0/CONFIG.md create mode 100644 incubator/fireflyiii/4.11.0/Chart.lock create mode 100644 incubator/fireflyiii/4.11.0/Chart.yaml create mode 100644 incubator/fireflyiii/4.11.0/README.md create mode 100644 incubator/fireflyiii/4.11.0/app-readme.md create mode 100644 incubator/fireflyiii/4.11.0/charts/common-6.8.0.tgz create mode 100644 incubator/fireflyiii/4.11.0/charts/postgresql-10.9.1.tgz create mode 100644 incubator/fireflyiii/4.11.0/ix_values.yaml create mode 100644 incubator/fireflyiii/4.11.0/questions.yaml create mode 100644 incubator/fireflyiii/4.11.0/templates/common.yaml create mode 100644 incubator/fireflyiii/4.11.0/templates/secrets.yaml create mode 100644 incubator/fireflyiii/4.11.0/test_values.yaml create mode 100644 incubator/fireflyiii/4.11.0/values.yaml create mode 100644 incubator/flaresolverr/1.4.0/CONFIG.md create mode 100644 incubator/flaresolverr/1.4.0/Chart.lock create mode 100644 incubator/flaresolverr/1.4.0/Chart.yaml create mode 100644 incubator/flaresolverr/1.4.0/README.md create mode 100644 incubator/flaresolverr/1.4.0/app-readme.md create mode 100644 incubator/flaresolverr/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/flaresolverr/1.4.0/ix_values.yaml create mode 100644 incubator/flaresolverr/1.4.0/questions.yaml create mode 100644 incubator/flaresolverr/1.4.0/templates/common.yaml create mode 100644 incubator/flaresolverr/1.4.0/test_values.yaml create mode 100644 incubator/flaresolverr/1.4.0/values.yaml create mode 100644 incubator/flood/1.4.0/CONFIG.md create mode 100644 incubator/flood/1.4.0/Chart.lock create mode 100644 incubator/flood/1.4.0/Chart.yaml create mode 100644 incubator/flood/1.4.0/README.md create mode 100644 incubator/flood/1.4.0/app-readme.md create mode 100644 incubator/flood/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/flood/1.4.0/ci/ct-values.yaml create mode 100644 incubator/flood/1.4.0/ix_values.yaml create mode 100644 incubator/flood/1.4.0/questions.yaml create mode 100644 incubator/flood/1.4.0/templates/common.yaml create mode 100644 incubator/flood/1.4.0/test_values.yaml create mode 100644 incubator/flood/1.4.0/values.yaml create mode 100644 incubator/focalboard/1.4.0/CONFIG.md create mode 100644 incubator/focalboard/1.4.0/Chart.lock create mode 100644 incubator/focalboard/1.4.0/Chart.yaml create mode 100644 incubator/focalboard/1.4.0/README.md create mode 100644 incubator/focalboard/1.4.0/app-readme.md create mode 100644 incubator/focalboard/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/focalboard/1.4.0/ix_values.yaml create mode 100644 incubator/focalboard/1.4.0/questions.yaml create mode 100644 incubator/focalboard/1.4.0/templates/common.yaml create mode 100644 incubator/focalboard/1.4.0/test_values.yaml create mode 100644 incubator/focalboard/1.4.0/values.yaml create mode 100644 incubator/freshrss/6.6.0/CONFIG.md create mode 100644 incubator/freshrss/6.6.0/Chart.lock create mode 100644 incubator/freshrss/6.6.0/Chart.yaml create mode 100644 incubator/freshrss/6.6.0/README.md create mode 100644 incubator/freshrss/6.6.0/app-readme.md create mode 100644 incubator/freshrss/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/freshrss/6.6.0/ix_values.yaml create mode 100644 incubator/freshrss/6.6.0/questions.yaml create mode 100644 incubator/freshrss/6.6.0/templates/common.yaml create mode 100644 incubator/freshrss/6.6.0/test_values.yaml create mode 100644 incubator/freshrss/6.6.0/values.yaml create mode 100644 incubator/gaps/6.6.0/CONFIG.md create mode 100644 incubator/gaps/6.6.0/Chart.lock create mode 100644 incubator/gaps/6.6.0/Chart.yaml create mode 100644 incubator/gaps/6.6.0/README.md create mode 100644 incubator/gaps/6.6.0/app-readme.md create mode 100644 incubator/gaps/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/gaps/6.6.0/ix_values.yaml create mode 100644 incubator/gaps/6.6.0/questions.yaml create mode 100644 incubator/gaps/6.6.0/templates/common.yaml create mode 100644 incubator/gaps/6.6.0/test_values.yaml create mode 100644 incubator/gaps/6.6.0/values.yaml create mode 100644 incubator/gonic/1.4.0/CONFIG.md create mode 100644 incubator/gonic/1.4.0/Chart.lock create mode 100644 incubator/gonic/1.4.0/Chart.yaml create mode 100644 incubator/gonic/1.4.0/README.md create mode 100644 incubator/gonic/1.4.0/app-readme.md create mode 100644 incubator/gonic/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/gonic/1.4.0/ci/ct-values.yaml create mode 100644 incubator/gonic/1.4.0/ix_values.yaml create mode 100644 incubator/gonic/1.4.0/questions.yaml create mode 100644 incubator/gonic/1.4.0/templates/common.yaml create mode 100644 incubator/gonic/1.4.0/test_values.yaml create mode 100644 incubator/gonic/1.4.0/values.yaml create mode 100644 incubator/grocy/6.6.0/CONFIG.md create mode 100644 incubator/grocy/6.6.0/Chart.lock create mode 100644 incubator/grocy/6.6.0/Chart.yaml create mode 100644 incubator/grocy/6.6.0/README.md create mode 100644 incubator/grocy/6.6.0/app-readme.md create mode 100644 incubator/grocy/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/grocy/6.6.0/ix_values.yaml create mode 100644 incubator/grocy/6.6.0/questions.yaml create mode 100644 incubator/grocy/6.6.0/templates/common.yaml create mode 100644 incubator/grocy/6.6.0/test_values.yaml create mode 100644 incubator/grocy/6.6.0/values.yaml create mode 100644 incubator/haste-server/1.6.0/CONFIG.md create mode 100644 incubator/haste-server/1.6.0/Chart.lock create mode 100644 incubator/haste-server/1.6.0/Chart.yaml create mode 100644 incubator/haste-server/1.6.0/README.md create mode 100644 incubator/haste-server/1.6.0/app-readme.md create mode 100644 incubator/haste-server/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/haste-server/1.6.0/ix_values.yaml create mode 100644 incubator/haste-server/1.6.0/questions.yaml create mode 100644 incubator/haste-server/1.6.0/templates/common.yaml create mode 100644 incubator/haste-server/1.6.0/test_values.yaml create mode 100644 incubator/haste-server/1.6.0/values.yaml create mode 100644 incubator/healthchecks/1.4.0/CONFIG.md create mode 100644 incubator/healthchecks/1.4.0/Chart.lock create mode 100644 incubator/healthchecks/1.4.0/Chart.yaml create mode 100644 incubator/healthchecks/1.4.0/README.md create mode 100644 incubator/healthchecks/1.4.0/app-readme.md create mode 100644 incubator/healthchecks/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/healthchecks/1.4.0/ix_values.yaml create mode 100644 incubator/healthchecks/1.4.0/questions.yaml create mode 100644 incubator/healthchecks/1.4.0/templates/common.yaml create mode 100644 incubator/healthchecks/1.4.0/test_values.yaml create mode 100644 incubator/healthchecks/1.4.0/values.yaml create mode 100644 incubator/heimdall/6.6.0/CONFIG.md create mode 100644 incubator/heimdall/6.6.0/Chart.lock create mode 100644 incubator/heimdall/6.6.0/Chart.yaml create mode 100644 incubator/heimdall/6.6.0/README.md create mode 100644 incubator/heimdall/6.6.0/app-readme.md create mode 100644 incubator/heimdall/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/heimdall/6.6.0/ix_values.yaml create mode 100644 incubator/heimdall/6.6.0/questions.yaml create mode 100644 incubator/heimdall/6.6.0/templates/common.yaml create mode 100644 incubator/heimdall/6.6.0/test_values.yaml create mode 100644 incubator/heimdall/6.6.0/values.yaml create mode 100644 incubator/hyperion-ng/1.4.0/CONFIG.md create mode 100644 incubator/hyperion-ng/1.4.0/Chart.lock create mode 100644 incubator/hyperion-ng/1.4.0/Chart.yaml create mode 100644 incubator/hyperion-ng/1.4.0/README.md create mode 100644 incubator/hyperion-ng/1.4.0/app-readme.md create mode 100644 incubator/hyperion-ng/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/hyperion-ng/1.4.0/ix_values.yaml create mode 100644 incubator/hyperion-ng/1.4.0/questions.yaml create mode 100644 incubator/hyperion-ng/1.4.0/templates/common.yaml create mode 100644 incubator/hyperion-ng/1.4.0/test_values.yaml create mode 100644 incubator/hyperion-ng/1.4.0/values.yaml create mode 100644 incubator/komga/1.4.0/CONFIG.md create mode 100644 incubator/komga/1.4.0/Chart.lock create mode 100644 incubator/komga/1.4.0/Chart.yaml create mode 100644 incubator/komga/1.4.0/README.md create mode 100644 incubator/komga/1.4.0/app-readme.md create mode 100644 incubator/komga/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/komga/1.4.0/ix_values.yaml create mode 100644 incubator/komga/1.4.0/questions.yaml create mode 100644 incubator/komga/1.4.0/templates/common.yaml create mode 100644 incubator/komga/1.4.0/test_values.yaml create mode 100644 incubator/komga/1.4.0/values.yaml create mode 100644 incubator/lazylibrarian/6.6.0/CONFIG.md create mode 100644 incubator/lazylibrarian/6.6.0/Chart.lock create mode 100644 incubator/lazylibrarian/6.6.0/Chart.yaml create mode 100644 incubator/lazylibrarian/6.6.0/README.md create mode 100644 incubator/lazylibrarian/6.6.0/app-readme.md create mode 100644 incubator/lazylibrarian/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/lazylibrarian/6.6.0/ix_values.yaml create mode 100644 incubator/lazylibrarian/6.6.0/questions.yaml create mode 100644 incubator/lazylibrarian/6.6.0/templates/common.yaml create mode 100644 incubator/lazylibrarian/6.6.0/test_values.yaml create mode 100644 incubator/lazylibrarian/6.6.0/values.yaml create mode 100644 incubator/librespeed/1.4.0/CONFIG.md create mode 100644 incubator/librespeed/1.4.0/Chart.lock create mode 100644 incubator/librespeed/1.4.0/Chart.yaml create mode 100644 incubator/librespeed/1.4.0/README.md create mode 100644 incubator/librespeed/1.4.0/app-readme.md create mode 100644 incubator/librespeed/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/librespeed/1.4.0/ci/ct-values.yaml create mode 100644 incubator/librespeed/1.4.0/ix_values.yaml create mode 100644 incubator/librespeed/1.4.0/questions.yaml create mode 100644 incubator/librespeed/1.4.0/templates/common.yaml create mode 100644 incubator/librespeed/1.4.0/test_values.yaml create mode 100644 incubator/librespeed/1.4.0/values.yaml create mode 100644 incubator/lychee/6.6.0/CONFIG.md create mode 100644 incubator/lychee/6.6.0/Chart.lock create mode 100644 incubator/lychee/6.6.0/Chart.yaml create mode 100644 incubator/lychee/6.6.0/README.md create mode 100644 incubator/lychee/6.6.0/app-readme.md create mode 100644 incubator/lychee/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/lychee/6.6.0/ix_values.yaml create mode 100644 incubator/lychee/6.6.0/questions.yaml create mode 100644 incubator/lychee/6.6.0/templates/common.yaml create mode 100644 incubator/lychee/6.6.0/test_values.yaml create mode 100644 incubator/lychee/6.6.0/values.yaml create mode 100644 incubator/mealie/1.6.0/CONFIG.md create mode 100644 incubator/mealie/1.6.0/Chart.lock create mode 100644 incubator/mealie/1.6.0/Chart.yaml create mode 100644 incubator/mealie/1.6.0/README.md create mode 100644 incubator/mealie/1.6.0/app-readme.md create mode 100644 incubator/mealie/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/mealie/1.6.0/ix_values.yaml create mode 100644 incubator/mealie/1.6.0/questions.yaml create mode 100644 incubator/mealie/1.6.0/templates/common.yaml create mode 100644 incubator/mealie/1.6.0/test_values.yaml create mode 100644 incubator/mealie/1.6.0/values.yaml create mode 100644 incubator/mosquitto/1.6.0/CONFIG.md create mode 100644 incubator/mosquitto/1.6.0/Chart.lock create mode 100644 incubator/mosquitto/1.6.0/Chart.yaml create mode 100644 incubator/mosquitto/1.6.0/README.md create mode 100644 incubator/mosquitto/1.6.0/app-readme.md create mode 100644 incubator/mosquitto/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/mosquitto/1.6.0/ix_values.yaml create mode 100644 incubator/mosquitto/1.6.0/questions.yaml create mode 100644 incubator/mosquitto/1.6.0/templates/common.yaml create mode 100644 incubator/mosquitto/1.6.0/templates/configmap.yaml create mode 100644 incubator/mosquitto/1.6.0/test_values.yaml create mode 100644 incubator/mosquitto/1.6.0/values.yaml create mode 100644 incubator/mylar/1.4.0/CONFIG.md create mode 100644 incubator/mylar/1.4.0/Chart.lock create mode 100644 incubator/mylar/1.4.0/Chart.yaml create mode 100644 incubator/mylar/1.4.0/README.md create mode 100644 incubator/mylar/1.4.0/app-readme.md create mode 100644 incubator/mylar/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/mylar/1.4.0/ix_values.yaml create mode 100644 incubator/mylar/1.4.0/questions.yaml create mode 100644 incubator/mylar/1.4.0/templates/common.yaml create mode 100644 incubator/mylar/1.4.0/test_values.yaml create mode 100644 incubator/mylar/1.4.0/values.yaml create mode 100644 incubator/navidrome/6.6.0/CONFIG.md create mode 100644 incubator/navidrome/6.6.0/Chart.lock create mode 100644 incubator/navidrome/6.6.0/Chart.yaml create mode 100644 incubator/navidrome/6.6.0/README.md create mode 100644 incubator/navidrome/6.6.0/app-readme.md create mode 100644 incubator/navidrome/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/navidrome/6.6.0/ix_values.yaml create mode 100644 incubator/navidrome/6.6.0/questions.yaml create mode 100644 incubator/navidrome/6.6.0/templates/common.yaml create mode 100644 incubator/navidrome/6.6.0/test_values.yaml create mode 100644 incubator/navidrome/6.6.0/values.yaml create mode 100644 incubator/node-red/6.6.0/CONFIG.md create mode 100644 incubator/node-red/6.6.0/Chart.lock create mode 100644 incubator/node-red/6.6.0/Chart.yaml create mode 100644 incubator/node-red/6.6.0/README.md create mode 100644 incubator/node-red/6.6.0/app-readme.md create mode 100644 incubator/node-red/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/node-red/6.6.0/ix_values.yaml create mode 100644 incubator/node-red/6.6.0/questions.yaml create mode 100644 incubator/node-red/6.6.0/templates/common.yaml create mode 100644 incubator/node-red/6.6.0/test_values.yaml create mode 100644 incubator/node-red/6.6.0/values.yaml create mode 100644 incubator/nullserv/1.4.0/CONFIG.md create mode 100644 incubator/nullserv/1.4.0/Chart.lock create mode 100644 incubator/nullserv/1.4.0/Chart.yaml create mode 100644 incubator/nullserv/1.4.0/README.md create mode 100644 incubator/nullserv/1.4.0/app-readme.md create mode 100644 incubator/nullserv/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/nullserv/1.4.0/ix_values.yaml create mode 100644 incubator/nullserv/1.4.0/questions.yaml create mode 100644 incubator/nullserv/1.4.0/templates/common.yaml create mode 100644 incubator/nullserv/1.4.0/test_values.yaml create mode 100644 incubator/nullserv/1.4.0/values.yaml create mode 100644 incubator/nzbget/6.6.0/CONFIG.md create mode 100644 incubator/nzbget/6.6.0/Chart.lock create mode 100644 incubator/nzbget/6.6.0/Chart.yaml create mode 100644 incubator/nzbget/6.6.0/README.md create mode 100644 incubator/nzbget/6.6.0/app-readme.md create mode 100644 incubator/nzbget/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/nzbget/6.6.0/ix_values.yaml create mode 100644 incubator/nzbget/6.6.0/questions.yaml create mode 100644 incubator/nzbget/6.6.0/templates/common.yaml create mode 100644 incubator/nzbget/6.6.0/test_values.yaml create mode 100644 incubator/nzbget/6.6.0/values.yaml create mode 100644 incubator/octoprint/1.4.0/CONFIG.md create mode 100644 incubator/octoprint/1.4.0/Chart.lock create mode 100644 incubator/octoprint/1.4.0/Chart.yaml create mode 100644 incubator/octoprint/1.4.0/README.md create mode 100644 incubator/octoprint/1.4.0/app-readme.md create mode 100644 incubator/octoprint/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/octoprint/1.4.0/ix_values.yaml create mode 100644 incubator/octoprint/1.4.0/questions.yaml create mode 100644 incubator/octoprint/1.4.0/templates/common.yaml create mode 100644 incubator/octoprint/1.4.0/test_values.yaml create mode 100644 incubator/octoprint/1.4.0/values.yaml create mode 100644 incubator/omada-controller/1.4.0/CONFIG.md create mode 100644 incubator/omada-controller/1.4.0/Chart.lock create mode 100644 incubator/omada-controller/1.4.0/Chart.yaml create mode 100644 incubator/omada-controller/1.4.0/README.md create mode 100644 incubator/omada-controller/1.4.0/app-readme.md create mode 100644 incubator/omada-controller/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/omada-controller/1.4.0/ix_values.yaml create mode 100644 incubator/omada-controller/1.4.0/questions.yaml create mode 100644 incubator/omada-controller/1.4.0/templates/common.yaml create mode 100644 incubator/omada-controller/1.4.0/test_values.yaml create mode 100644 incubator/omada-controller/1.4.0/values.yaml create mode 100644 incubator/organizr/6.6.0/CONFIG.md create mode 100644 incubator/organizr/6.6.0/Chart.lock create mode 100644 incubator/organizr/6.6.0/Chart.yaml create mode 100644 incubator/organizr/6.6.0/README.md create mode 100644 incubator/organizr/6.6.0/app-readme.md create mode 100644 incubator/organizr/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/organizr/6.6.0/ix_values.yaml create mode 100644 incubator/organizr/6.6.0/questions.yaml create mode 100644 incubator/organizr/6.6.0/templates/common.yaml create mode 100644 incubator/organizr/6.6.0/test_values.yaml create mode 100644 incubator/organizr/6.6.0/values.yaml create mode 100644 incubator/overseerr/1.4.0/CONFIG.md create mode 100644 incubator/overseerr/1.4.0/Chart.lock create mode 100644 incubator/overseerr/1.4.0/Chart.yaml create mode 100644 incubator/overseerr/1.4.0/README.md create mode 100644 incubator/overseerr/1.4.0/app-readme.md create mode 100644 incubator/overseerr/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/overseerr/1.4.0/ix_values.yaml create mode 100644 incubator/overseerr/1.4.0/questions.yaml create mode 100644 incubator/overseerr/1.4.0/templates/common.yaml create mode 100644 incubator/overseerr/1.4.0/test_values.yaml create mode 100644 incubator/overseerr/1.4.0/values.yaml create mode 100644 incubator/owncast/1.4.0/CONFIG.md create mode 100644 incubator/owncast/1.4.0/Chart.lock create mode 100644 incubator/owncast/1.4.0/Chart.yaml create mode 100644 incubator/owncast/1.4.0/README.md create mode 100644 incubator/owncast/1.4.0/app-readme.md create mode 100644 incubator/owncast/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/owncast/1.4.0/ix_values.yaml create mode 100644 incubator/owncast/1.4.0/questions.yaml create mode 100644 incubator/owncast/1.4.0/templates/common.yaml create mode 100644 incubator/owncast/1.4.0/test_values.yaml create mode 100644 incubator/owncast/1.4.0/values.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/CONFIG.md create mode 100644 incubator/owncloud-ocis/1.4.0/Chart.lock create mode 100644 incubator/owncloud-ocis/1.4.0/Chart.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/README.md create mode 100644 incubator/owncloud-ocis/1.4.0/app-readme.md create mode 100644 incubator/owncloud-ocis/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/owncloud-ocis/1.4.0/ix_values.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/questions.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/templates/common.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/test_values.yaml create mode 100644 incubator/owncloud-ocis/1.4.0/values.yaml create mode 100644 incubator/photoprism/1.4.0/CONFIG.md create mode 100644 incubator/photoprism/1.4.0/Chart.lock create mode 100644 incubator/photoprism/1.4.0/Chart.yaml create mode 100644 incubator/photoprism/1.4.0/README.md create mode 100644 incubator/photoprism/1.4.0/app-readme.md create mode 100644 incubator/photoprism/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/photoprism/1.4.0/ix_values.yaml create mode 100644 incubator/photoprism/1.4.0/questions.yaml create mode 100644 incubator/photoprism/1.4.0/templates/common.yaml create mode 100644 incubator/photoprism/1.4.0/test_values.yaml create mode 100644 incubator/photoprism/1.4.0/values.yaml create mode 100644 incubator/piaware/1.4.0/CONFIG.md create mode 100644 incubator/piaware/1.4.0/Chart.lock create mode 100644 incubator/piaware/1.4.0/Chart.yaml create mode 100644 incubator/piaware/1.4.0/README.md create mode 100644 incubator/piaware/1.4.0/app-readme.md create mode 100644 incubator/piaware/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/piaware/1.4.0/ci/ct-values.yaml create mode 100644 incubator/piaware/1.4.0/ix_values.yaml create mode 100644 incubator/piaware/1.4.0/questions.yaml create mode 100644 incubator/piaware/1.4.0/templates/common.yaml create mode 100644 incubator/piaware/1.4.0/test_values.yaml create mode 100644 incubator/piaware/1.4.0/values.yaml create mode 100644 incubator/podgrab/4.6.0/CONFIG.md create mode 100644 incubator/podgrab/4.6.0/Chart.lock create mode 100644 incubator/podgrab/4.6.0/Chart.yaml create mode 100644 incubator/podgrab/4.6.0/README.md create mode 100644 incubator/podgrab/4.6.0/app-readme.md create mode 100644 incubator/podgrab/4.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/podgrab/4.6.0/ix_values.yaml create mode 100644 incubator/podgrab/4.6.0/questions.yaml create mode 100644 incubator/podgrab/4.6.0/templates/common.yaml create mode 100644 incubator/podgrab/4.6.0/test_values.yaml create mode 100644 incubator/podgrab/4.6.0/values.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/CONFIG.md create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/Chart.lock create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/Chart.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/README.md create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/app-readme.md create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/ix_values.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/questions.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/templates/common.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/test_values.yaml create mode 100644 incubator/pretend-youre-xyzzy/1.4.0/values.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/CONFIG.md create mode 100644 incubator/protonmail-bridge/1.4.0/Chart.lock create mode 100644 incubator/protonmail-bridge/1.4.0/Chart.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/README.md create mode 100644 incubator/protonmail-bridge/1.4.0/app-readme.md create mode 100644 incubator/protonmail-bridge/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/protonmail-bridge/1.4.0/ix_values.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/questions.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/templates/common.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/test_values.yaml create mode 100644 incubator/protonmail-bridge/1.4.0/values.yaml create mode 100644 incubator/prowlarr/1.6.0/CONFIG.md create mode 100644 incubator/prowlarr/1.6.0/Chart.lock create mode 100644 incubator/prowlarr/1.6.0/Chart.yaml create mode 100644 incubator/prowlarr/1.6.0/README.md create mode 100644 incubator/prowlarr/1.6.0/app-readme.md create mode 100644 incubator/prowlarr/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/prowlarr/1.6.0/ix_values.yaml create mode 100644 incubator/prowlarr/1.6.0/questions.yaml create mode 100644 incubator/prowlarr/1.6.0/templates/common.yaml create mode 100644 incubator/prowlarr/1.6.0/test_values.yaml create mode 100644 incubator/prowlarr/1.6.0/values.yaml create mode 100644 incubator/pyload/1.4.0/CONFIG.md create mode 100644 incubator/pyload/1.4.0/Chart.lock create mode 100644 incubator/pyload/1.4.0/Chart.yaml create mode 100644 incubator/pyload/1.4.0/README.md create mode 100644 incubator/pyload/1.4.0/app-readme.md create mode 100644 incubator/pyload/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/pyload/1.4.0/ix_values.yaml create mode 100644 incubator/pyload/1.4.0/questions.yaml create mode 100644 incubator/pyload/1.4.0/templates/common.yaml create mode 100644 incubator/pyload/1.4.0/test_values.yaml create mode 100644 incubator/pyload/1.4.0/values.yaml create mode 100644 incubator/qbittorrent/6.6.0/CONFIG.md create mode 100644 incubator/qbittorrent/6.6.0/Chart.lock create mode 100644 incubator/qbittorrent/6.6.0/Chart.yaml create mode 100644 incubator/qbittorrent/6.6.0/README.md create mode 100644 incubator/qbittorrent/6.6.0/app-readme.md create mode 100644 incubator/qbittorrent/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/qbittorrent/6.6.0/ix_values.yaml create mode 100644 incubator/qbittorrent/6.6.0/questions.yaml create mode 100644 incubator/qbittorrent/6.6.0/templates/_configmap.tpl create mode 100644 incubator/qbittorrent/6.6.0/templates/common.yaml create mode 100644 incubator/qbittorrent/6.6.0/test_values.yaml create mode 100644 incubator/qbittorrent/6.6.0/values.yaml create mode 100644 incubator/readarr/6.6.0/CONFIG.md create mode 100644 incubator/readarr/6.6.0/Chart.lock create mode 100644 incubator/readarr/6.6.0/Chart.yaml create mode 100644 incubator/readarr/6.6.0/README.md create mode 100644 incubator/readarr/6.6.0/app-readme.md create mode 100644 incubator/readarr/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/readarr/6.6.0/ix_values.yaml create mode 100644 incubator/readarr/6.6.0/questions.yaml create mode 100644 incubator/readarr/6.6.0/templates/common.yaml create mode 100644 incubator/readarr/6.6.0/test_values.yaml create mode 100644 incubator/readarr/6.6.0/values.yaml create mode 100644 incubator/reg/1.6.0/CONFIG.md create mode 100644 incubator/reg/1.6.0/Chart.lock create mode 100644 incubator/reg/1.6.0/Chart.yaml create mode 100644 incubator/reg/1.6.0/README.md create mode 100644 incubator/reg/1.6.0/app-readme.md create mode 100644 incubator/reg/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/reg/1.6.0/ci/ct-values.yaml create mode 100644 incubator/reg/1.6.0/ix_values.yaml create mode 100644 incubator/reg/1.6.0/questions.yaml create mode 100644 incubator/reg/1.6.0/templates/common.yaml create mode 100644 incubator/reg/1.6.0/test_values.yaml create mode 100644 incubator/reg/1.6.0/values.yaml create mode 100644 incubator/sabnzbd/6.6.0/CONFIG.md create mode 100644 incubator/sabnzbd/6.6.0/Chart.lock create mode 100644 incubator/sabnzbd/6.6.0/Chart.yaml create mode 100644 incubator/sabnzbd/6.6.0/README.md create mode 100644 incubator/sabnzbd/6.6.0/app-readme.md create mode 100644 incubator/sabnzbd/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/sabnzbd/6.6.0/ix_values.yaml create mode 100644 incubator/sabnzbd/6.6.0/questions.yaml create mode 100644 incubator/sabnzbd/6.6.0/templates/common.yaml create mode 100644 incubator/sabnzbd/6.6.0/test_values.yaml create mode 100644 incubator/sabnzbd/6.6.0/values.yaml create mode 100644 incubator/ser2sock/1.4.0/CONFIG.md create mode 100644 incubator/ser2sock/1.4.0/Chart.lock create mode 100644 incubator/ser2sock/1.4.0/Chart.yaml create mode 100644 incubator/ser2sock/1.4.0/README.md create mode 100644 incubator/ser2sock/1.4.0/app-readme.md create mode 100644 incubator/ser2sock/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/ser2sock/1.4.0/ix_values.yaml create mode 100644 incubator/ser2sock/1.4.0/questions.yaml create mode 100644 incubator/ser2sock/1.4.0/templates/common.yaml create mode 100644 incubator/ser2sock/1.4.0/test_values.yaml create mode 100644 incubator/ser2sock/1.4.0/values.yaml create mode 100644 incubator/stash/1.4.0/CONFIG.md create mode 100644 incubator/stash/1.4.0/Chart.lock create mode 100644 incubator/stash/1.4.0/Chart.yaml create mode 100644 incubator/stash/1.4.0/README.md create mode 100644 incubator/stash/1.4.0/app-readme.md create mode 100644 incubator/stash/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/stash/1.4.0/ci/ct-values.yaml create mode 100644 incubator/stash/1.4.0/ix_values.yaml create mode 100644 incubator/stash/1.4.0/questions.yaml create mode 100644 incubator/stash/1.4.0/templates/common.yaml create mode 100644 incubator/stash/1.4.0/test_values.yaml create mode 100644 incubator/stash/1.4.0/values.yaml create mode 100644 incubator/thelounge/1.6.0/CONFIG.md create mode 100644 incubator/thelounge/1.6.0/Chart.lock create mode 100644 incubator/thelounge/1.6.0/Chart.yaml create mode 100644 incubator/thelounge/1.6.0/README.md create mode 100644 incubator/thelounge/1.6.0/app-readme.md create mode 100644 incubator/thelounge/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/thelounge/1.6.0/ix_values.yaml create mode 100644 incubator/thelounge/1.6.0/questions.yaml create mode 100644 incubator/thelounge/1.6.0/templates/common.yaml create mode 100644 incubator/thelounge/1.6.0/test_values.yaml create mode 100644 incubator/thelounge/1.6.0/values.yaml create mode 100644 incubator/tvheadend/7.6.0/CONFIG.md create mode 100644 incubator/tvheadend/7.6.0/Chart.lock create mode 100644 incubator/tvheadend/7.6.0/Chart.yaml create mode 100644 incubator/tvheadend/7.6.0/README.md create mode 100644 incubator/tvheadend/7.6.0/app-readme.md create mode 100644 incubator/tvheadend/7.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/tvheadend/7.6.0/ix_values.yaml create mode 100644 incubator/tvheadend/7.6.0/questions.yaml create mode 100644 incubator/tvheadend/7.6.0/templates/common.yaml create mode 100644 incubator/tvheadend/7.6.0/test_values.yaml create mode 100644 incubator/tvheadend/7.6.0/values.yaml create mode 100644 incubator/unifi/6.6.0/CONFIG.md create mode 100644 incubator/unifi/6.6.0/Chart.lock create mode 100644 incubator/unifi/6.6.0/Chart.yaml create mode 100644 incubator/unifi/6.6.0/README.md create mode 100644 incubator/unifi/6.6.0/app-readme.md create mode 100644 incubator/unifi/6.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/unifi/6.6.0/ix_values.yaml create mode 100644 incubator/unifi/6.6.0/questions.yaml create mode 100644 incubator/unifi/6.6.0/templates/common.yaml create mode 100644 incubator/unifi/6.6.0/test_values.yaml create mode 100644 incubator/unifi/6.6.0/values.yaml create mode 100644 incubator/unpackerr/1.6.0/CONFIG.md create mode 100644 incubator/unpackerr/1.6.0/Chart.lock create mode 100644 incubator/unpackerr/1.6.0/Chart.yaml create mode 100644 incubator/unpackerr/1.6.0/README.md create mode 100644 incubator/unpackerr/1.6.0/app-readme.md create mode 100644 incubator/unpackerr/1.6.0/charts/common-6.8.0.tgz create mode 100644 incubator/unpackerr/1.6.0/ix_values.yaml create mode 100644 incubator/unpackerr/1.6.0/questions.yaml create mode 100644 incubator/unpackerr/1.6.0/templates/common.yaml create mode 100644 incubator/unpackerr/1.6.0/test_values.yaml create mode 100644 incubator/unpackerr/1.6.0/values.yaml create mode 100644 incubator/xteve/1.4.0/CONFIG.md create mode 100644 incubator/xteve/1.4.0/Chart.lock create mode 100644 incubator/xteve/1.4.0/Chart.yaml create mode 100644 incubator/xteve/1.4.0/README.md create mode 100644 incubator/xteve/1.4.0/app-readme.md create mode 100644 incubator/xteve/1.4.0/charts/common-6.8.0.tgz create mode 100644 incubator/xteve/1.4.0/ix_values.yaml create mode 100644 incubator/xteve/1.4.0/questions.yaml create mode 100644 incubator/xteve/1.4.0/templates/common.yaml create mode 100644 incubator/xteve/1.4.0/test_values.yaml create mode 100644 incubator/xteve/1.4.0/values.yaml create mode 100644 non-free/resilio-sync/1.4.0/CONFIG.md create mode 100644 non-free/resilio-sync/1.4.0/Chart.lock create mode 100644 non-free/resilio-sync/1.4.0/Chart.yaml create mode 100644 non-free/resilio-sync/1.4.0/README.md create mode 100644 non-free/resilio-sync/1.4.0/app-readme.md create mode 100644 non-free/resilio-sync/1.4.0/charts/common-6.8.0.tgz create mode 100644 non-free/resilio-sync/1.4.0/ix_values.yaml create mode 100644 non-free/resilio-sync/1.4.0/questions.yaml create mode 100644 non-free/resilio-sync/1.4.0/templates/common.yaml create mode 100644 non-free/resilio-sync/1.4.0/test_values.yaml create mode 100644 non-free/resilio-sync/1.4.0/values.yaml create mode 100644 stable/collabora-online/6.6.0/CONFIG.md create mode 100644 stable/collabora-online/6.6.0/Chart.lock create mode 100644 stable/collabora-online/6.6.0/Chart.yaml create mode 100644 stable/collabora-online/6.6.0/README.md create mode 100644 stable/collabora-online/6.6.0/app-readme.md create mode 100644 stable/collabora-online/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/collabora-online/6.6.0/ix_values.yaml create mode 100644 stable/collabora-online/6.6.0/questions.yaml create mode 100644 stable/collabora-online/6.6.0/templates/common.yaml create mode 100644 stable/collabora-online/6.6.0/test_values.yaml create mode 100644 stable/collabora-online/6.6.0/values.yaml create mode 100644 stable/deepstack-cpu/4.6.0/CONFIG.md create mode 100644 stable/deepstack-cpu/4.6.0/Chart.lock create mode 100644 stable/deepstack-cpu/4.6.0/Chart.yaml create mode 100644 stable/deepstack-cpu/4.6.0/README.md create mode 100644 stable/deepstack-cpu/4.6.0/app-readme.md create mode 100644 stable/deepstack-cpu/4.6.0/charts/common-6.8.0.tgz create mode 100644 stable/deepstack-cpu/4.6.0/ix_values.yaml create mode 100644 stable/deepstack-cpu/4.6.0/questions.yaml create mode 100644 stable/deepstack-cpu/4.6.0/templates/common.yaml create mode 100644 stable/deepstack-cpu/4.6.0/test_values.yaml create mode 100644 stable/deepstack-cpu/4.6.0/values.yaml create mode 100644 stable/emby/6.6.0/CONFIG.md create mode 100644 stable/emby/6.6.0/Chart.lock create mode 100644 stable/emby/6.6.0/Chart.yaml create mode 100644 stable/emby/6.6.0/README.md create mode 100644 stable/emby/6.6.0/app-readme.md create mode 100644 stable/emby/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/emby/6.6.0/ix_values.yaml create mode 100644 stable/emby/6.6.0/questions.yaml create mode 100644 stable/emby/6.6.0/templates/common.yaml create mode 100644 stable/emby/6.6.0/test_values.yaml create mode 100644 stable/emby/6.6.0/values.yaml create mode 100644 stable/esphome/6.6.0/CONFIG.md create mode 100644 stable/esphome/6.6.0/Chart.lock create mode 100644 stable/esphome/6.6.0/Chart.yaml create mode 100644 stable/esphome/6.6.0/README.md create mode 100644 stable/esphome/6.6.0/app-readme.md create mode 100644 stable/esphome/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/esphome/6.6.0/ix_values.yaml create mode 100644 stable/esphome/6.6.0/questions.yaml create mode 100644 stable/esphome/6.6.0/templates/common.yaml create mode 100644 stable/esphome/6.6.0/test_values.yaml create mode 100644 stable/esphome/6.6.0/values.yaml create mode 100644 stable/freeradius/1.2.0/CONFIG.md create mode 100644 stable/freeradius/1.2.0/Chart.lock create mode 100644 stable/freeradius/1.2.0/Chart.yaml create mode 100644 stable/freeradius/1.2.0/README.md create mode 100644 stable/freeradius/1.2.0/app-readme.md create mode 100644 stable/freeradius/1.2.0/charts/common-6.8.0.tgz create mode 100644 stable/freeradius/1.2.0/ix_values.yaml create mode 100644 stable/freeradius/1.2.0/questions.yaml create mode 100644 stable/freeradius/1.2.0/templates/common.yaml create mode 100644 stable/freeradius/1.2.0/test_values.yaml create mode 100644 stable/freeradius/1.2.0/values.yaml create mode 100644 stable/handbrake/6.6.0/CONFIG.md create mode 100644 stable/handbrake/6.6.0/Chart.lock create mode 100644 stable/handbrake/6.6.0/Chart.yaml create mode 100644 stable/handbrake/6.6.0/README.md create mode 100644 stable/handbrake/6.6.0/app-readme.md create mode 100644 stable/handbrake/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/handbrake/6.6.0/ix_values.yaml create mode 100644 stable/handbrake/6.6.0/questions.yaml create mode 100644 stable/handbrake/6.6.0/templates/common.yaml create mode 100644 stable/handbrake/6.6.0/test_values.yaml create mode 100644 stable/handbrake/6.6.0/values.yaml create mode 100644 stable/home-assistant/6.6.0/CONFIG.md create mode 100644 stable/home-assistant/6.6.0/Chart.lock create mode 100644 stable/home-assistant/6.6.0/Chart.yaml create mode 100644 stable/home-assistant/6.6.0/README.md create mode 100644 stable/home-assistant/6.6.0/app-readme.md create mode 100644 stable/home-assistant/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/home-assistant/6.6.0/ix_values.yaml create mode 100644 stable/home-assistant/6.6.0/questions.yaml create mode 100644 stable/home-assistant/6.6.0/templates/common.yaml create mode 100644 stable/home-assistant/6.6.0/templates/secret.yaml create mode 100644 stable/home-assistant/6.6.0/test_values.yaml create mode 100644 stable/home-assistant/6.6.0/values.yaml create mode 100644 stable/jackett/6.6.0/CONFIG.md create mode 100644 stable/jackett/6.6.0/Chart.lock create mode 100644 stable/jackett/6.6.0/Chart.yaml create mode 100644 stable/jackett/6.6.0/README.md create mode 100644 stable/jackett/6.6.0/app-readme.md create mode 100644 stable/jackett/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/jackett/6.6.0/ix_values.yaml create mode 100644 stable/jackett/6.6.0/questions.yaml create mode 100644 stable/jackett/6.6.0/templates/common.yaml create mode 100644 stable/jackett/6.6.0/test_values.yaml create mode 100644 stable/jackett/6.6.0/values.yaml create mode 100644 stable/jellyfin/6.6.0/CONFIG.md create mode 100644 stable/jellyfin/6.6.0/Chart.lock create mode 100644 stable/jellyfin/6.6.0/Chart.yaml create mode 100644 stable/jellyfin/6.6.0/README.md create mode 100644 stable/jellyfin/6.6.0/app-readme.md create mode 100644 stable/jellyfin/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/jellyfin/6.6.0/ix_values.yaml create mode 100644 stable/jellyfin/6.6.0/questions.yaml create mode 100644 stable/jellyfin/6.6.0/templates/common.yaml create mode 100644 stable/jellyfin/6.6.0/test_values.yaml create mode 100644 stable/jellyfin/6.6.0/values.yaml create mode 100644 stable/kms/6.6.0/CONFIG.md create mode 100644 stable/kms/6.6.0/Chart.lock create mode 100644 stable/kms/6.6.0/Chart.yaml create mode 100644 stable/kms/6.6.0/README.md create mode 100644 stable/kms/6.6.0/app-readme.md create mode 100644 stable/kms/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/kms/6.6.0/ix_values.yaml create mode 100644 stable/kms/6.6.0/questions.yaml create mode 100644 stable/kms/6.6.0/templates/common.yaml create mode 100644 stable/kms/6.6.0/test_values.yaml create mode 100644 stable/kms/6.6.0/values.yaml create mode 100644 stable/lidarr/6.6.0/CONFIG.md create mode 100644 stable/lidarr/6.6.0/Chart.lock create mode 100644 stable/lidarr/6.6.0/Chart.yaml create mode 100644 stable/lidarr/6.6.0/README.md create mode 100644 stable/lidarr/6.6.0/app-readme.md create mode 100644 stable/lidarr/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/lidarr/6.6.0/ix_values.yaml create mode 100644 stable/lidarr/6.6.0/questions.yaml create mode 100644 stable/lidarr/6.6.0/templates/common.yaml create mode 100644 stable/lidarr/6.6.0/test_values.yaml create mode 100644 stable/lidarr/6.6.0/values.yaml create mode 100644 stable/nextcloud/1.10.0/CONFIG.md create mode 100644 stable/nextcloud/1.10.0/Chart.lock create mode 100644 stable/nextcloud/1.10.0/Chart.yaml create mode 100644 stable/nextcloud/1.10.0/README.md create mode 100644 stable/nextcloud/1.10.0/app-readme.md create mode 100644 stable/nextcloud/1.10.0/charts/common-6.8.0.tgz create mode 100644 stable/nextcloud/1.10.0/charts/postgresql-10.9.1.tgz create mode 100644 stable/nextcloud/1.10.0/charts/redis-14.8.8.tgz create mode 100644 stable/nextcloud/1.10.0/ix_values.yaml create mode 100644 stable/nextcloud/1.10.0/questions.yaml create mode 100644 stable/nextcloud/1.10.0/templates/_configmap.tpl create mode 100644 stable/nextcloud/1.10.0/templates/_cronjob.tpl create mode 100644 stable/nextcloud/1.10.0/templates/_secrets.tpl create mode 100644 stable/nextcloud/1.10.0/templates/common.yaml create mode 100644 stable/nextcloud/1.10.0/test_values.yaml create mode 100644 stable/nextcloud/1.10.0/values.yaml create mode 100644 stable/ombi/6.6.0/CONFIG.md create mode 100644 stable/ombi/6.6.0/Chart.lock create mode 100644 stable/ombi/6.6.0/Chart.yaml create mode 100644 stable/ombi/6.6.0/README.md create mode 100644 stable/ombi/6.6.0/app-readme.md create mode 100644 stable/ombi/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/ombi/6.6.0/ix_values.yaml create mode 100644 stable/ombi/6.6.0/questions.yaml create mode 100644 stable/ombi/6.6.0/templates/common.yaml create mode 100644 stable/ombi/6.6.0/test_values.yaml create mode 100644 stable/ombi/6.6.0/values.yaml create mode 100644 stable/openldap/1.2.0/CONFIG.md create mode 100644 stable/openldap/1.2.0/Chart.lock create mode 100644 stable/openldap/1.2.0/Chart.yaml create mode 100644 stable/openldap/1.2.0/README.md create mode 100644 stable/openldap/1.2.0/app-readme.md create mode 100644 stable/openldap/1.2.0/charts/common-6.8.0.tgz create mode 100644 stable/openldap/1.2.0/ix_values.yaml create mode 100644 stable/openldap/1.2.0/questions.yaml create mode 100644 stable/openldap/1.2.0/templates/_configmap.tpl create mode 100644 stable/openldap/1.2.0/templates/common.yaml create mode 100644 stable/openldap/1.2.0/test_values.yaml create mode 100644 stable/openldap/1.2.0/values.yaml create mode 100644 stable/pgadmin/1.3.0/CONFIG.md create mode 100644 stable/pgadmin/1.3.0/Chart.lock create mode 100644 stable/pgadmin/1.3.0/Chart.yaml create mode 100644 stable/pgadmin/1.3.0/README.md create mode 100644 stable/pgadmin/1.3.0/app-readme.md create mode 100644 stable/pgadmin/1.3.0/charts/common-6.8.0.tgz create mode 100644 stable/pgadmin/1.3.0/ix_values.yaml create mode 100644 stable/pgadmin/1.3.0/questions.yaml create mode 100644 stable/pgadmin/1.3.0/templates/common.yaml create mode 100644 stable/pgadmin/1.3.0/test_values.yaml create mode 100644 stable/pgadmin/1.3.0/values.yaml create mode 100644 stable/phpldapadmin/1.3.0/CONFIG.md create mode 100644 stable/phpldapadmin/1.3.0/Chart.lock create mode 100644 stable/phpldapadmin/1.3.0/Chart.yaml create mode 100644 stable/phpldapadmin/1.3.0/README.md create mode 100644 stable/phpldapadmin/1.3.0/app-readme.md create mode 100644 stable/phpldapadmin/1.3.0/charts/common-6.8.0.tgz create mode 100644 stable/phpldapadmin/1.3.0/ix_values.yaml create mode 100644 stable/phpldapadmin/1.3.0/questions.yaml create mode 100644 stable/phpldapadmin/1.3.0/templates/common.yaml create mode 100644 stable/phpldapadmin/1.3.0/test_values.yaml create mode 100644 stable/phpldapadmin/1.3.0/values.yaml create mode 100644 stable/plex/5.6.0/CONFIG.md create mode 100644 stable/plex/5.6.0/Chart.lock create mode 100644 stable/plex/5.6.0/Chart.yaml create mode 100644 stable/plex/5.6.0/README.md create mode 100644 stable/plex/5.6.0/app-readme.md create mode 100644 stable/plex/5.6.0/charts/common-6.8.0.tgz create mode 100644 stable/plex/5.6.0/ix_values.yaml create mode 100644 stable/plex/5.6.0/questions.yaml create mode 100644 stable/plex/5.6.0/templates/common.yaml create mode 100644 stable/plex/5.6.0/test_values.yaml create mode 100644 stable/plex/5.6.0/values.yaml create mode 100644 stable/radarr/6.6.0/CONFIG.md create mode 100644 stable/radarr/6.6.0/Chart.lock create mode 100644 stable/radarr/6.6.0/Chart.yaml create mode 100644 stable/radarr/6.6.0/README.md create mode 100644 stable/radarr/6.6.0/app-readme.md create mode 100644 stable/radarr/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/radarr/6.6.0/ix_values.yaml create mode 100644 stable/radarr/6.6.0/questions.yaml create mode 100644 stable/radarr/6.6.0/templates/common.yaml create mode 100644 stable/radarr/6.6.0/test_values.yaml create mode 100644 stable/radarr/6.6.0/values.yaml create mode 100644 stable/sonarr/6.6.0/CONFIG.md create mode 100644 stable/sonarr/6.6.0/Chart.lock create mode 100644 stable/sonarr/6.6.0/Chart.yaml create mode 100644 stable/sonarr/6.6.0/README.md create mode 100644 stable/sonarr/6.6.0/app-readme.md create mode 100644 stable/sonarr/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/sonarr/6.6.0/ix_values.yaml create mode 100644 stable/sonarr/6.6.0/questions.yaml create mode 100644 stable/sonarr/6.6.0/templates/common.yaml create mode 100644 stable/sonarr/6.6.0/test_values.yaml create mode 100644 stable/sonarr/6.6.0/values.yaml create mode 100644 stable/syncthing/6.6.0/CONFIG.md create mode 100644 stable/syncthing/6.6.0/Chart.lock create mode 100644 stable/syncthing/6.6.0/Chart.yaml create mode 100644 stable/syncthing/6.6.0/README.md create mode 100644 stable/syncthing/6.6.0/app-readme.md create mode 100644 stable/syncthing/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/syncthing/6.6.0/ix_values.yaml create mode 100644 stable/syncthing/6.6.0/questions.yaml create mode 100644 stable/syncthing/6.6.0/templates/common.yaml create mode 100644 stable/syncthing/6.6.0/test_values.yaml create mode 100644 stable/syncthing/6.6.0/values.yaml create mode 100644 stable/tautulli/6.6.0/CONFIG.md create mode 100644 stable/tautulli/6.6.0/Chart.lock create mode 100644 stable/tautulli/6.6.0/Chart.yaml create mode 100644 stable/tautulli/6.6.0/README.md create mode 100644 stable/tautulli/6.6.0/app-readme.md create mode 100644 stable/tautulli/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/tautulli/6.6.0/ix_values.yaml create mode 100644 stable/tautulli/6.6.0/questions.yaml create mode 100644 stable/tautulli/6.6.0/templates/common.yaml create mode 100644 stable/tautulli/6.6.0/test_values.yaml create mode 100644 stable/tautulli/6.6.0/values.yaml create mode 100644 stable/traefik/6.8.0/CONFIG.md create mode 100644 stable/traefik/6.8.0/Chart.lock create mode 100644 stable/traefik/6.8.0/Chart.yaml create mode 100644 stable/traefik/6.8.0/LICENSE create mode 100644 stable/traefik/6.8.0/README.md create mode 100644 stable/traefik/6.8.0/app-readme.md create mode 100644 stable/traefik/6.8.0/charts/common-6.8.0.tgz create mode 100644 stable/traefik/6.8.0/crds/ingressroute.yaml create mode 100644 stable/traefik/6.8.0/crds/ingressroutetcp.yaml create mode 100644 stable/traefik/6.8.0/crds/ingressrouteudp.yaml create mode 100644 stable/traefik/6.8.0/crds/middlewares.yaml create mode 100644 stable/traefik/6.8.0/crds/serverstransports.yaml create mode 100644 stable/traefik/6.8.0/crds/tlsoptions.yaml create mode 100644 stable/traefik/6.8.0/crds/tlsstores.yaml create mode 100644 stable/traefik/6.8.0/crds/traefikservices.yaml create mode 100644 stable/traefik/6.8.0/ix_values.yaml create mode 100644 stable/traefik/6.8.0/questions.yaml create mode 100644 stable/traefik/6.8.0/templates/_helpers.tpl create mode 100644 stable/traefik/6.8.0/templates/_podtemplate.tpl create mode 100644 stable/traefik/6.8.0/templates/custom/common.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middleware-namespace.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/basic-middleware.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/basicauth.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/chain.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/forwardauth.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/ratelimit.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/middlewares/redirectScheme.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/portal.yaml create mode 100644 stable/traefik/6.8.0/templates/custom/portalhook.yaml create mode 100644 stable/traefik/6.8.0/templates/daemonset.yaml create mode 100644 stable/traefik/6.8.0/templates/dashboard-hook-ingressroute.yaml create mode 100644 stable/traefik/6.8.0/templates/deployment.yaml create mode 100644 stable/traefik/6.8.0/templates/gateway.yaml create mode 100644 stable/traefik/6.8.0/templates/gatewayclass.yaml create mode 100644 stable/traefik/6.8.0/templates/hpa.yaml create mode 100644 stable/traefik/6.8.0/templates/ingressclass.yaml create mode 100644 stable/traefik/6.8.0/templates/poddisruptionbudget.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/clusterrole.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/clusterrolebinding.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/podsecuritypolicy.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/role.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/rolebinding.yaml create mode 100644 stable/traefik/6.8.0/templates/rbac/serviceaccount.yaml create mode 100644 stable/traefik/6.8.0/templates/service.yaml create mode 100644 stable/traefik/6.8.0/templates/tlsoption.yaml create mode 100644 stable/traefik/6.8.0/test_values.yaml create mode 100644 stable/traefik/6.8.0/values.yaml create mode 100644 stable/transmission/6.6.0/CONFIG.md create mode 100644 stable/transmission/6.6.0/Chart.lock create mode 100644 stable/transmission/6.6.0/Chart.yaml create mode 100644 stable/transmission/6.6.0/README.md create mode 100644 stable/transmission/6.6.0/app-readme.md create mode 100644 stable/transmission/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/transmission/6.6.0/ix_values.yaml create mode 100644 stable/transmission/6.6.0/questions.yaml create mode 100644 stable/transmission/6.6.0/templates/common.yaml create mode 100644 stable/transmission/6.6.0/test_values.yaml create mode 100644 stable/transmission/6.6.0/values.yaml create mode 100644 stable/truecommand/6.6.0/CONFIG.md create mode 100644 stable/truecommand/6.6.0/Chart.lock create mode 100644 stable/truecommand/6.6.0/Chart.yaml create mode 100644 stable/truecommand/6.6.0/README.md create mode 100644 stable/truecommand/6.6.0/app-readme.md create mode 100644 stable/truecommand/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/truecommand/6.6.0/ix_values.yaml create mode 100644 stable/truecommand/6.6.0/questions.yaml create mode 100644 stable/truecommand/6.6.0/templates/common.yaml create mode 100644 stable/truecommand/6.6.0/test_values.yaml create mode 100644 stable/truecommand/6.6.0/values.yaml create mode 100644 stable/vaultwarden/3.11.0/CONFIG.md create mode 100644 stable/vaultwarden/3.11.0/Chart.lock create mode 100644 stable/vaultwarden/3.11.0/Chart.yaml create mode 100644 stable/vaultwarden/3.11.0/README.md create mode 100644 stable/vaultwarden/3.11.0/app-readme.md create mode 100644 stable/vaultwarden/3.11.0/charts/common-6.8.0.tgz create mode 100644 stable/vaultwarden/3.11.0/charts/postgresql-10.8.0.tgz create mode 100644 stable/vaultwarden/3.11.0/ix_values.yaml create mode 100644 stable/vaultwarden/3.11.0/questions.yaml create mode 100644 stable/vaultwarden/3.11.0/templates/_configmap.tpl create mode 100644 stable/vaultwarden/3.11.0/templates/_secrets.tpl create mode 100644 stable/vaultwarden/3.11.0/templates/_validate.tpl create mode 100644 stable/vaultwarden/3.11.0/templates/common.yaml create mode 100644 stable/vaultwarden/3.11.0/test_values.yaml create mode 100644 stable/vaultwarden/3.11.0/values.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/CONFIG.md create mode 100644 stable/zwavejs2mqtt/6.6.0/Chart.lock create mode 100644 stable/zwavejs2mqtt/6.6.0/Chart.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/README.md create mode 100644 stable/zwavejs2mqtt/6.6.0/app-readme.md create mode 100644 stable/zwavejs2mqtt/6.6.0/charts/common-6.8.0.tgz create mode 100644 stable/zwavejs2mqtt/6.6.0/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/questions.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/test_values.yaml create mode 100644 stable/zwavejs2mqtt/6.6.0/values.yaml diff --git a/deprecated/nzbhydra/6.6.0/CONFIG.md b/deprecated/nzbhydra/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/deprecated/nzbhydra/6.6.0/Chart.lock b/deprecated/nzbhydra/6.6.0/Chart.lock new file mode 100644 index 0000000000..b93d20dcba --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:25.614001691Z" diff --git a/deprecated/nzbhydra/6.6.0/Chart.yaml b/deprecated/nzbhydra/6.6.0/Chart.yaml new file mode 100644 index 0000000000..f9b4ae9de7 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/deprecated/nzbhydra/6.6.0/README.md b/deprecated/nzbhydra/6.6.0/README.md new file mode 100644 index 0000000000..adca558cdb --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +Usenet meta search + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `nzbhydra` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nzbhydra` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/deprecated/nzbhydra/6.6.0/app-readme.md b/deprecated/nzbhydra/6.6.0/app-readme.md new file mode 100644 index 0000000000..2012c83a62 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +Usenet meta search +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Usenet meta search diff --git a/deprecated/nzbhydra/6.6.0/charts/common-6.8.0.tgz b/deprecated/nzbhydra/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/deprecated/nzbhydra/6.6.0/ix_values.yaml b/deprecated/nzbhydra/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..b4a5486c38 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/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.1 + +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/deprecated/nzbhydra/6.6.0/questions.yaml b/deprecated/nzbhydra/6.6.0/questions.yaml new file mode 100644 index 0000000000..95185c5c0f --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/deprecated/nzbhydra/6.6.0/templates/common.yaml b/deprecated/nzbhydra/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/deprecated/nzbhydra/6.6.0/test_values.yaml b/deprecated/nzbhydra/6.6.0/test_values.yaml new file mode 100644 index 0000000000..8bb76de840 --- /dev/null +++ b/deprecated/nzbhydra/6.6.0/test_values.yaml @@ -0,0 +1,62 @@ +# Default values for nzbhydra. + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.15.1 + +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: emptyDir diff --git a/deprecated/nzbhydra/6.6.0/values.yaml b/deprecated/nzbhydra/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/develop/prototype-gui/1.7.0/CONFIG.md b/develop/prototype-gui/1.7.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/develop/prototype-gui/1.7.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/develop/prototype-gui/1.7.0/Chart.lock b/develop/prototype-gui/1.7.0/Chart.lock new file mode 100644 index 0000000000..7d23448b59 --- /dev/null +++ b/develop/prototype-gui/1.7.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:22.127563131Z" diff --git a/develop/prototype-gui/1.7.0/Chart.yaml b/develop/prototype-gui/1.7.0/Chart.yaml new file mode 100644 index 0000000000..dc6cc66019 --- /dev/null +++ b/develop/prototype-gui/1.7.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +deprecated: false +description: App to test GUI prototypes +home: https://github.com/truechartsapps/tree/master/charts/develop/prototype-gui +icon: https://truecharts.org/_static/img/jackett-icon.png +keywords: +- dev +- prototype +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: prototype-gui +sources: null +type: application +version: 1.7.0 diff --git a/develop/prototype-gui/1.7.0/README.md b/develop/prototype-gui/1.7.0/README.md new file mode 100644 index 0000000000..c99798af14 --- /dev/null +++ b/develop/prototype-gui/1.7.0/README.md @@ -0,0 +1,52 @@ +# Introduction + +![Version: 1.4.2](https://img.shields.io/badge/Version-1.4.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) + +App to test GUI prototypes + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `prototype-gui` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `prototype-gui` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/develop/prototype-gui/1.7.0/app-readme.md b/develop/prototype-gui/1.7.0/app-readme.md new file mode 100644 index 0000000000..f1bf7dc810 --- /dev/null +++ b/develop/prototype-gui/1.7.0/app-readme.md @@ -0,0 +1,3 @@ +API Support for your favorite torrent trackers. +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +App to test GUI prototypes diff --git a/develop/prototype-gui/1.7.0/charts/common-6.8.0.tgz b/develop/prototype-gui/1.7.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/develop/prototype-gui/1.7.0/ix_values.yaml b/develop/prototype-gui/1.7.0/ix_values.yaml new file mode 100644 index 0000000000..1061fbbd45 --- /dev/null +++ b/develop/prototype-gui/1.7.0/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.263 + +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/develop/prototype-gui/1.7.0/questions.yaml b/develop/prototype-gui/1.7.0/questions.yaml new file mode 100644 index 0000000000..19353ef508 --- /dev/null +++ b/develop/prototype-gui/1.7.0/questions.yaml @@ -0,0 +1,689 @@ +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: 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: "(Advanced) 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: "(Advanced) 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: port + label: "Container Port" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: "(Advanced) Enable privileged mode" + 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: fsGroupChangePolicy + label: "(Advanced) 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/develop/prototype-gui/1.7.0/templates/common.yaml b/develop/prototype-gui/1.7.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/develop/prototype-gui/1.7.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/develop/prototype-gui/1.7.0/test_values.yaml b/develop/prototype-gui/1.7.0/test_values.yaml new file mode 100644 index 0000000000..72ccba7a22 --- /dev/null +++ b/develop/prototype-gui/1.7.0/test_values.yaml @@ -0,0 +1,39 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.533 + +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: emptyDir diff --git a/develop/prototype-gui/1.7.0/values.yaml b/develop/prototype-gui/1.7.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/airsonic/1.6.0/CONFIG.md b/incubator/airsonic/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/airsonic/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/airsonic/1.6.0/Chart.lock b/incubator/airsonic/1.6.0/Chart.lock new file mode 100644 index 0000000000..f3f3dee651 --- /dev/null +++ b/incubator/airsonic/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:36.575896688Z" diff --git a/incubator/airsonic/1.6.0/Chart.yaml b/incubator/airsonic/1.6.0/Chart.yaml new file mode 100644 index 0000000000..502c87ccb0 --- /dev/null +++ b/incubator/airsonic/1.6.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/airsonic/1.6.0/README.md b/incubator/airsonic/1.6.0/README.md new file mode 100644 index 0000000000..e545849ab1 --- /dev/null +++ b/incubator/airsonic/1.6.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `airsonic` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `airsonic` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/airsonic/1.6.0/app-readme.md b/incubator/airsonic/1.6.0/app-readme.md new file mode 100644 index 0000000000..02ff47fc82 --- /dev/null +++ b/incubator/airsonic/1.6.0/app-readme.md @@ -0,0 +1 @@ +Airsonic is a Free and Open Source community driven media server diff --git a/incubator/airsonic/1.6.0/charts/common-6.8.0.tgz b/incubator/airsonic/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/airsonic/1.6.0/ix_values.yaml b/incubator/airsonic/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..8771a6489c --- /dev/null +++ b/incubator/airsonic/1.6.0/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/incubator/airsonic/1.6.0/questions.yaml b/incubator/airsonic/1.6.0/questions.yaml new file mode 100644 index 0000000000..210974598c --- /dev/null +++ b/incubator/airsonic/1.6.0/questions.yaml @@ -0,0 +1,642 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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/incubator/airsonic/1.6.0/templates/common.yaml b/incubator/airsonic/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/airsonic/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/airsonic/1.6.0/test_values.yaml b/incubator/airsonic/1.6.0/test_values.yaml new file mode 100644 index 0000000000..a704a092be --- /dev/null +++ b/incubator/airsonic/1.6.0/test_values.yaml @@ -0,0 +1,60 @@ +# +# 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: false + music: + enabled: false + mountPath: /music + playlists: + enabled: false + mountPath: /playlists + podcasts: + enabled: false + mountPath: /podcasts + media: + enabled: false + mountPath: /media diff --git a/incubator/airsonic/1.6.0/values.yaml b/incubator/airsonic/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/appdaemon/3.6.0/CONFIG.md b/incubator/appdaemon/3.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/appdaemon/3.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/appdaemon/3.6.0/Chart.lock b/incubator/appdaemon/3.6.0/Chart.lock new file mode 100644 index 0000000000..1841dd639c --- /dev/null +++ b/incubator/appdaemon/3.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:38.382219871Z" diff --git a/incubator/appdaemon/3.6.0/Chart.yaml b/incubator/appdaemon/3.6.0/Chart.yaml new file mode 100644 index 0000000000..b0af9a9c6b --- /dev/null +++ b/incubator/appdaemon/3.6.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: v4.0.8 +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/appdaemon/3.6.0/README.md b/incubator/appdaemon/3.6.0/README.md new file mode 100644 index 0000000000..530f126857 --- /dev/null +++ b/incubator/appdaemon/3.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.3.2](https://img.shields.io/badge/Version-3.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `appdaemon` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `appdaemon` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/appdaemon/3.6.0/app-readme.md b/incubator/appdaemon/3.6.0/app-readme.md new file mode 100644 index 0000000000..083a4a25f6 --- /dev/null +++ b/incubator/appdaemon/3.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/appdaemon/3.6.0/charts/common-6.8.0.tgz b/incubator/appdaemon/3.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/appdaemon/3.6.0/ix_values.yaml b/incubator/appdaemon/3.6.0/ix_values.yaml new file mode 100644 index 0000000000..ef02d27c01 --- /dev/null +++ b/incubator/appdaemon/3.6.0/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.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/incubator/appdaemon/3.6.0/questions.yaml b/incubator/appdaemon/3.6.0/questions.yaml new file mode 100644 index 0000000000..3b7f6e676c --- /dev/null +++ b/incubator/appdaemon/3.6.0/questions.yaml @@ -0,0 +1,604 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 5050 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: 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: 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: 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/incubator/appdaemon/3.6.0/templates/common.yaml b/incubator/appdaemon/3.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/appdaemon/3.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/appdaemon/3.6.0/test_values.yaml b/incubator/appdaemon/3.6.0/test_values.yaml new file mode 100644 index 0000000000..c17735094c --- /dev/null +++ b/incubator/appdaemon/3.6.0/test_values.yaml @@ -0,0 +1,41 @@ +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: emptyDir diff --git a/incubator/appdaemon/3.6.0/values.yaml b/incubator/appdaemon/3.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/bazarr/6.6.0/CONFIG.md b/incubator/bazarr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/bazarr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/bazarr/6.6.0/Chart.lock b/incubator/bazarr/6.6.0/Chart.lock new file mode 100644 index 0000000000..138ba65d5e --- /dev/null +++ b/incubator/bazarr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:40.153451302Z" diff --git a/incubator/bazarr/6.6.0/Chart.yaml b/incubator/bazarr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..ff156556ce --- /dev/null +++ b/incubator/bazarr/6.6.0/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/bazarr/6.6.0/README.md b/incubator/bazarr/6.6.0/README.md new file mode 100644 index 0000000000..5d2384562d --- /dev/null +++ b/incubator/bazarr/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `bazarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `bazarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/bazarr/6.6.0/app-readme.md b/incubator/bazarr/6.6.0/app-readme.md new file mode 100644 index 0000000000..d983e4cb85 --- /dev/null +++ b/incubator/bazarr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/bazarr/6.6.0/charts/common-6.8.0.tgz b/incubator/bazarr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/bazarr/6.6.0/ix_values.yaml b/incubator/bazarr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..4a234a1bf0 --- /dev/null +++ b/incubator/bazarr/6.6.0/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.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/incubator/bazarr/6.6.0/questions.yaml b/incubator/bazarr/6.6.0/questions.yaml new file mode 100644 index 0000000000..bd6d3878e3 --- /dev/null +++ b/incubator/bazarr/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/bazarr/6.6.0/templates/common.yaml b/incubator/bazarr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/bazarr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/bazarr/6.6.0/test_values.yaml b/incubator/bazarr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..63858a9782 --- /dev/null +++ b/incubator/bazarr/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for Bazarr. + +image: + repository: ghcr.io/k8s-at-home/bazarr + pullPolicy: IfNotPresent + tag: v0.9.6 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6767 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: emptyDir diff --git a/incubator/bazarr/6.6.0/values.yaml b/incubator/bazarr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/booksonic-air/1.4.0/CONFIG.md b/incubator/booksonic-air/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/booksonic-air/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/booksonic-air/1.4.0/Chart.lock b/incubator/booksonic-air/1.4.0/Chart.lock new file mode 100644 index 0000000000..6e5e22866f --- /dev/null +++ b/incubator/booksonic-air/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:49:41.917954945Z" diff --git a/incubator/booksonic-air/1.4.0/Chart.yaml b/incubator/booksonic-air/1.4.0/Chart.yaml new file mode 100644 index 0000000000..b30c899dfe --- /dev/null +++ b/incubator/booksonic-air/1.4.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/booksonic-air/1.4.0/README.md b/incubator/booksonic-air/1.4.0/README.md new file mode 100644 index 0000000000..adc8b2b653 --- /dev/null +++ b/incubator/booksonic-air/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `booksonic-air` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `booksonic-air` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/booksonic-air/1.4.0/app-readme.md b/incubator/booksonic-air/1.4.0/app-readme.md new file mode 100644 index 0000000000..e2ff5f5bbd --- /dev/null +++ b/incubator/booksonic-air/1.4.0/app-readme.md @@ -0,0 +1 @@ +Booksonic is a platform for accessing the audibooks you own wherever diff --git a/incubator/booksonic-air/1.4.0/charts/common-6.8.0.tgz b/incubator/booksonic-air/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/booksonic-air/1.4.0/ix_values.yaml b/incubator/booksonic-air/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..d4514d8f9d --- /dev/null +++ b/incubator/booksonic-air/1.4.0/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/incubator/booksonic-air/1.4.0/questions.yaml b/incubator/booksonic-air/1.4.0/questions.yaml new file mode 100644 index 0000000000..8805e2b2ac --- /dev/null +++ b/incubator/booksonic-air/1.4.0/questions.yaml @@ -0,0 +1,640 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/booksonic-air/1.4.0/templates/common.yaml b/incubator/booksonic-air/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/booksonic-air/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/booksonic-air/1.4.0/test_values.yaml b/incubator/booksonic-air/1.4.0/test_values.yaml new file mode 100644 index 0000000000..ce0c5310b0 --- /dev/null +++ b/incubator/booksonic-air/1.4.0/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: 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: false + audiobooks: + enabled: false + podcasts: + enabled: false + othermedia: + enabled: false diff --git a/incubator/booksonic-air/1.4.0/values.yaml b/incubator/booksonic-air/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/calibre-web/6.6.0/CONFIG.md b/incubator/calibre-web/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/calibre-web/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/calibre-web/6.6.0/Chart.lock b/incubator/calibre-web/6.6.0/Chart.lock new file mode 100644 index 0000000000..24590ccc6f --- /dev/null +++ b/incubator/calibre-web/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:45.384587722Z" diff --git a/incubator/calibre-web/6.6.0/Chart.yaml b/incubator/calibre-web/6.6.0/Chart.yaml new file mode 100644 index 0000000000..76e9913737 --- /dev/null +++ b/incubator/calibre-web/6.6.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/calibre-web/6.6.0/README.md b/incubator/calibre-web/6.6.0/README.md new file mode 100644 index 0000000000..906d6b723a --- /dev/null +++ b/incubator/calibre-web/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `calibre-web` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `calibre-web` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/calibre-web/6.6.0/app-readme.md b/incubator/calibre-web/6.6.0/app-readme.md new file mode 100644 index 0000000000..e5b39d2720 --- /dev/null +++ b/incubator/calibre-web/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/calibre-web/6.6.0/charts/common-6.8.0.tgz b/incubator/calibre-web/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/calibre-web/6.6.0/ix_values.yaml b/incubator/calibre-web/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..1f6e24d154 --- /dev/null +++ b/incubator/calibre-web/6.6.0/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/incubator/calibre-web/6.6.0/questions.yaml b/incubator/calibre-web/6.6.0/questions.yaml new file mode 100644 index 0000000000..fbec8700a7 --- /dev/null +++ b/incubator/calibre-web/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/calibre-web/6.6.0/templates/common.yaml b/incubator/calibre-web/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/calibre-web/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/calibre-web/6.6.0/test_values.yaml b/incubator/calibre-web/6.6.0/test_values.yaml new file mode 100644 index 0000000000..240957f08b --- /dev/null +++ b/incubator/calibre-web/6.6.0/test_values.yaml @@ -0,0 +1,28 @@ +# 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: emptyDir diff --git a/incubator/calibre-web/6.6.0/values.yaml b/incubator/calibre-web/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/calibre/1.4.0/CONFIG.md b/incubator/calibre/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/calibre/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/calibre/1.4.0/Chart.lock b/incubator/calibre/1.4.0/Chart.lock new file mode 100644 index 0000000000..c3408fc2d1 --- /dev/null +++ b/incubator/calibre/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:49:43.649071155Z" diff --git a/incubator/calibre/1.4.0/Chart.yaml b/incubator/calibre/1.4.0/Chart.yaml new file mode 100644 index 0000000000..2716f5c15b --- /dev/null +++ b/incubator/calibre/1.4.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/calibre/1.4.0/README.md b/incubator/calibre/1.4.0/README.md new file mode 100644 index 0000000000..7ce200dcbd --- /dev/null +++ b/incubator/calibre/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `calibre` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `calibre` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/calibre/1.4.0/app-readme.md b/incubator/calibre/1.4.0/app-readme.md new file mode 100644 index 0000000000..baede5ce22 --- /dev/null +++ b/incubator/calibre/1.4.0/app-readme.md @@ -0,0 +1 @@ +Calibre is a powerful and easy to use e-book manager. diff --git a/incubator/calibre/1.4.0/charts/common-6.8.0.tgz b/incubator/calibre/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/calibre/1.4.0/ix_values.yaml b/incubator/calibre/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..3e20aa2b6b --- /dev/null +++ b/incubator/calibre/1.4.0/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.24.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/incubator/calibre/1.4.0/questions.yaml b/incubator/calibre/1.4.0/questions.yaml new file mode 100644 index 0000000000..dba0f98a90 --- /dev/null +++ b/incubator/calibre/1.4.0/questions.yaml @@ -0,0 +1,756 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 8081 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/calibre/1.4.0/templates/common.yaml b/incubator/calibre/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..c53fdc73fb --- /dev/null +++ b/incubator/calibre/1.4.0/templates/common.yaml @@ -0,0 +1,3 @@ +--- + +{{ include "common.all" . }} diff --git a/incubator/calibre/1.4.0/test_values.yaml b/incubator/calibre/1.4.0/test_values.yaml new file mode 100644 index 0000000000..d96a84fa5e --- /dev/null +++ b/incubator/calibre/1.4.0/test_values.yaml @@ -0,0 +1,58 @@ +--- + +# +# 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.24.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: false diff --git a/incubator/calibre/1.4.0/values.yaml b/incubator/calibre/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/deconz/1.4.0/CONFIG.md b/incubator/deconz/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/deconz/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/deconz/1.4.0/Chart.lock b/incubator/deconz/1.4.0/Chart.lock new file mode 100644 index 0000000000..5858598e17 --- /dev/null +++ b/incubator/deconz/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:49:47.126471971Z" diff --git a/incubator/deconz/1.4.0/Chart.yaml b/incubator/deconz/1.4.0/Chart.yaml new file mode 100644 index 0000000000..905a117b98 --- /dev/null +++ b/incubator/deconz/1.4.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/deconz/1.4.0/README.md b/incubator/deconz/1.4.0/README.md new file mode 100644 index 0000000000..09050cc07c --- /dev/null +++ b/incubator/deconz/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `deconz` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `deconz` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/deconz/1.4.0/app-readme.md b/incubator/deconz/1.4.0/app-readme.md new file mode 100644 index 0000000000..d9d60581e5 --- /dev/null +++ b/incubator/deconz/1.4.0/app-readme.md @@ -0,0 +1 @@ +deCONZ is an easy to use control software, with which you can set up diff --git a/incubator/deconz/1.4.0/charts/common-6.8.0.tgz b/incubator/deconz/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/deconz/1.4.0/ix_values.yaml b/incubator/deconz/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..8e590e9cc6 --- /dev/null +++ b/incubator/deconz/1.4.0/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.03 + +## +# 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/deconz/1.4.0/questions.yaml b/incubator/deconz/1.4.0/questions.yaml new file mode 100644 index 0000000000..a6f3b161fc --- /dev/null +++ b/incubator/deconz/1.4.0/questions.yaml @@ -0,0 +1,861 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/deconz/1.4.0/templates/common.yaml b/incubator/deconz/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/deconz/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/deconz/1.4.0/test_values.yaml b/incubator/deconz/1.4.0/test_values.yaml new file mode 100644 index 0000000000..f044ca13ba --- /dev/null +++ b/incubator/deconz/1.4.0/test_values.yaml @@ -0,0 +1,72 @@ +# +# 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.03 + # -- 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: false + 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/incubator/deconz/1.4.0/values.yaml b/incubator/deconz/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/deluge/6.6.0/CONFIG.md b/incubator/deluge/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/deluge/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/deluge/6.6.0/Chart.lock b/incubator/deluge/6.6.0/Chart.lock new file mode 100644 index 0000000000..1d1ca6e805 --- /dev/null +++ b/incubator/deluge/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:48.88694786Z" diff --git a/incubator/deluge/6.6.0/Chart.yaml b/incubator/deluge/6.6.0/Chart.yaml new file mode 100644 index 0000000000..94e1b7a9fb --- /dev/null +++ b/incubator/deluge/6.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/deluge/6.6.0/README.md b/incubator/deluge/6.6.0/README.md new file mode 100644 index 0000000000..4e02f7884d --- /dev/null +++ b/incubator/deluge/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `deluge` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `deluge` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/deluge/6.6.0/app-readme.md b/incubator/deluge/6.6.0/app-readme.md new file mode 100644 index 0000000000..0bce0f81e8 --- /dev/null +++ b/incubator/deluge/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/deluge/6.6.0/charts/common-6.8.0.tgz b/incubator/deluge/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/deluge/6.6.0/ix_values.yaml b/incubator/deluge/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..14051dceb2 --- /dev/null +++ b/incubator/deluge/6.6.0/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/incubator/deluge/6.6.0/questions.yaml b/incubator/deluge/6.6.0/questions.yaml new file mode 100644 index 0000000000..17ee5653e5 --- /dev/null +++ b/incubator/deluge/6.6.0/questions.yaml @@ -0,0 +1,745 @@ +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 + ## Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + - 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: port + label: "Container Port" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/deluge/6.6.0/templates/common.yaml b/incubator/deluge/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/deluge/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/deluge/6.6.0/test_values.yaml b/incubator/deluge/6.6.0/test_values.yaml new file mode 100644 index 0000000000..3c8f28d1d2 --- /dev/null +++ b/incubator/deluge/6.6.0/test_values.yaml @@ -0,0 +1,33 @@ +# 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: emptyDir diff --git a/incubator/deluge/6.6.0/values.yaml b/incubator/deluge/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/dizquetv/1.4.0/CONFIG.md b/incubator/dizquetv/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/dizquetv/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/dizquetv/1.4.0/Chart.lock b/incubator/dizquetv/1.4.0/Chart.lock new file mode 100644 index 0000000000..81ac5e91a7 --- /dev/null +++ b/incubator/dizquetv/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:49:50.647118379Z" diff --git a/incubator/dizquetv/1.4.0/Chart.yaml b/incubator/dizquetv/1.4.0/Chart.yaml new file mode 100644 index 0000000000..8ce125f9e5 --- /dev/null +++ b/incubator/dizquetv/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/dizquetv/1.4.0/README.md b/incubator/dizquetv/1.4.0/README.md new file mode 100644 index 0000000000..0ac7edd889 --- /dev/null +++ b/incubator/dizquetv/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `dizquetv` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `dizquetv` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/dizquetv/1.4.0/app-readme.md b/incubator/dizquetv/1.4.0/app-readme.md new file mode 100644 index 0000000000..55786f1eda --- /dev/null +++ b/incubator/dizquetv/1.4.0/app-readme.md @@ -0,0 +1 @@ +Create live TV channel streams from media on your Plex servers. diff --git a/incubator/dizquetv/1.4.0/charts/common-6.8.0.tgz b/incubator/dizquetv/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/dizquetv/1.4.0/ix_values.yaml b/incubator/dizquetv/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..4bc21c65fd --- /dev/null +++ b/incubator/dizquetv/1.4.0/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/incubator/dizquetv/1.4.0/questions.yaml b/incubator/dizquetv/1.4.0/questions.yaml new file mode 100644 index 0000000000..619c62d17b --- /dev/null +++ b/incubator/dizquetv/1.4.0/questions.yaml @@ -0,0 +1,640 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/dizquetv/1.4.0/templates/common.yaml b/incubator/dizquetv/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/dizquetv/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/dizquetv/1.4.0/test_values.yaml b/incubator/dizquetv/1.4.0/test_values.yaml new file mode 100644 index 0000000000..f1674bd527 --- /dev/null +++ b/incubator/dizquetv/1.4.0/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: 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: false + mountPath: /home/node/app/.dizquetv diff --git a/incubator/dizquetv/1.4.0/values.yaml b/incubator/dizquetv/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/duplicati/1.4.0/CONFIG.md b/incubator/duplicati/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/duplicati/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/duplicati/1.4.0/Chart.lock b/incubator/duplicati/1.4.0/Chart.lock new file mode 100644 index 0000000000..4723546114 --- /dev/null +++ b/incubator/duplicati/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:49:52.388108146Z" diff --git a/incubator/duplicati/1.4.0/Chart.yaml b/incubator/duplicati/1.4.0/Chart.yaml new file mode 100644 index 0000000000..b3a91a8fe1 --- /dev/null +++ b/incubator/duplicati/1.4.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/duplicati/1.4.0/README.md b/incubator/duplicati/1.4.0/README.md new file mode 100644 index 0000000000..d51221642f --- /dev/null +++ b/incubator/duplicati/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `duplicati` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `duplicati` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/duplicati/1.4.0/app-readme.md b/incubator/duplicati/1.4.0/app-readme.md new file mode 100644 index 0000000000..d23ae591b0 --- /dev/null +++ b/incubator/duplicati/1.4.0/app-readme.md @@ -0,0 +1 @@ +Store securely encrypted backups on cloud storage services! diff --git a/incubator/duplicati/1.4.0/charts/common-6.8.0.tgz b/incubator/duplicati/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/duplicati/1.4.0/ix_values.yaml b/incubator/duplicati/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..ab1c03b2bc --- /dev/null +++ b/incubator/duplicati/1.4.0/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/incubator/duplicati/1.4.0/questions.yaml b/incubator/duplicati/1.4.0/questions.yaml new file mode 100644 index 0000000000..095db0890a --- /dev/null +++ b/incubator/duplicati/1.4.0/questions.yaml @@ -0,0 +1,640 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8200 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/duplicati/1.4.0/templates/common.yaml b/incubator/duplicati/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/duplicati/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/duplicati/1.4.0/test_values.yaml b/incubator/duplicati/1.4.0/test_values.yaml new file mode 100644 index 0000000000..62520af8ea --- /dev/null +++ b/incubator/duplicati/1.4.0/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: 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: false + source: + enabled: false + backups: + enabled: false diff --git a/incubator/duplicati/1.4.0/values.yaml b/incubator/duplicati/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/fireflyiii/4.11.0/CONFIG.md b/incubator/fireflyiii/4.11.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/fireflyiii/4.11.0/Chart.lock b/incubator/fireflyiii/4.11.0/Chart.lock new file mode 100644 index 0000000000..cfdf54be22 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.9.1 +digest: sha256:d47bf26e719dd02fd87e9932da16a41ef65011198336b8786aba4efb26410338 +generated: "2021-08-12T11:49:56.506493149Z" diff --git a/incubator/fireflyiii/4.11.0/Chart.yaml b/incubator/fireflyiii/4.11.0/Chart.yaml new file mode 100644 index 0000000000..3aaf147479 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.9.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: 4.11.0 diff --git a/incubator/fireflyiii/4.11.0/README.md b/incubator/fireflyiii/4.11.0/README.md new file mode 100644 index 0000000000..32f451ed27 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 4.4.2](https://img.shields.io/badge/Version-4.4.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 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://charts.bitnami.com/bitnami | postgresql | 10.5.1 | +| https://truecharts.org/ | common | 6.5.2 | + +## Installing the Chart + +To install the chart with the release name `fireflyiii` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `fireflyiii` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/fireflyiii/4.11.0/app-readme.md b/incubator/fireflyiii/4.11.0/app-readme.md new file mode 100644 index 0000000000..15307675f1 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/fireflyiii/4.11.0/charts/common-6.8.0.tgz b/incubator/fireflyiii/4.11.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/fireflyiii/4.11.0/charts/postgresql-10.9.1.tgz b/incubator/fireflyiii/4.11.0/charts/postgresql-10.9.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5fe538e4dfbd1de86d0cc0729042ea7e06da95df GIT binary patch literal 52056 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 Y>3Mpdp4&hF4FCZD|IhJ8_5d0M09e1kJ^%m! literal 0 HcmV?d00001 diff --git a/stable/nextcloud/1.10.0/charts/redis-14.8.8.tgz b/stable/nextcloud/1.10.0/charts/redis-14.8.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..835707d450109463e0843afdff427d9e628c8af5 GIT binary patch literal 77694 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 X9-fD1^XLBu009608^4Gd0B8mPmm+2m literal 0 HcmV?d00001 diff --git a/stable/nextcloud/1.10.0/ix_values.yaml b/stable/nextcloud/1.10.0/ix_values.yaml new file mode 100644 index 0000000000..bdfb877598 --- /dev/null +++ b/stable/nextcloud/1.10.0/ix_values.yaml @@ -0,0 +1,186 @@ +## +# 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 +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +# 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/stable/nextcloud/1.10.0/questions.yaml b/stable/nextcloud/1.10.0/questions.yaml new file mode 100644 index 0000000000..23c8aedf6e --- /dev/null +++ b/stable/nextcloud/1.10.0/questions.yaml @@ -0,0 +1,1055 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: port + label: "Container Port" + schema: + type: int + default: 7867 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: db + label: "Database Storage" + description: "Stores the Application 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: "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" + - 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: 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: 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" diff --git a/stable/nextcloud/1.10.0/templates/_configmap.tpl b/stable/nextcloud/1.10.0/templates/_configmap.tpl new file mode 100644 index 0000000000..aa6473aaf2 --- /dev/null +++ b/stable/nextcloud/1.10.0/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/stable/nextcloud/1.10.0/templates/_cronjob.tpl b/stable/nextcloud/1.10.0/templates/_cronjob.tpl new file mode 100644 index 0000000000..c2ed1ca20f --- /dev/null +++ b/stable/nextcloud/1.10.0/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/stable/nextcloud/1.10.0/templates/_secrets.tpl b/stable/nextcloud/1.10.0/templates/_secrets.tpl new file mode 100644 index 0000000000..d9ae0df858 --- /dev/null +++ b/stable/nextcloud/1.10.0/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/stable/nextcloud/1.10.0/templates/common.yaml b/stable/nextcloud/1.10.0/templates/common.yaml new file mode 100644 index 0000000000..8e72c538b1 --- /dev/null +++ b/stable/nextcloud/1.10.0/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/stable/nextcloud/1.10.0/test_values.yaml b/stable/nextcloud/1.10.0/test_values.yaml new file mode 100644 index 0000000000..16e4ce67f7 --- /dev/null +++ b/stable/nextcloud/1.10.0/test_values.yaml @@ -0,0 +1,224 @@ +# 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" + + db: + noMount: true + forceName: "db" + enabled: true + 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 +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + volumePermissions: + enabled: true + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db + +# 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/stable/nextcloud/1.10.0/values.yaml b/stable/nextcloud/1.10.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/ombi/6.6.0/CONFIG.md b/stable/ombi/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/ombi/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/ombi/6.6.0/Chart.lock new file mode 100644 index 0000000000..2d2d556c1f --- /dev/null +++ b/stable/ombi/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:06.499571741Z" diff --git a/stable/ombi/6.6.0/Chart.yaml b/stable/ombi/6.6.0/Chart.yaml new file mode 100644 index 0000000000..226563fcbc --- /dev/null +++ b/stable/ombi/6.6.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/ombi/6.6.0/README.md b/stable/ombi/6.6.0/README.md new file mode 100644 index 0000000000..e0a2799184 --- /dev/null +++ b/stable/ombi/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `ombi` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `ombi` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/ombi/6.6.0/app-readme.md new file mode 100644 index 0000000000..b573c95c43 --- /dev/null +++ b/stable/ombi/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/ombi/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/stable/ombi/6.6.0/ix_values.yaml b/stable/ombi/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..031622340e --- /dev/null +++ b/stable/ombi/6.6.0/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.1458 + +## +# 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.6.0/questions.yaml b/stable/ombi/6.6.0/questions.yaml new file mode 100644 index 0000000000..01a745b033 --- /dev/null +++ b/stable/ombi/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/ombi/6.6.0/templates/common.yaml b/stable/ombi/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/ombi/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ombi/6.6.0/test_values.yaml b/stable/ombi/6.6.0/test_values.yaml new file mode 100644 index 0000000000..7097a08653 --- /dev/null +++ b/stable/ombi/6.6.0/test_values.yaml @@ -0,0 +1,40 @@ +# Default values for Ombi. + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1458 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 3579 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: emptyDir + + +# 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.6.0/values.yaml b/stable/ombi/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/openldap/1.2.0/CONFIG.md b/stable/openldap/1.2.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/openldap/1.2.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.2.0/Chart.lock b/stable/openldap/1.2.0/Chart.lock new file mode 100644 index 0000000000..854f6a7535 --- /dev/null +++ b/stable/openldap/1.2.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:08.377686957Z" diff --git a/stable/openldap/1.2.0/Chart.yaml b/stable/openldap/1.2.0/Chart.yaml new file mode 100644 index 0000000000..0681864303 --- /dev/null +++ b/stable/openldap/1.2.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.2.0 diff --git a/stable/openldap/1.2.0/README.md b/stable/openldap/1.2.0/README.md new file mode 100644 index 0000000000..a6c0421d33 --- /dev/null +++ b/stable/openldap/1.2.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-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 | postgresql | 10.5.1 | +| https://truecharts.org/ | common | 6.4.6 | + +## Installing the Chart + +To install the chart with the release name `nextcloud` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nextcloud` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.2.0/app-readme.md b/stable/openldap/1.2.0/app-readme.md new file mode 100644 index 0000000000..18f6d841a0 --- /dev/null +++ b/stable/openldap/1.2.0/app-readme.md @@ -0,0 +1 @@ +Community developed LDAP software diff --git a/stable/openldap/1.2.0/charts/common-6.8.0.tgz b/stable/openldap/1.2.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/openldap/1.2.0/ix_values.yaml b/stable/openldap/1.2.0/ix_values.yaml new file mode 100644 index 0000000000..bdc8ae302d --- /dev/null +++ b/stable/openldap/1.2.0/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.2.0/questions.yaml b/stable/openldap/1.2.0/questions.yaml new file mode 100644 index 0000000000..ec0b614de5 --- /dev/null +++ b/stable/openldap/1.2.0/questions.yaml @@ -0,0 +1,799 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 389 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 636 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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/openldap/1.2.0/templates/_configmap.tpl b/stable/openldap/1.2.0/templates/_configmap.tpl new file mode 100644 index 0000000000..4a3c547450 --- /dev/null +++ b/stable/openldap/1.2.0/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.2.0/templates/common.yaml b/stable/openldap/1.2.0/templates/common.yaml new file mode 100644 index 0000000000..c9df40ff35 --- /dev/null +++ b/stable/openldap/1.2.0/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.2.0/test_values.yaml b/stable/openldap/1.2.0/test_values.yaml new file mode 100644 index 0000000000..77005dbe34 --- /dev/null +++ b/stable/openldap/1.2.0/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.2.0/values.yaml b/stable/openldap/1.2.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/pgadmin/1.3.0/CONFIG.md b/stable/pgadmin/1.3.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/pgadmin/1.3.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.3.0/Chart.lock b/stable/pgadmin/1.3.0/Chart.lock new file mode 100644 index 0000000000..bec7bcaabc --- /dev/null +++ b/stable/pgadmin/1.3.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:10.135712389Z" diff --git a/stable/pgadmin/1.3.0/Chart.yaml b/stable/pgadmin/1.3.0/Chart.yaml new file mode 100644 index 0000000000..530ea203b9 --- /dev/null +++ b/stable/pgadmin/1.3.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.3.0 diff --git a/stable/pgadmin/1.3.0/README.md b/stable/pgadmin/1.3.0/README.md new file mode 100644 index 0000000000..2af844ae8b --- /dev/null +++ b/stable/pgadmin/1.3.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `pgadmin` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `pgadmin` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.3.0/app-readme.md b/stable/pgadmin/1.3.0/app-readme.md new file mode 100644 index 0000000000..a32bfd80b6 --- /dev/null +++ b/stable/pgadmin/1.3.0/app-readme.md @@ -0,0 +1 @@ +Web-Based postgresql database management utility diff --git a/stable/pgadmin/1.3.0/charts/common-6.8.0.tgz b/stable/pgadmin/1.3.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/pgadmin/1.3.0/ix_values.yaml b/stable/pgadmin/1.3.0/ix_values.yaml new file mode 100644 index 0000000000..2476f8e484 --- /dev/null +++ b/stable/pgadmin/1.3.0/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.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/pgadmin/1.3.0/questions.yaml b/stable/pgadmin/1.3.0/questions.yaml new file mode 100644 index 0000000000..de2b6651d4 --- /dev/null +++ b/stable/pgadmin/1.3.0/questions.yaml @@ -0,0 +1,681 @@ +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: 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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + + - 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: 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: 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: 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/pgadmin/1.3.0/templates/common.yaml b/stable/pgadmin/1.3.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/pgadmin/1.3.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pgadmin/1.3.0/test_values.yaml b/stable/pgadmin/1.3.0/test_values.yaml new file mode 100644 index 0000000000..5529b62e2e --- /dev/null +++ b/stable/pgadmin/1.3.0/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for Jackett. + +image: + repository: dpage/pgadmin4 + pullPolicy: IfNotPresent + tag: "5.5" + +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: emptyDir diff --git a/stable/pgadmin/1.3.0/values.yaml b/stable/pgadmin/1.3.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/phpldapadmin/1.3.0/CONFIG.md b/stable/phpldapadmin/1.3.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.3.0/Chart.lock b/stable/phpldapadmin/1.3.0/Chart.lock new file mode 100644 index 0000000000..537ca28a13 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:11.923581883Z" diff --git a/stable/phpldapadmin/1.3.0/Chart.yaml b/stable/phpldapadmin/1.3.0/Chart.yaml new file mode 100644 index 0000000000..83ee8e2c87 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.3.0 diff --git a/stable/phpldapadmin/1.3.0/README.md b/stable/phpldapadmin/1.3.0/README.md new file mode 100644 index 0000000000..ae88a83f32 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `phpldapadmin` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `phpldapadmin` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.3.0/app-readme.md b/stable/phpldapadmin/1.3.0/app-readme.md new file mode 100644 index 0000000000..e3eaeadf7a --- /dev/null +++ b/stable/phpldapadmin/1.3.0/app-readme.md @@ -0,0 +1 @@ +Web-based LDAP browser to manage your LDAP server diff --git a/stable/phpldapadmin/1.3.0/charts/common-6.8.0.tgz b/stable/phpldapadmin/1.3.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/phpldapadmin/1.3.0/ix_values.yaml b/stable/phpldapadmin/1.3.0/ix_values.yaml new file mode 100644 index 0000000000..40bc13dfe1 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/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.3.0/questions.yaml b/stable/phpldapadmin/1.3.0/questions.yaml new file mode 100644 index 0000000000..f4987d6fb7 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/questions.yaml @@ -0,0 +1,564 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + + - 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: 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: 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: 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/phpldapadmin/1.3.0/templates/common.yaml b/stable/phpldapadmin/1.3.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/phpldapadmin/1.3.0/test_values.yaml b/stable/phpldapadmin/1.3.0/test_values.yaml new file mode 100644 index 0000000000..99345a76f1 --- /dev/null +++ b/stable/phpldapadmin/1.3.0/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.3.0/values.yaml b/stable/phpldapadmin/1.3.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/plex/5.6.0/CONFIG.md b/stable/plex/5.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/plex/5.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/plex/5.6.0/Chart.lock new file mode 100644 index 0000000000..645bf14838 --- /dev/null +++ b/stable/plex/5.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:13.70164955Z" diff --git a/stable/plex/5.6.0/Chart.yaml b/stable/plex/5.6.0/Chart.yaml new file mode 100644 index 0000000000..b03cb8587c --- /dev/null +++ b/stable/plex/5.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/plex/5.6.0/README.md b/stable/plex/5.6.0/README.md new file mode 100644 index 0000000000..1ae91d2fa7 --- /dev/null +++ b/stable/plex/5.6.0/README.md @@ -0,0 +1,52 @@ +# Introduction + +![Version: 5.3.2](https://img.shields.io/badge/Version-5.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `plex` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `plex` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/plex/5.6.0/app-readme.md new file mode 100644 index 0000000000..4d5dfd7c1f --- /dev/null +++ b/stable/plex/5.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/plex/5.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/plex/5.6.0/ix_values.yaml b/stable/plex/5.6.0/ix_values.yaml new file mode 100644 index 0000000000..dfb74a7e88 --- /dev/null +++ b/stable/plex/5.6.0/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/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.23.6.4881-e2e58f321 + +# 44=video 107=render +podSecurityContext: + supplementalGroups: [44, 107] + +## +# 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.6.0/questions.yaml b/stable/plex/5.6.0/questions.yaml new file mode 100644 index 0000000000..60fd5dc5c0 --- /dev/null +++ b/stable/plex/5.6.0/questions.yaml @@ -0,0 +1,695 @@ +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: 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" + - 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: port + label: "Container Port" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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 + # 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: "Enable privileged mode for Common-Chart based charts" + 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: 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/plex/5.6.0/templates/common.yaml b/stable/plex/5.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/plex/5.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/plex/5.6.0/test_values.yaml b/stable/plex/5.6.0/test_values.yaml new file mode 100644 index 0000000000..5d6d90783f --- /dev/null +++ b/stable/plex/5.6.0/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for Plex. + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.23.6.4881-e2e58f321 + +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: emptyDir + +env: + ALLOWED_NETWORKS: "172.16.0.0/16" diff --git a/stable/plex/5.6.0/values.yaml b/stable/plex/5.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/radarr/6.6.0/CONFIG.md b/stable/radarr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/radarr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/radarr/6.6.0/Chart.lock new file mode 100644 index 0000000000..186669a062 --- /dev/null +++ b/stable/radarr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:15.46664465Z" diff --git a/stable/radarr/6.6.0/Chart.yaml b/stable/radarr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..db19bc66d5 --- /dev/null +++ b/stable/radarr/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/radarr/6.6.0/README.md b/stable/radarr/6.6.0/README.md new file mode 100644 index 0000000000..fd8b784ac4 --- /dev/null +++ b/stable/radarr/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `radarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `radarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/radarr/6.6.0/app-readme.md new file mode 100644 index 0000000000..a48f339600 --- /dev/null +++ b/stable/radarr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/radarr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/radarr/6.6.0/ix_values.yaml b/stable/radarr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..095e494f52 --- /dev/null +++ b/stable/radarr/6.6.0/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.6.0/questions.yaml b/stable/radarr/6.6.0/questions.yaml new file mode 100644 index 0000000000..c32f1ca174 --- /dev/null +++ b/stable/radarr/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/radarr/6.6.0/templates/common.yaml b/stable/radarr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/radarr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/radarr/6.6.0/test_values.yaml b/stable/radarr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..64bfadaa7d --- /dev/null +++ b/stable/radarr/6.6.0/test_values.yaml @@ -0,0 +1,47 @@ +# 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: emptyDir diff --git a/stable/radarr/6.6.0/values.yaml b/stable/radarr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/sonarr/6.6.0/CONFIG.md b/stable/sonarr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/sonarr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/sonarr/6.6.0/Chart.lock new file mode 100644 index 0000000000..160bdcd5e4 --- /dev/null +++ b/stable/sonarr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:17.226135241Z" diff --git a/stable/sonarr/6.6.0/Chart.yaml b/stable/sonarr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..506a7a7902 --- /dev/null +++ b/stable/sonarr/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/sonarr/6.6.0/README.md b/stable/sonarr/6.6.0/README.md new file mode 100644 index 0000000000..3f9c9ddc57 --- /dev/null +++ b/stable/sonarr/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `sonarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `sonarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/sonarr/6.6.0/app-readme.md new file mode 100644 index 0000000000..07c189ecff --- /dev/null +++ b/stable/sonarr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/sonarr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/sonarr/6.6.0/ix_values.yaml b/stable/sonarr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..9d410bd464 --- /dev/null +++ b/stable/sonarr/6.6.0/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.6.0/questions.yaml b/stable/sonarr/6.6.0/questions.yaml new file mode 100644 index 0000000000..97ed649e75 --- /dev/null +++ b/stable/sonarr/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/sonarr/6.6.0/templates/common.yaml b/stable/sonarr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/sonarr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sonarr/6.6.0/test_values.yaml b/stable/sonarr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..4715fabc44 --- /dev/null +++ b/stable/sonarr/6.6.0/test_values.yaml @@ -0,0 +1,47 @@ +# 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: emptyDir diff --git a/stable/sonarr/6.6.0/values.yaml b/stable/sonarr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/syncthing/6.6.0/CONFIG.md b/stable/syncthing/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/syncthing/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/syncthing/6.6.0/Chart.lock new file mode 100644 index 0000000000..5c85fbd52e --- /dev/null +++ b/stable/syncthing/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:18.976387172Z" diff --git a/stable/syncthing/6.6.0/Chart.yaml b/stable/syncthing/6.6.0/Chart.yaml new file mode 100644 index 0000000000..d4301c6a01 --- /dev/null +++ b/stable/syncthing/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/syncthing/6.6.0/README.md b/stable/syncthing/6.6.0/README.md new file mode 100644 index 0000000000..802df6c2a1 --- /dev/null +++ b/stable/syncthing/6.6.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `syncthing` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `syncthing` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/syncthing/6.6.0/app-readme.md new file mode 100644 index 0000000000..7eaa0780e0 --- /dev/null +++ b/stable/syncthing/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/syncthing/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/syncthing/6.6.0/ix_values.yaml b/stable/syncthing/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..701758ecde --- /dev/null +++ b/stable/syncthing/6.6.0/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.6.0/questions.yaml b/stable/syncthing/6.6.0/questions.yaml new file mode 100644 index 0000000000..85d40a6e38 --- /dev/null +++ b/stable/syncthing/6.6.0/questions.yaml @@ -0,0 +1,928 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8384 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 21027 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/syncthing/6.6.0/templates/common.yaml b/stable/syncthing/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/syncthing/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/6.6.0/test_values.yaml b/stable/syncthing/6.6.0/test_values.yaml new file mode 100644 index 0000000000..73758cf221 --- /dev/null +++ b/stable/syncthing/6.6.0/test_values.yaml @@ -0,0 +1,38 @@ +# 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: emptyDir + + mountPath: "/var/syncthing/" diff --git a/stable/syncthing/6.6.0/values.yaml b/stable/syncthing/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/tautulli/6.6.0/CONFIG.md b/stable/tautulli/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/tautulli/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/tautulli/6.6.0/Chart.lock new file mode 100644 index 0000000000..e779368ebc --- /dev/null +++ b/stable/tautulli/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:20.755005625Z" diff --git a/stable/tautulli/6.6.0/Chart.yaml b/stable/tautulli/6.6.0/Chart.yaml new file mode 100644 index 0000000000..83e1fa16ec --- /dev/null +++ b/stable/tautulli/6.6.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/tautulli/6.6.0/README.md b/stable/tautulli/6.6.0/README.md new file mode 100644 index 0000000000..5ca2e0340c --- /dev/null +++ b/stable/tautulli/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `tautulli` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `tautulli` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/tautulli/6.6.0/app-readme.md new file mode 100644 index 0000000000..4286929041 --- /dev/null +++ b/stable/tautulli/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/tautulli/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/tautulli/6.6.0/ix_values.yaml b/stable/tautulli/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..5fea4cd85e --- /dev/null +++ b/stable/tautulli/6.6.0/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.6.0/questions.yaml b/stable/tautulli/6.6.0/questions.yaml new file mode 100644 index 0000000000..10d3ff06ad --- /dev/null +++ b/stable/tautulli/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/tautulli/6.6.0/templates/common.yaml b/stable/tautulli/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/tautulli/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tautulli/6.6.0/test_values.yaml b/stable/tautulli/6.6.0/test_values.yaml new file mode 100644 index 0000000000..751715bdf1 --- /dev/null +++ b/stable/tautulli/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/stable/tautulli/6.6.0/values.yaml b/stable/tautulli/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/traefik/6.8.0/CONFIG.md b/stable/traefik/6.8.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/traefik/6.8.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.8.0/Chart.lock b/stable/traefik/6.8.0/Chart.lock new file mode 100644 index 0000000000..7b413f817b --- /dev/null +++ b/stable/traefik/6.8.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:22.499307665Z" diff --git a/stable/traefik/6.8.0/Chart.yaml b/stable/traefik/6.8.0/Chart.yaml new file mode 100644 index 0000000000..7a1757f691 --- /dev/null +++ b/stable/traefik/6.8.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: '2.4' +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.8.0 diff --git a/stable/traefik/6.8.0/LICENSE b/stable/traefik/6.8.0/LICENSE new file mode 100644 index 0000000000..907ff83212 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/README.md b/stable/traefik/6.8.0/README.md new file mode 100644 index 0000000000..134d271a44 --- /dev/null +++ b/stable/traefik/6.8.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 6.5.6](https://img.shields.io/badge/Version-6.5.6-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `traefik` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `traefik` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.8.0/app-readme.md b/stable/traefik/6.8.0/app-readme.md new file mode 100644 index 0000000000..753f84f706 --- /dev/null +++ b/stable/traefik/6.8.0/app-readme.md @@ -0,0 +1,3 @@ +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.8.0/charts/common-6.8.0.tgz b/stable/traefik/6.8.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/traefik/6.8.0/crds/ingressroute.yaml b/stable/traefik/6.8.0/crds/ingressroute.yaml new file mode 100644 index 0000000000..9422be3c87 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/ingressroutetcp.yaml b/stable/traefik/6.8.0/crds/ingressroutetcp.yaml new file mode 100644 index 0000000000..b50eb9dcc4 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/ingressrouteudp.yaml b/stable/traefik/6.8.0/crds/ingressrouteudp.yaml new file mode 100644 index 0000000000..d7c2624b57 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/middlewares.yaml b/stable/traefik/6.8.0/crds/middlewares.yaml new file mode 100644 index 0000000000..513b36f5d8 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/serverstransports.yaml b/stable/traefik/6.8.0/crds/serverstransports.yaml new file mode 100644 index 0000000000..689a57f71b --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/tlsoptions.yaml b/stable/traefik/6.8.0/crds/tlsoptions.yaml new file mode 100644 index 0000000000..a0c2573fb9 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/tlsstores.yaml b/stable/traefik/6.8.0/crds/tlsstores.yaml new file mode 100644 index 0000000000..f9a40052ba --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/crds/traefikservices.yaml b/stable/traefik/6.8.0/crds/traefikservices.yaml new file mode 100644 index 0000000000..59fa483947 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/ix_values.yaml b/stable/traefik/6.8.0/ix_values.yaml new file mode 100644 index 0000000000..0a43b81bab --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/questions.yaml b/stable/traefik/6.8.0/questions.yaml new file mode 100644 index 0000000000..540dab8fcd --- /dev/null +++ b/stable/traefik/6.8.0/questions.yaml @@ -0,0 +1,498 @@ +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: 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.8.0/templates/_helpers.tpl b/stable/traefik/6.8.0/templates/_helpers.tpl new file mode 100644 index 0000000000..f7b055fa82 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/_podtemplate.tpl b/stable/traefik/6.8.0/templates/_podtemplate.tpl new file mode 100644 index 0000000000..9e8fe8aca3 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/common.yaml b/stable/traefik/6.8.0/templates/custom/common.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/traefik/6.8.0/templates/custom/middleware-namespace.yaml b/stable/traefik/6.8.0/templates/custom/middleware-namespace.yaml new file mode 100644 index 0000000000..16156ee5e1 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/basic-middleware.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/basic-middleware.yaml new file mode 100644 index 0000000000..98f7d1c170 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/basicauth.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/basicauth.yaml new file mode 100644 index 0000000000..4e0f326a2f --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/chain.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/chain.yaml new file mode 100644 index 0000000000..ef592c255b --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/forwardauth.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/forwardauth.yaml new file mode 100644 index 0000000000..bb90d33775 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/ratelimit.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/ratelimit.yaml new file mode 100644 index 0000000000..b4bfa938e6 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/middlewares/redirectScheme.yaml b/stable/traefik/6.8.0/templates/custom/middlewares/redirectScheme.yaml new file mode 100644 index 0000000000..070c8fc4a9 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/portal.yaml b/stable/traefik/6.8.0/templates/custom/portal.yaml new file mode 100644 index 0000000000..92e80f287a --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/custom/portalhook.yaml b/stable/traefik/6.8.0/templates/custom/portalhook.yaml new file mode 100644 index 0000000000..5a9fee80da --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/daemonset.yaml b/stable/traefik/6.8.0/templates/daemonset.yaml new file mode 100644 index 0000000000..469e105c35 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/dashboard-hook-ingressroute.yaml b/stable/traefik/6.8.0/templates/dashboard-hook-ingressroute.yaml new file mode 100644 index 0000000000..ec278c2691 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/deployment.yaml b/stable/traefik/6.8.0/templates/deployment.yaml new file mode 100644 index 0000000000..494087cfd0 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/gateway.yaml b/stable/traefik/6.8.0/templates/gateway.yaml new file mode 100644 index 0000000000..85194211fe --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/gatewayclass.yaml b/stable/traefik/6.8.0/templates/gatewayclass.yaml new file mode 100644 index 0000000000..61bf007db1 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/hpa.yaml b/stable/traefik/6.8.0/templates/hpa.yaml new file mode 100644 index 0000000000..bf37117de6 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/ingressclass.yaml b/stable/traefik/6.8.0/templates/ingressclass.yaml new file mode 100644 index 0000000000..7c62458c82 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/poddisruptionbudget.yaml b/stable/traefik/6.8.0/templates/poddisruptionbudget.yaml new file mode 100644 index 0000000000..9893e52175 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/clusterrole.yaml b/stable/traefik/6.8.0/templates/rbac/clusterrole.yaml new file mode 100644 index 0000000000..2c63e00641 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/clusterrolebinding.yaml b/stable/traefik/6.8.0/templates/rbac/clusterrolebinding.yaml new file mode 100644 index 0000000000..509e92ff2b --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/podsecuritypolicy.yaml b/stable/traefik/6.8.0/templates/rbac/podsecuritypolicy.yaml new file mode 100644 index 0000000000..66bc1458d5 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/role.yaml b/stable/traefik/6.8.0/templates/rbac/role.yaml new file mode 100644 index 0000000000..6c763065d6 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/rolebinding.yaml b/stable/traefik/6.8.0/templates/rbac/rolebinding.yaml new file mode 100644 index 0000000000..1041640186 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/rbac/serviceaccount.yaml b/stable/traefik/6.8.0/templates/rbac/serviceaccount.yaml new file mode 100644 index 0000000000..bcc941eec9 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/service.yaml b/stable/traefik/6.8.0/templates/service.yaml new file mode 100644 index 0000000000..745bb9102d --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/templates/tlsoption.yaml b/stable/traefik/6.8.0/templates/tlsoption.yaml new file mode 100644 index 0000000000..ec46e8bbc9 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/test_values.yaml b/stable/traefik/6.8.0/test_values.yaml new file mode 100644 index 0000000000..596cc78669 --- /dev/null +++ b/stable/traefik/6.8.0/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.8.0/values.yaml b/stable/traefik/6.8.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/transmission/6.6.0/CONFIG.md b/stable/transmission/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/transmission/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/transmission/6.6.0/Chart.lock new file mode 100644 index 0000000000..74cc461866 --- /dev/null +++ b/stable/transmission/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:24.422685212Z" diff --git a/stable/transmission/6.6.0/Chart.yaml b/stable/transmission/6.6.0/Chart.yaml new file mode 100644 index 0000000000..fc37ff655e --- /dev/null +++ b/stable/transmission/6.6.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/transmission/6.6.0/README.md b/stable/transmission/6.6.0/README.md new file mode 100644 index 0000000000..0f30806bc8 --- /dev/null +++ b/stable/transmission/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `transmission` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `transmission` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/transmission/6.6.0/app-readme.md new file mode 100644 index 0000000000..7e8f54afb7 --- /dev/null +++ b/stable/transmission/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/transmission/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/transmission/6.6.0/ix_values.yaml b/stable/transmission/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..aeea220e56 --- /dev/null +++ b/stable/transmission/6.6.0/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.6.0/questions.yaml b/stable/transmission/6.6.0/questions.yaml new file mode 100644 index 0000000000..d6b792409f --- /dev/null +++ b/stable/transmission/6.6.0/questions.yaml @@ -0,0 +1,1156 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/transmission/6.6.0/templates/common.yaml b/stable/transmission/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..f6d3b6d3a0 --- /dev/null +++ b/stable/transmission/6.6.0/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/transmission/6.6.0/test_values.yaml b/stable/transmission/6.6.0/test_values.yaml new file mode 100644 index 0000000000..c2388fbd06 --- /dev/null +++ b/stable/transmission/6.6.0/test_values.yaml @@ -0,0 +1,106 @@ +# 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: emptyDir diff --git a/stable/transmission/6.6.0/values.yaml b/stable/transmission/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/truecommand/6.6.0/CONFIG.md b/stable/truecommand/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/truecommand/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/truecommand/6.6.0/Chart.lock new file mode 100644 index 0000000000..8fd98a91b3 --- /dev/null +++ b/stable/truecommand/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:26.171175026Z" diff --git a/stable/truecommand/6.6.0/Chart.yaml b/stable/truecommand/6.6.0/Chart.yaml new file mode 100644 index 0000000000..48a8eb184e --- /dev/null +++ b/stable/truecommand/6.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: nightly +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/truecommand/6.6.0/README.md b/stable/truecommand/6.6.0/README.md new file mode 100644 index 0000000000..f91229aee9 --- /dev/null +++ b/stable/truecommand/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `truecommand` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `truecommand` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/truecommand/6.6.0/app-readme.md new file mode 100644 index 0000000000..8e1468487f --- /dev/null +++ b/stable/truecommand/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/truecommand/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/truecommand/6.6.0/ix_values.yaml b/stable/truecommand/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..feeb16a637 --- /dev/null +++ b/stable/truecommand/6.6.0/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.6.0/questions.yaml b/stable/truecommand/6.6.0/questions.yaml new file mode 100644 index 0000000000..2c45cb89f4 --- /dev/null +++ b/stable/truecommand/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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/truecommand/6.6.0/templates/common.yaml b/stable/truecommand/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/truecommand/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/truecommand/6.6.0/test_values.yaml b/stable/truecommand/6.6.0/test_values.yaml new file mode 100644 index 0000000000..7710492dc3 --- /dev/null +++ b/stable/truecommand/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/stable/truecommand/6.6.0/values.yaml b/stable/truecommand/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/vaultwarden/3.11.0/CONFIG.md b/stable/vaultwarden/3.11.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/vaultwarden/3.11.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/3.11.0/Chart.lock b/stable/vaultwarden/3.11.0/Chart.lock new file mode 100644 index 0000000000..e6b7be5de4 --- /dev/null +++ b/stable/vaultwarden/3.11.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.8.0 +digest: sha256:ee649f8338b4e3377068a957416d914298ac6f0a70615b4111588ff54e54d61a +generated: "2021-08-12T11:49:30.250546507Z" diff --git a/stable/vaultwarden/3.11.0/Chart.yaml b/stable/vaultwarden/3.11.0/Chart.yaml new file mode 100644 index 0000000000..85fd07a3a5 --- /dev/null +++ b/stable/vaultwarden/3.11.0/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.8.0 +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: 3.11.0 diff --git a/stable/vaultwarden/3.11.0/README.md b/stable/vaultwarden/3.11.0/README.md new file mode 100644 index 0000000000..d52085bf47 --- /dev/null +++ b/stable/vaultwarden/3.11.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.4.2](https://img.shields.io/badge/Version-3.4.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) + +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://charts.bitnami.com/bitnami | postgresql | 10.5.1 | +| https://truecharts.org/ | common | 6.5.2 | + +## Installing the Chart + +To install the chart with the release name `vaultwarden` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `vaultwarden` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/3.11.0/app-readme.md b/stable/vaultwarden/3.11.0/app-readme.md new file mode 100644 index 0000000000..11f37b5efe --- /dev/null +++ b/stable/vaultwarden/3.11.0/app-readme.md @@ -0,0 +1,3 @@ +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/3.11.0/charts/common-6.8.0.tgz b/stable/vaultwarden/3.11.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/3.11.0/charts/postgresql-10.8.0.tgz b/stable/vaultwarden/3.11.0/charts/postgresql-10.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..942794602501cdddd3b4fa2b49e54fc46deb1bec GIT binary patch literal 51360 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 z z^aIeEdx+J?Gr13fU}jbehSQQ|BGl3QedR7`AVNTu&?$_Ag+ubpl-Kd}sAO@xg5w|X z+Ib^?4eJb4lmgFdr>?QQ7^HRJ%I5|9o4c7i`Vka!#;cSJ=1o3w5TB!JlxA~Hmn+b%u?cv zX3MH{k6-Nw^1Bjoq9yS5pMf5Ucazz%9O&mZxgdIao;@L*PRNELWSiBadB0y6NHQOi zPNcb~g67`3LA=a5+>#<LKUvu?d=3lzaxile|Sg8%a{K!+S9@+ zq0xoGgb>J&ZcP8@)NiMPe1}5XVVvhWJmU?jB^jC+?%gBkzyjc%Q(kqx1?%$R=$Jh2 z?(~|djFMRtZR^5dR!UPcWz;xLXcB%-WeE0vH02O4U|~77@r+6ur;ODK`HrE=2|`A@ z2HTTLF^fabYPtgbeH`D&MVrZ!7BY(H7;(p{MzFbX(;hnRJgyGEVbs*TQuHuK zkvIo87NabuG1142U9pW9!M}okZ7z%6v5L~zrd|ZSZqPH<#2xa^>jgqfpsPNfomKrs zs`Ym7%`3E6`>XzWaaWMI-XESEzI*%EpN|gqPG22V+4cF)Ur$c=PJccj-M}I@>hHOk-zqA$(`;_x6^&m={_O7$GeZe+kN^Zc>dz?lNa5c z7thGI-EOx_em>p*tBqXqSC96XsrYNJ7rfB>BqJG?MtGnWpW|112mdC7STOXPlheK9 zQ~i7I$5*WydPfN9ZR7Bd4TnNVH*5F#GiBH2)H`a7IDj$H;Vx<8JHUw?RUT0uUHUj` zy^>PMUGnqMkH>olugDL3hp%59?Ap7Bgr>s@X;*^PMv8Q%rSKE8n@(7|>;HkLZC!n? ztY&c+6o$Kc-wb#dvUoSUKoq&Xs>^}gX#`u(h4!H}>VLRJ9;R%X=!tuXDzb;z+)1j1 zh4JDcZ03>e%}&0@jd*>o%Ul#lNcADu@_C%4vt-DP9b+Xwa{2YYwH>~Ce?P9?-%oaS zyDx(7PWSPPr!QVSS+T#r3wpth-Q8x&eqlg<&$x4hwuDfwWCMXeY5S0yoR`qNrBHV=i=jL|+CJ$n6d`fcFo%M@Z zY(mFchI3lhzK`sE8&1u!LobjWI+AR}KUsSOE&ZUdXPe<#>J_ONiU?gc1b9!u=R=ip zu+y1qfe|H18!#bnW}UTbV-+Zt&XO%MrDu%bU5hZ3%^A{3Hj2Oi$Xt=e5YEXA|9Q~U z!`}--XRrd)@AbjnQT~R|uLB^X`Wdf&G-nhEp+#pKSj+?s(&8Ziz*9xWV1%%t$V++EgagUw8I!0c$xJjJnoDpoB6H5p!DifWdiuy}8&qf;>EGg!IZX8qhOXldsCWYM zipq#HnNyt`jdjRF40ngKh^H}5<4{PvgEtYTCR7o{;~_%@l14UQucvT=!ij?3bcZon zeg%TObMN`ii(XlcZ4HdQEtTaGEbHYHwLS0kLF+qz zfHVj{#!M*u_`92rrj-{HR&Q>Vbhv+0=62xoXXGJmeFIHFcqNDQ>l=2%<$?G0|L&FRJvG~y4p

;f_`>tr@S??@9y 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/3.11.0/ix_values.yaml b/stable/vaultwarden/3.11.0/ix_values.yaml new file mode 100644 index 0000000000..08cdbe0e4e --- /dev/null +++ b/stable/vaultwarden/3.11.0/ix_values.yaml @@ -0,0 +1,56 @@ +## +# 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: vaultwardenconfig + - secretRef: + name: vaultwardensecret + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + 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 +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + volumePermissions: + enabled: true + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +## +# 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/3.11.0/questions.yaml b/stable/vaultwarden/3.11.0/questions.yaml new file mode 100644 index 0000000000..5c3fe9d1ef --- /dev/null +++ b/stable/vaultwarden/3.11.0/questions.yaml @@ -0,0 +1,1199 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + 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: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + 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: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + 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: 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: 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: 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/vaultwarden/3.11.0/templates/_configmap.tpl b/stable/vaultwarden/3.11.0/templates/_configmap.tpl new file mode 100644 index 0000000000..8809925abd --- /dev/null +++ b/stable/vaultwarden/3.11.0/templates/_configmap.tpl @@ -0,0 +1,116 @@ +{{/* Define the configmap */}} +{{- define "vaultwarden.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + 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/3.11.0/templates/_secrets.tpl b/stable/vaultwarden/3.11.0/templates/_secrets.tpl new file mode 100644 index 0000000000..6a7bf408bb --- /dev/null +++ b/stable/vaultwarden/3.11.0/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: 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: 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 }} +type: Opaque +{{- end -}} diff --git a/stable/vaultwarden/3.11.0/templates/_validate.tpl b/stable/vaultwarden/3.11.0/templates/_validate.tpl new file mode 100644 index 0000000000..e4832c2f6e --- /dev/null +++ b/stable/vaultwarden/3.11.0/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/3.11.0/templates/common.yaml b/stable/vaultwarden/3.11.0/templates/common.yaml new file mode 100644 index 0000000000..74f04d2d8c --- /dev/null +++ b/stable/vaultwarden/3.11.0/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/3.11.0/test_values.yaml b/stable/vaultwarden/3.11.0/test_values.yaml new file mode 100644 index 0000000000..1fd6e3bb7d --- /dev/null +++ b/stable/vaultwarden/3.11.0/test_values.yaml @@ -0,0 +1,176 @@ +# 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: vaultwardenconfig + - secretRef: + name: vaultwardensecret + +envValueFrom: + DATABASE_URL: + secretKeyRef: + 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: emptyDir + + db: + noMount: true + forceName: "db" + enabled: true + type: emptyDir + + dbbackup: + noMount: true + enabled: true + type: emptyDir + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + volumePermissions: + enabled: true + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/stable/vaultwarden/3.11.0/values.yaml b/stable/vaultwarden/3.11.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/zwavejs2mqtt/6.6.0/CONFIG.md b/stable/zwavejs2mqtt/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/zwavejs2mqtt/6.6.0/Chart.lock new file mode 100644 index 0000000000..1c2f5072d5 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:49:34.812332156Z" diff --git a/stable/zwavejs2mqtt/6.6.0/Chart.yaml b/stable/zwavejs2mqtt/6.6.0/Chart.yaml new file mode 100644 index 0000000000..2d52dedecf --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/zwavejs2mqtt/6.6.0/README.md b/stable/zwavejs2mqtt/6.6.0/README.md new file mode 100644 index 0000000000..ee0ea8ff94 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `zwavejs2mqtt` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `zwavejs2mqtt` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/zwavejs2mqtt/6.6.0/app-readme.md new file mode 100644 index 0000000000..4bb94a1a5a --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/zwavejs2mqtt/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/6.6.0/ix_values.yaml b/stable/zwavejs2mqtt/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..d88df9ec68 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/ix_values.yaml @@ -0,0 +1,63 @@ +## +# 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.4.5 + +# 5=tty 20=dialout 24=cdrom +podSecurityContext: + runAsNonRoot: true + supplementalGroups: [5, 20, 24] + +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.6.0/questions.yaml b/stable/zwavejs2mqtt/6.6.0/questions.yaml new file mode 100644 index 0000000000..dd5961ea08 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/questions.yaml @@ -0,0 +1,798 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8091 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + # Configure app volumes + - 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: 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: "Enable privileged mode for Common-Chart based charts" + 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: 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/zwavejs2mqtt/6.6.0/templates/common.yaml b/stable/zwavejs2mqtt/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/zwavejs2mqtt/6.6.0/test_values.yaml b/stable/zwavejs2mqtt/6.6.0/test_values.yaml new file mode 100644 index 0000000000..f3e8e68d09 --- /dev/null +++ b/stable/zwavejs2mqtt/6.6.0/test_values.yaml @@ -0,0 +1,103 @@ +# 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.4.5 + +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: emptyDir + + +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller diff --git a/stable/zwavejs2mqtt/6.6.0/values.yaml b/stable/zwavejs2mqtt/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2

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 Y>3Mpdp4&hF4FCZD|IhJ8_5d0M09e1kJ^%m! literal 0 HcmV?d00001 diff --git a/incubator/fireflyiii/4.11.0/ix_values.yaml b/incubator/fireflyiii/4.11.0/ix_values.yaml new file mode 100644 index 0000000000..a8ea761002 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/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: 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: dbcreds + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: fireflyiii + postgresqlDatabase: fireflyiii + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db +## +# 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/fireflyiii/4.11.0/questions.yaml b/incubator/fireflyiii/4.11.0/questions.yaml new file mode 100644 index 0000000000..854b3efa0b --- /dev/null +++ b/incubator/fireflyiii/4.11.0/questions.yaml @@ -0,0 +1,866 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + 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" + - 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: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database 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: "" + 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: 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: 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: 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/incubator/fireflyiii/4.11.0/templates/common.yaml b/incubator/fireflyiii/4.11.0/templates/common.yaml new file mode 100644 index 0000000000..64e027ac0f --- /dev/null +++ b/incubator/fireflyiii/4.11.0/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/incubator/fireflyiii/4.11.0/templates/secrets.yaml b/incubator/fireflyiii/4.11.0/templates/secrets.yaml new file mode 100644 index 0000000000..5d26274161 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/templates/secrets.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Secret +metadata: + 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 }} + postgresql_host: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }} +type: Opaque diff --git a/incubator/fireflyiii/4.11.0/test_values.yaml b/incubator/fireflyiii/4.11.0/test_values.yaml new file mode 100644 index 0000000000..d05a4af479 --- /dev/null +++ b/incubator/fireflyiii/4.11.0/test_values.yaml @@ -0,0 +1,82 @@ +# 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: dbcreds + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html/storage/upload" + type: emptyDir + + db: + forceName: "db" + enabled: true + type: emptyDir + + dbbackup: + enabled: true + type: emptyDir + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: firefly + postgresqlDatabase: firefly + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/incubator/fireflyiii/4.11.0/values.yaml b/incubator/fireflyiii/4.11.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/flaresolverr/1.4.0/CONFIG.md b/incubator/flaresolverr/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/flaresolverr/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/flaresolverr/1.4.0/Chart.lock b/incubator/flaresolverr/1.4.0/Chart.lock new file mode 100644 index 0000000000..c8e5498c39 --- /dev/null +++ b/incubator/flaresolverr/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:00.936363802Z" diff --git a/incubator/flaresolverr/1.4.0/Chart.yaml b/incubator/flaresolverr/1.4.0/Chart.yaml new file mode 100644 index 0000000000..f0aee37f2c --- /dev/null +++ b/incubator/flaresolverr/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/flaresolverr/1.4.0/README.md b/incubator/flaresolverr/1.4.0/README.md new file mode 100644 index 0000000000..7d7ed22e3a --- /dev/null +++ b/incubator/flaresolverr/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `flaresolverr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `flaresolverr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/flaresolverr/1.4.0/app-readme.md b/incubator/flaresolverr/1.4.0/app-readme.md new file mode 100644 index 0000000000..2c2f63057a --- /dev/null +++ b/incubator/flaresolverr/1.4.0/app-readme.md @@ -0,0 +1 @@ +FlareSolverr is a proxy server to bypass Cloudflare protection diff --git a/incubator/flaresolverr/1.4.0/charts/common-6.8.0.tgz b/incubator/flaresolverr/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/flaresolverr/1.4.0/ix_values.yaml b/incubator/flaresolverr/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..8d6938f0aa --- /dev/null +++ b/incubator/flaresolverr/1.4.0/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/incubator/flaresolverr/1.4.0/questions.yaml b/incubator/flaresolverr/1.4.0/questions.yaml new file mode 100644 index 0000000000..a745d1912c --- /dev/null +++ b/incubator/flaresolverr/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8191 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/flaresolverr/1.4.0/templates/common.yaml b/incubator/flaresolverr/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/flaresolverr/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/flaresolverr/1.4.0/test_values.yaml b/incubator/flaresolverr/1.4.0/test_values.yaml new file mode 100644 index 0000000000..5e136cec6b --- /dev/null +++ b/incubator/flaresolverr/1.4.0/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/incubator/flaresolverr/1.4.0/values.yaml b/incubator/flaresolverr/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/flood/1.4.0/CONFIG.md b/incubator/flood/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/flood/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/flood/1.4.0/Chart.lock b/incubator/flood/1.4.0/Chart.lock new file mode 100644 index 0000000000..2e5a1d1a13 --- /dev/null +++ b/incubator/flood/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:02.673682286Z" diff --git a/incubator/flood/1.4.0/Chart.yaml b/incubator/flood/1.4.0/Chart.yaml new file mode 100644 index 0000000000..5e72b4021a --- /dev/null +++ b/incubator/flood/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/flood/1.4.0/README.md b/incubator/flood/1.4.0/README.md new file mode 100644 index 0000000000..69ea666c2d --- /dev/null +++ b/incubator/flood/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `flood` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `flood` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/flood/1.4.0/app-readme.md b/incubator/flood/1.4.0/app-readme.md new file mode 100644 index 0000000000..5553ed88d0 --- /dev/null +++ b/incubator/flood/1.4.0/app-readme.md @@ -0,0 +1 @@ +Flood is a monitoring service for various torrent clients diff --git a/incubator/flood/1.4.0/charts/common-6.8.0.tgz b/incubator/flood/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/flood/1.4.0/ci/ct-values.yaml b/incubator/flood/1.4.0/ci/ct-values.yaml new file mode 100644 index 0000000000..f874292fad --- /dev/null +++ b/incubator/flood/1.4.0/ci/ct-values.yaml @@ -0,0 +1,5 @@ +persistence: + data: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi diff --git a/incubator/flood/1.4.0/ix_values.yaml b/incubator/flood/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..8ea3b07710 --- /dev/null +++ b/incubator/flood/1.4.0/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/incubator/flood/1.4.0/questions.yaml b/incubator/flood/1.4.0/questions.yaml new file mode 100644 index 0000000000..9dd9b1a7a0 --- /dev/null +++ b/incubator/flood/1.4.0/questions.yaml @@ -0,0 +1,674 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/flood/1.4.0/templates/common.yaml b/incubator/flood/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/flood/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/flood/1.4.0/test_values.yaml b/incubator/flood/1.4.0/test_values.yaml new file mode 100644 index 0000000000..49bb5ec800 --- /dev/null +++ b/incubator/flood/1.4.0/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: 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: false diff --git a/incubator/flood/1.4.0/values.yaml b/incubator/flood/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/focalboard/1.4.0/CONFIG.md b/incubator/focalboard/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/focalboard/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/focalboard/1.4.0/Chart.lock b/incubator/focalboard/1.4.0/Chart.lock new file mode 100644 index 0000000000..4ce005f8db --- /dev/null +++ b/incubator/focalboard/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:04.417728961Z" diff --git a/incubator/focalboard/1.4.0/Chart.yaml b/incubator/focalboard/1.4.0/Chart.yaml new file mode 100644 index 0000000000..15d4e1f96c --- /dev/null +++ b/incubator/focalboard/1.4.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/focalboard/1.4.0/README.md b/incubator/focalboard/1.4.0/README.md new file mode 100644 index 0000000000..98ea1d3b3e --- /dev/null +++ b/incubator/focalboard/1.4.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `focalboard` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `focalboard` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/focalboard/1.4.0/app-readme.md b/incubator/focalboard/1.4.0/app-readme.md new file mode 100644 index 0000000000..40971a5c67 --- /dev/null +++ b/incubator/focalboard/1.4.0/app-readme.md @@ -0,0 +1 @@ +Focalboard is an open source, self-hosted alternative to Trello, Notion, diff --git a/incubator/focalboard/1.4.0/charts/common-6.8.0.tgz b/incubator/focalboard/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/focalboard/1.4.0/ix_values.yaml b/incubator/focalboard/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..d0913f04ee --- /dev/null +++ b/incubator/focalboard/1.4.0/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/incubator/focalboard/1.4.0/questions.yaml b/incubator/focalboard/1.4.0/questions.yaml new file mode 100644 index 0000000000..9f93b56fac --- /dev/null +++ b/incubator/focalboard/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/focalboard/1.4.0/templates/common.yaml b/incubator/focalboard/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/focalboard/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/focalboard/1.4.0/test_values.yaml b/incubator/focalboard/1.4.0/test_values.yaml new file mode 100644 index 0000000000..9f58880a4f --- /dev/null +++ b/incubator/focalboard/1.4.0/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: 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: false diff --git a/incubator/focalboard/1.4.0/values.yaml b/incubator/focalboard/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/freshrss/6.6.0/CONFIG.md b/incubator/freshrss/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/freshrss/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/freshrss/6.6.0/Chart.lock b/incubator/freshrss/6.6.0/Chart.lock new file mode 100644 index 0000000000..4b28c6d525 --- /dev/null +++ b/incubator/freshrss/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:06.211799493Z" diff --git a/incubator/freshrss/6.6.0/Chart.yaml b/incubator/freshrss/6.6.0/Chart.yaml new file mode 100644 index 0000000000..88851a43db --- /dev/null +++ b/incubator/freshrss/6.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/freshrss/6.6.0/README.md b/incubator/freshrss/6.6.0/README.md new file mode 100644 index 0000000000..a8e9015f6c --- /dev/null +++ b/incubator/freshrss/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `freshrss` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `freshrss` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/freshrss/6.6.0/app-readme.md b/incubator/freshrss/6.6.0/app-readme.md new file mode 100644 index 0000000000..7d8a844b9c --- /dev/null +++ b/incubator/freshrss/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/freshrss/6.6.0/charts/common-6.8.0.tgz b/incubator/freshrss/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/freshrss/6.6.0/ix_values.yaml b/incubator/freshrss/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..98641a2382 --- /dev/null +++ b/incubator/freshrss/6.6.0/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/incubator/freshrss/6.6.0/questions.yaml b/incubator/freshrss/6.6.0/questions.yaml new file mode 100644 index 0000000000..c5da3c0f7f --- /dev/null +++ b/incubator/freshrss/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/freshrss/6.6.0/templates/common.yaml b/incubator/freshrss/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/freshrss/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/freshrss/6.6.0/test_values.yaml b/incubator/freshrss/6.6.0/test_values.yaml new file mode 100644 index 0000000000..8cadee1dd6 --- /dev/null +++ b/incubator/freshrss/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/incubator/freshrss/6.6.0/values.yaml b/incubator/freshrss/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/gaps/6.6.0/CONFIG.md b/incubator/gaps/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/gaps/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/gaps/6.6.0/Chart.lock b/incubator/gaps/6.6.0/Chart.lock new file mode 100644 index 0000000000..542e02d43d --- /dev/null +++ b/incubator/gaps/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:07.985298728Z" diff --git a/incubator/gaps/6.6.0/Chart.yaml b/incubator/gaps/6.6.0/Chart.yaml new file mode 100644 index 0000000000..39074fa1ba --- /dev/null +++ b/incubator/gaps/6.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/gaps/6.6.0/README.md b/incubator/gaps/6.6.0/README.md new file mode 100644 index 0000000000..dc81acfea5 --- /dev/null +++ b/incubator/gaps/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `gaps` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `gaps` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/gaps/6.6.0/app-readme.md b/incubator/gaps/6.6.0/app-readme.md new file mode 100644 index 0000000000..2333306b1d --- /dev/null +++ b/incubator/gaps/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/gaps/6.6.0/charts/common-6.8.0.tgz b/incubator/gaps/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/gaps/6.6.0/ix_values.yaml b/incubator/gaps/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..d11177660e --- /dev/null +++ b/incubator/gaps/6.6.0/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/incubator/gaps/6.6.0/questions.yaml b/incubator/gaps/6.6.0/questions.yaml new file mode 100644 index 0000000000..4284bc83f0 --- /dev/null +++ b/incubator/gaps/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: 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: 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: 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/incubator/gaps/6.6.0/templates/common.yaml b/incubator/gaps/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/gaps/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/gaps/6.6.0/test_values.yaml b/incubator/gaps/6.6.0/test_values.yaml new file mode 100644 index 0000000000..c7555ac882 --- /dev/null +++ b/incubator/gaps/6.6.0/test_values.yaml @@ -0,0 +1,24 @@ +# 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: emptyDir diff --git a/incubator/gaps/6.6.0/values.yaml b/incubator/gaps/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/gonic/1.4.0/CONFIG.md b/incubator/gonic/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/gonic/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/gonic/1.4.0/Chart.lock b/incubator/gonic/1.4.0/Chart.lock new file mode 100644 index 0000000000..c6267b3d35 --- /dev/null +++ b/incubator/gonic/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:09.697418832Z" diff --git a/incubator/gonic/1.4.0/Chart.yaml b/incubator/gonic/1.4.0/Chart.yaml new file mode 100644 index 0000000000..2dcfce4448 --- /dev/null +++ b/incubator/gonic/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/gonic/1.4.0/README.md b/incubator/gonic/1.4.0/README.md new file mode 100644 index 0000000000..6e9efe5d04 --- /dev/null +++ b/incubator/gonic/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `gonic` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `gonic` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/gonic/1.4.0/app-readme.md b/incubator/gonic/1.4.0/app-readme.md new file mode 100644 index 0000000000..2a94032af9 --- /dev/null +++ b/incubator/gonic/1.4.0/app-readme.md @@ -0,0 +1 @@ +Music streaming server / subsonic server API implementation diff --git a/incubator/gonic/1.4.0/charts/common-6.8.0.tgz b/incubator/gonic/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/gonic/1.4.0/ci/ct-values.yaml b/incubator/gonic/1.4.0/ci/ct-values.yaml new file mode 100644 index 0000000000..6d8d2f4a5c --- /dev/null +++ b/incubator/gonic/1.4.0/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/incubator/gonic/1.4.0/ix_values.yaml b/incubator/gonic/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..0573c45fa4 --- /dev/null +++ b/incubator/gonic/1.4.0/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/incubator/gonic/1.4.0/questions.yaml b/incubator/gonic/1.4.0/questions.yaml new file mode 100644 index 0000000000..0d44c5e1d0 --- /dev/null +++ b/incubator/gonic/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/gonic/1.4.0/templates/common.yaml b/incubator/gonic/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/gonic/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/gonic/1.4.0/test_values.yaml b/incubator/gonic/1.4.0/test_values.yaml new file mode 100644 index 0000000000..dfedb91dfd --- /dev/null +++ b/incubator/gonic/1.4.0/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: 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: false + podcasts: + enabled: false + cache: + enabled: false + music: + enabled: false diff --git a/incubator/gonic/1.4.0/values.yaml b/incubator/gonic/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/grocy/6.6.0/CONFIG.md b/incubator/grocy/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/grocy/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/grocy/6.6.0/Chart.lock b/incubator/grocy/6.6.0/Chart.lock new file mode 100644 index 0000000000..30a48d0414 --- /dev/null +++ b/incubator/grocy/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:11.511114712Z" diff --git a/incubator/grocy/6.6.0/Chart.yaml b/incubator/grocy/6.6.0/Chart.yaml new file mode 100644 index 0000000000..a6cb8232fc --- /dev/null +++ b/incubator/grocy/6.6.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/grocy/6.6.0/README.md b/incubator/grocy/6.6.0/README.md new file mode 100644 index 0000000000..0fddf82587 --- /dev/null +++ b/incubator/grocy/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `grocy` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `grocy` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/grocy/6.6.0/app-readme.md b/incubator/grocy/6.6.0/app-readme.md new file mode 100644 index 0000000000..de807b7ad2 --- /dev/null +++ b/incubator/grocy/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/grocy/6.6.0/charts/common-6.8.0.tgz b/incubator/grocy/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/grocy/6.6.0/ix_values.yaml b/incubator/grocy/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..44dec94ce9 --- /dev/null +++ b/incubator/grocy/6.6.0/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.0 + 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/incubator/grocy/6.6.0/questions.yaml b/incubator/grocy/6.6.0/questions.yaml new file mode 100644 index 0000000000..b917843b0a --- /dev/null +++ b/incubator/grocy/6.6.0/questions.yaml @@ -0,0 +1,627 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/grocy/6.6.0/templates/common.yaml b/incubator/grocy/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/grocy/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/grocy/6.6.0/test_values.yaml b/incubator/grocy/6.6.0/test_values.yaml new file mode 100644 index 0000000000..eda87bf75a --- /dev/null +++ b/incubator/grocy/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for grocy. + +image: + repository: linuxserver/grocy + tag: version-v3.1.0 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: + # PUID: + # PGID: + +persistence: + config: + enabled: true + mountPath: "/config" + type: emptyDir diff --git a/incubator/grocy/6.6.0/values.yaml b/incubator/grocy/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/haste-server/1.6.0/CONFIG.md b/incubator/haste-server/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/haste-server/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/haste-server/1.6.0/Chart.lock b/incubator/haste-server/1.6.0/Chart.lock new file mode 100644 index 0000000000..4b81a7e556 --- /dev/null +++ b/incubator/haste-server/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:13.434337041Z" diff --git a/incubator/haste-server/1.6.0/Chart.yaml b/incubator/haste-server/1.6.0/Chart.yaml new file mode 100644 index 0000000000..f726e8c178 --- /dev/null +++ b/incubator/haste-server/1.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/haste-server/1.6.0/README.md b/incubator/haste-server/1.6.0/README.md new file mode 100644 index 0000000000..7a61754abf --- /dev/null +++ b/incubator/haste-server/1.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `haste-server` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `haste-server` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/haste-server/1.6.0/app-readme.md b/incubator/haste-server/1.6.0/app-readme.md new file mode 100644 index 0000000000..dd4cf171e0 --- /dev/null +++ b/incubator/haste-server/1.6.0/app-readme.md @@ -0,0 +1 @@ +Simple text sharing diff --git a/incubator/haste-server/1.6.0/charts/common-6.8.0.tgz b/incubator/haste-server/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/haste-server/1.6.0/ix_values.yaml b/incubator/haste-server/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..a9ee0bcb65 --- /dev/null +++ b/incubator/haste-server/1.6.0/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/incubator/haste-server/1.6.0/questions.yaml b/incubator/haste-server/1.6.0/questions.yaml new file mode 100644 index 0000000000..e386fc9c46 --- /dev/null +++ b/incubator/haste-server/1.6.0/questions.yaml @@ -0,0 +1,673 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 7777 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/haste-server/1.6.0/templates/common.yaml b/incubator/haste-server/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/haste-server/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/haste-server/1.6.0/test_values.yaml b/incubator/haste-server/1.6.0/test_values.yaml new file mode 100644 index 0000000000..2a475ddaa2 --- /dev/null +++ b/incubator/haste-server/1.6.0/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/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: false diff --git a/incubator/haste-server/1.6.0/values.yaml b/incubator/haste-server/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/healthchecks/1.4.0/CONFIG.md b/incubator/healthchecks/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/healthchecks/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/healthchecks/1.4.0/Chart.lock b/incubator/healthchecks/1.4.0/Chart.lock new file mode 100644 index 0000000000..be801640a5 --- /dev/null +++ b/incubator/healthchecks/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:15.213577685Z" diff --git a/incubator/healthchecks/1.4.0/Chart.yaml b/incubator/healthchecks/1.4.0/Chart.yaml new file mode 100644 index 0000000000..2b55d4df8c --- /dev/null +++ b/incubator/healthchecks/1.4.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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://raw.githubusercontent.com/healthchecks/healthchecks/master/stuff/logo.svg?raw=true +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.4.0 diff --git a/incubator/healthchecks/1.4.0/README.md b/incubator/healthchecks/1.4.0/README.md new file mode 100644 index 0000000000..6d163b20df --- /dev/null +++ b/incubator/healthchecks/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `healthchecks` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `healthchecks` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/healthchecks/1.4.0/app-readme.md b/incubator/healthchecks/1.4.0/app-readme.md new file mode 100644 index 0000000000..7fa8a26c84 --- /dev/null +++ b/incubator/healthchecks/1.4.0/app-readme.md @@ -0,0 +1 @@ +Healthchecks is a cron job monitoring service. It listens for HTTP requests diff --git a/incubator/healthchecks/1.4.0/charts/common-6.8.0.tgz b/incubator/healthchecks/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/healthchecks/1.4.0/ix_values.yaml b/incubator/healthchecks/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..484ea724c4 --- /dev/null +++ b/incubator/healthchecks/1.4.0/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/incubator/healthchecks/1.4.0/questions.yaml b/incubator/healthchecks/1.4.0/questions.yaml new file mode 100644 index 0000000000..f58ceef798 --- /dev/null +++ b/incubator/healthchecks/1.4.0/questions.yaml @@ -0,0 +1,701 @@ +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: 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 + 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: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/healthchecks/1.4.0/templates/common.yaml b/incubator/healthchecks/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/healthchecks/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/healthchecks/1.4.0/test_values.yaml b/incubator/healthchecks/1.4.0/test_values.yaml new file mode 100644 index 0000000000..87890e97cd --- /dev/null +++ b/incubator/healthchecks/1.4.0/test_values.yaml @@ -0,0 +1,41 @@ +# 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: false + mountpath: /config diff --git a/incubator/healthchecks/1.4.0/values.yaml b/incubator/healthchecks/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/heimdall/6.6.0/CONFIG.md b/incubator/heimdall/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/heimdall/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/heimdall/6.6.0/Chart.lock b/incubator/heimdall/6.6.0/Chart.lock new file mode 100644 index 0000000000..342a8f91ac --- /dev/null +++ b/incubator/heimdall/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:16.993770442Z" diff --git a/incubator/heimdall/6.6.0/Chart.yaml b/incubator/heimdall/6.6.0/Chart.yaml new file mode 100644 index 0000000000..a9008cd8be --- /dev/null +++ b/incubator/heimdall/6.6.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/heimdall/6.6.0/README.md b/incubator/heimdall/6.6.0/README.md new file mode 100644 index 0000000000..59fb53c1c3 --- /dev/null +++ b/incubator/heimdall/6.6.0/README.md @@ -0,0 +1,52 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `heimdall` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `heimdall` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/heimdall/6.6.0/app-readme.md b/incubator/heimdall/6.6.0/app-readme.md new file mode 100644 index 0000000000..3fb24ea7f1 --- /dev/null +++ b/incubator/heimdall/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/heimdall/6.6.0/charts/common-6.8.0.tgz b/incubator/heimdall/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/heimdall/6.6.0/ix_values.yaml b/incubator/heimdall/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..bdcc3ce017 --- /dev/null +++ b/incubator/heimdall/6.6.0/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/incubator/heimdall/6.6.0/questions.yaml b/incubator/heimdall/6.6.0/questions.yaml new file mode 100644 index 0000000000..fc5431e6b5 --- /dev/null +++ b/incubator/heimdall/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/heimdall/6.6.0/templates/common.yaml b/incubator/heimdall/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/heimdall/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/heimdall/6.6.0/test_values.yaml b/incubator/heimdall/6.6.0/test_values.yaml new file mode 100644 index 0000000000..658614359e --- /dev/null +++ b/incubator/heimdall/6.6.0/test_values.yaml @@ -0,0 +1,30 @@ +# 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: emptyDir diff --git a/incubator/heimdall/6.6.0/values.yaml b/incubator/heimdall/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/hyperion-ng/1.4.0/CONFIG.md b/incubator/hyperion-ng/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/hyperion-ng/1.4.0/Chart.lock b/incubator/hyperion-ng/1.4.0/Chart.lock new file mode 100644 index 0000000000..3041882ede --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:18.785153649Z" diff --git a/incubator/hyperion-ng/1.4.0/Chart.yaml b/incubator/hyperion-ng/1.4.0/Chart.yaml new file mode 100644 index 0000000000..c6ab468a9d --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/hyperion-ng/1.4.0/README.md b/incubator/hyperion-ng/1.4.0/README.md new file mode 100644 index 0000000000..45069003d7 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `hyperion-ng` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `hyperion-ng` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/hyperion-ng/1.4.0/app-readme.md b/incubator/hyperion-ng/1.4.0/app-readme.md new file mode 100644 index 0000000000..693f4d8e95 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/app-readme.md @@ -0,0 +1 @@ +Hyperion is an opensource Bias or Ambient Lighting implementation diff --git a/incubator/hyperion-ng/1.4.0/charts/common-6.8.0.tgz b/incubator/hyperion-ng/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/hyperion-ng/1.4.0/ix_values.yaml b/incubator/hyperion-ng/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..5f7832aeb9 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/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/incubator/hyperion-ng/1.4.0/questions.yaml b/incubator/hyperion-ng/1.4.0/questions.yaml new file mode 100644 index 0000000000..d32587c84e --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/questions.yaml @@ -0,0 +1,973 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 19444 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: 3804 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 19445 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: 3805 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 19333 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: 3806 + required: true + + - 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: 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: 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: 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/incubator/hyperion-ng/1.4.0/templates/common.yaml b/incubator/hyperion-ng/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/hyperion-ng/1.4.0/test_values.yaml b/incubator/hyperion-ng/1.4.0/test_values.yaml new file mode 100644 index 0000000000..c4b7a2ccb5 --- /dev/null +++ b/incubator/hyperion-ng/1.4.0/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: 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: false + mountPath: /root/.hyperion diff --git a/incubator/hyperion-ng/1.4.0/values.yaml b/incubator/hyperion-ng/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/komga/1.4.0/CONFIG.md b/incubator/komga/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/komga/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/komga/1.4.0/Chart.lock b/incubator/komga/1.4.0/Chart.lock new file mode 100644 index 0000000000..9d28d14895 --- /dev/null +++ b/incubator/komga/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:20.552738736Z" diff --git a/incubator/komga/1.4.0/Chart.yaml b/incubator/komga/1.4.0/Chart.yaml new file mode 100644 index 0000000000..a49b97be61 --- /dev/null +++ b/incubator/komga/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/komga/1.4.0/README.md b/incubator/komga/1.4.0/README.md new file mode 100644 index 0000000000..bbaffd4336 --- /dev/null +++ b/incubator/komga/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.2-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `komga` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `komga` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/komga/1.4.0/app-readme.md b/incubator/komga/1.4.0/app-readme.md new file mode 100644 index 0000000000..b5d30dc6a1 --- /dev/null +++ b/incubator/komga/1.4.0/app-readme.md @@ -0,0 +1 @@ +A comics/mangas server to serve/stream pages via API diff --git a/incubator/komga/1.4.0/charts/common-6.8.0.tgz b/incubator/komga/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/komga/1.4.0/ix_values.yaml b/incubator/komga/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..072e1dd9d2 --- /dev/null +++ b/incubator/komga/1.4.0/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.116.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/incubator/komga/1.4.0/questions.yaml b/incubator/komga/1.4.0/questions.yaml new file mode 100644 index 0000000000..ade07e0ae6 --- /dev/null +++ b/incubator/komga/1.4.0/questions.yaml @@ -0,0 +1,777 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/komga/1.4.0/templates/common.yaml b/incubator/komga/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/komga/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/komga/1.4.0/test_values.yaml b/incubator/komga/1.4.0/test_values.yaml new file mode 100644 index 0000000000..9be5231b12 --- /dev/null +++ b/incubator/komga/1.4.0/test_values.yaml @@ -0,0 +1,37 @@ +# +# 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.116.0 + # -- 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: false + mountPath: /config + data: + enabled: false + mountPath: /data diff --git a/incubator/komga/1.4.0/values.yaml b/incubator/komga/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/lazylibrarian/6.6.0/CONFIG.md b/incubator/lazylibrarian/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/lazylibrarian/6.6.0/Chart.lock b/incubator/lazylibrarian/6.6.0/Chart.lock new file mode 100644 index 0000000000..cf8ebc67db --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:22.294405783Z" diff --git a/incubator/lazylibrarian/6.6.0/Chart.yaml b/incubator/lazylibrarian/6.6.0/Chart.yaml new file mode 100644 index 0000000000..d4e171298f --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/lazylibrarian/6.6.0/README.md b/incubator/lazylibrarian/6.6.0/README.md new file mode 100644 index 0000000000..85525daaf0 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `lazylibrarian` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lazylibrarian` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/lazylibrarian/6.6.0/app-readme.md b/incubator/lazylibrarian/6.6.0/app-readme.md new file mode 100644 index 0000000000..c67c184486 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/lazylibrarian/6.6.0/charts/common-6.8.0.tgz b/incubator/lazylibrarian/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/lazylibrarian/6.6.0/ix_values.yaml b/incubator/lazylibrarian/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..553b98dbe3 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/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/incubator/lazylibrarian/6.6.0/questions.yaml b/incubator/lazylibrarian/6.6.0/questions.yaml new file mode 100644 index 0000000000..9900449e08 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/lazylibrarian/6.6.0/templates/common.yaml b/incubator/lazylibrarian/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lazylibrarian/6.6.0/test_values.yaml b/incubator/lazylibrarian/6.6.0/test_values.yaml new file mode 100644 index 0000000000..6bba6ace4d --- /dev/null +++ b/incubator/lazylibrarian/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/incubator/lazylibrarian/6.6.0/values.yaml b/incubator/lazylibrarian/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/librespeed/1.4.0/CONFIG.md b/incubator/librespeed/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/librespeed/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/librespeed/1.4.0/Chart.lock b/incubator/librespeed/1.4.0/Chart.lock new file mode 100644 index 0000000000..6dfdfc7439 --- /dev/null +++ b/incubator/librespeed/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:24.045138317Z" diff --git a/incubator/librespeed/1.4.0/Chart.yaml b/incubator/librespeed/1.4.0/Chart.yaml new file mode 100644 index 0000000000..d6d65d9e98 --- /dev/null +++ b/incubator/librespeed/1.4.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/librespeed/1.4.0/README.md b/incubator/librespeed/1.4.0/README.md new file mode 100644 index 0000000000..d1929c0d75 --- /dev/null +++ b/incubator/librespeed/1.4.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `librespeed` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `librespeed` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/librespeed/1.4.0/app-readme.md b/incubator/librespeed/1.4.0/app-readme.md new file mode 100644 index 0000000000..c4f2fa1858 --- /dev/null +++ b/incubator/librespeed/1.4.0/app-readme.md @@ -0,0 +1 @@ +Librespeed is a HTML5 webpage to test upload and download speeds diff --git a/incubator/librespeed/1.4.0/charts/common-6.8.0.tgz b/incubator/librespeed/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/librespeed/1.4.0/ci/ct-values.yaml b/incubator/librespeed/1.4.0/ci/ct-values.yaml new file mode 100644 index 0000000000..a4c249088b --- /dev/null +++ b/incubator/librespeed/1.4.0/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + PASSWORD: "ChangeMe" diff --git a/incubator/librespeed/1.4.0/ix_values.yaml b/incubator/librespeed/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..1dfd85ef4d --- /dev/null +++ b/incubator/librespeed/1.4.0/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/incubator/librespeed/1.4.0/questions.yaml b/incubator/librespeed/1.4.0/questions.yaml new file mode 100644 index 0000000000..670e9a6a69 --- /dev/null +++ b/incubator/librespeed/1.4.0/questions.yaml @@ -0,0 +1,640 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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/incubator/librespeed/1.4.0/templates/common.yaml b/incubator/librespeed/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/librespeed/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/librespeed/1.4.0/test_values.yaml b/incubator/librespeed/1.4.0/test_values.yaml new file mode 100644 index 0000000000..e960579664 --- /dev/null +++ b/incubator/librespeed/1.4.0/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: 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: false diff --git a/incubator/librespeed/1.4.0/values.yaml b/incubator/librespeed/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/lychee/6.6.0/CONFIG.md b/incubator/lychee/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/lychee/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/lychee/6.6.0/Chart.lock b/incubator/lychee/6.6.0/Chart.lock new file mode 100644 index 0000000000..546741cfae --- /dev/null +++ b/incubator/lychee/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:25.883483233Z" diff --git a/incubator/lychee/6.6.0/Chart.yaml b/incubator/lychee/6.6.0/Chart.yaml new file mode 100644 index 0000000000..0ba031a84b --- /dev/null +++ b/incubator/lychee/6.6.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/lychee/6.6.0/README.md b/incubator/lychee/6.6.0/README.md new file mode 100644 index 0000000000..396d0bf063 --- /dev/null +++ b/incubator/lychee/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `lychee` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lychee` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/lychee/6.6.0/app-readme.md b/incubator/lychee/6.6.0/app-readme.md new file mode 100644 index 0000000000..792e9d50ab --- /dev/null +++ b/incubator/lychee/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/lychee/6.6.0/charts/common-6.8.0.tgz b/incubator/lychee/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/lychee/6.6.0/ix_values.yaml b/incubator/lychee/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..0976cb0964 --- /dev/null +++ b/incubator/lychee/6.6.0/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/incubator/lychee/6.6.0/questions.yaml b/incubator/lychee/6.6.0/questions.yaml new file mode 100644 index 0000000000..e3f809e23f --- /dev/null +++ b/incubator/lychee/6.6.0/questions.yaml @@ -0,0 +1,628 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/lychee/6.6.0/templates/common.yaml b/incubator/lychee/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/lychee/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lychee/6.6.0/test_values.yaml b/incubator/lychee/6.6.0/test_values.yaml new file mode 100644 index 0000000000..99355866c9 --- /dev/null +++ b/incubator/lychee/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/incubator/lychee/6.6.0/values.yaml b/incubator/lychee/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/mealie/1.6.0/CONFIG.md b/incubator/mealie/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/mealie/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/mealie/1.6.0/Chart.lock b/incubator/mealie/1.6.0/Chart.lock new file mode 100644 index 0000000000..d41596996a --- /dev/null +++ b/incubator/mealie/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:27.658988701Z" diff --git a/incubator/mealie/1.6.0/Chart.yaml b/incubator/mealie/1.6.0/Chart.yaml new file mode 100644 index 0000000000..8d50bcedaa --- /dev/null +++ b/incubator/mealie/1.6.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/mealie/1.6.0/README.md b/incubator/mealie/1.6.0/README.md new file mode 100644 index 0000000000..0933194d3f --- /dev/null +++ b/incubator/mealie/1.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `mealie` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `mealie` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/mealie/1.6.0/app-readme.md b/incubator/mealie/1.6.0/app-readme.md new file mode 100644 index 0000000000..53470db1cd --- /dev/null +++ b/incubator/mealie/1.6.0/app-readme.md @@ -0,0 +1 @@ +Mealie is a self hosted recipe manager and meal planner with a RestAPI diff --git a/incubator/mealie/1.6.0/charts/common-6.8.0.tgz b/incubator/mealie/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/mealie/1.6.0/ix_values.yaml b/incubator/mealie/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..080d100b57 --- /dev/null +++ b/incubator/mealie/1.6.0/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/incubator/mealie/1.6.0/questions.yaml b/incubator/mealie/1.6.0/questions.yaml new file mode 100644 index 0000000000..ccf1054a8b --- /dev/null +++ b/incubator/mealie/1.6.0/questions.yaml @@ -0,0 +1,635 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: "/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: 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: 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/incubator/mealie/1.6.0/templates/common.yaml b/incubator/mealie/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/mealie/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/mealie/1.6.0/test_values.yaml b/incubator/mealie/1.6.0/test_values.yaml new file mode 100644 index 0000000000..327b1f2d01 --- /dev/null +++ b/incubator/mealie/1.6.0/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: 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: false + mountPath: /app/data/ diff --git a/incubator/mealie/1.6.0/values.yaml b/incubator/mealie/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/mosquitto/1.6.0/CONFIG.md b/incubator/mosquitto/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/mosquitto/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/mosquitto/1.6.0/Chart.lock b/incubator/mosquitto/1.6.0/Chart.lock new file mode 100644 index 0000000000..1c6c19d756 --- /dev/null +++ b/incubator/mosquitto/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:29.403671494Z" diff --git a/incubator/mosquitto/1.6.0/Chart.yaml b/incubator/mosquitto/1.6.0/Chart.yaml new file mode 100644 index 0000000000..c8a17bf1d1 --- /dev/null +++ b/incubator/mosquitto/1.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +deprecated: false +description: Eclipse Mosquitto - An open source MQTT broker +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mosquitto +icon: https://raw.githubusercontent.com/eclipse/mosquitto/master/logo/mosquitto-logo-min.svg +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.6.0 diff --git a/incubator/mosquitto/1.6.0/README.md b/incubator/mosquitto/1.6.0/README.md new file mode 100644 index 0000000000..6886fd05cd --- /dev/null +++ b/incubator/mosquitto/1.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `mosquitto` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `mosquitto` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/mosquitto/1.6.0/app-readme.md b/incubator/mosquitto/1.6.0/app-readme.md new file mode 100644 index 0000000000..93652bac7a --- /dev/null +++ b/incubator/mosquitto/1.6.0/app-readme.md @@ -0,0 +1,3 @@ +API Support for your favorite torrent trackers. +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Eclipse Mosquitto - An open source MQTT broker diff --git a/incubator/mosquitto/1.6.0/charts/common-6.8.0.tgz b/incubator/mosquitto/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/mosquitto/1.6.0/ix_values.yaml b/incubator/mosquitto/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..b638fcf296 --- /dev/null +++ b/incubator/mosquitto/1.6.0/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/incubator/mosquitto/1.6.0/questions.yaml b/incubator/mosquitto/1.6.0/questions.yaml new file mode 100644 index 0000000000..6ca3a02675 --- /dev/null +++ b/incubator/mosquitto/1.6.0/questions.yaml @@ -0,0 +1,789 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 1883 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/mosquitto/1.6.0/templates/common.yaml b/incubator/mosquitto/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..15d4d961a1 --- /dev/null +++ b/incubator/mosquitto/1.6.0/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/incubator/mosquitto/1.6.0/templates/configmap.yaml b/incubator/mosquitto/1.6.0/templates/configmap.yaml new file mode 100644 index 0000000000..489d68b0ea --- /dev/null +++ b/incubator/mosquitto/1.6.0/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/incubator/mosquitto/1.6.0/test_values.yaml b/incubator/mosquitto/1.6.0/test_values.yaml new file mode 100644 index 0000000000..cda69f06c3 --- /dev/null +++ b/incubator/mosquitto/1.6.0/test_values.yaml @@ -0,0 +1,39 @@ +# 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: false + 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: false + mountPath: /mosquitto/configinc + accessMode: ReadWriteOnce + size: 100Mi diff --git a/incubator/mosquitto/1.6.0/values.yaml b/incubator/mosquitto/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/mylar/1.4.0/CONFIG.md b/incubator/mylar/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/mylar/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/mylar/1.4.0/Chart.lock b/incubator/mylar/1.4.0/Chart.lock new file mode 100644 index 0000000000..31c5b1d25b --- /dev/null +++ b/incubator/mylar/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:31.147312868Z" diff --git a/incubator/mylar/1.4.0/Chart.yaml b/incubator/mylar/1.4.0/Chart.yaml new file mode 100644 index 0000000000..d43c166292 --- /dev/null +++ b/incubator/mylar/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/mylar/1.4.0/README.md b/incubator/mylar/1.4.0/README.md new file mode 100644 index 0000000000..13308950b1 --- /dev/null +++ b/incubator/mylar/1.4.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `mylar` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `mylar` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/mylar/1.4.0/app-readme.md b/incubator/mylar/1.4.0/app-readme.md new file mode 100644 index 0000000000..e6b61c0350 --- /dev/null +++ b/incubator/mylar/1.4.0/app-readme.md @@ -0,0 +1 @@ +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various diff --git a/incubator/mylar/1.4.0/charts/common-6.8.0.tgz b/incubator/mylar/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/mylar/1.4.0/ix_values.yaml b/incubator/mylar/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..75ed20a869 --- /dev/null +++ b/incubator/mylar/1.4.0/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/incubator/mylar/1.4.0/questions.yaml b/incubator/mylar/1.4.0/questions.yaml new file mode 100644 index 0000000000..3d73198e08 --- /dev/null +++ b/incubator/mylar/1.4.0/questions.yaml @@ -0,0 +1,679 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/mylar/1.4.0/templates/common.yaml b/incubator/mylar/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/mylar/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/mylar/1.4.0/test_values.yaml b/incubator/mylar/1.4.0/test_values.yaml new file mode 100644 index 0000000000..1d6b9e145b --- /dev/null +++ b/incubator/mylar/1.4.0/test_values.yaml @@ -0,0 +1,45 @@ +# +# 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: false + comics: + enabled: false + mountPath: /comics + downloads: + enabled: false + mountPath: /downloads diff --git a/incubator/mylar/1.4.0/values.yaml b/incubator/mylar/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/navidrome/6.6.0/CONFIG.md b/incubator/navidrome/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/navidrome/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/navidrome/6.6.0/Chart.lock b/incubator/navidrome/6.6.0/Chart.lock new file mode 100644 index 0000000000..a39fdd1a5b --- /dev/null +++ b/incubator/navidrome/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:32.900982474Z" diff --git a/incubator/navidrome/6.6.0/Chart.yaml b/incubator/navidrome/6.6.0/Chart.yaml new file mode 100644 index 0000000000..9567b527d9 --- /dev/null +++ b/incubator/navidrome/6.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/navidrome/6.6.0/README.md b/incubator/navidrome/6.6.0/README.md new file mode 100644 index 0000000000..c98946d411 --- /dev/null +++ b/incubator/navidrome/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `navidrome` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `navidrome` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/navidrome/6.6.0/app-readme.md b/incubator/navidrome/6.6.0/app-readme.md new file mode 100644 index 0000000000..4f10b99427 --- /dev/null +++ b/incubator/navidrome/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/navidrome/6.6.0/charts/common-6.8.0.tgz b/incubator/navidrome/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/navidrome/6.6.0/ix_values.yaml b/incubator/navidrome/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..5791271094 --- /dev/null +++ b/incubator/navidrome/6.6.0/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.44.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/incubator/navidrome/6.6.0/questions.yaml b/incubator/navidrome/6.6.0/questions.yaml new file mode 100644 index 0000000000..d36cae76d0 --- /dev/null +++ b/incubator/navidrome/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/navidrome/6.6.0/templates/common.yaml b/incubator/navidrome/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/navidrome/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/navidrome/6.6.0/test_values.yaml b/incubator/navidrome/6.6.0/test_values.yaml new file mode 100644 index 0000000000..8d6ce53812 --- /dev/null +++ b/incubator/navidrome/6.6.0/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Navidrome. + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.44.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: emptyDir diff --git a/incubator/navidrome/6.6.0/values.yaml b/incubator/navidrome/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/node-red/6.6.0/CONFIG.md b/incubator/node-red/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/node-red/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/node-red/6.6.0/Chart.lock b/incubator/node-red/6.6.0/Chart.lock new file mode 100644 index 0000000000..31d07a50fa --- /dev/null +++ b/incubator/node-red/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:34.659943349Z" diff --git a/incubator/node-red/6.6.0/Chart.yaml b/incubator/node-red/6.6.0/Chart.yaml new file mode 100644 index 0000000000..ff4574b6a0 --- /dev/null +++ b/incubator/node-red/6.6.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/node-red/6.6.0/README.md b/incubator/node-red/6.6.0/README.md new file mode 100644 index 0000000000..54ecb0f8ad --- /dev/null +++ b/incubator/node-red/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `node-red` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `node-red` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/node-red/6.6.0/app-readme.md b/incubator/node-red/6.6.0/app-readme.md new file mode 100644 index 0000000000..6ecbe710e7 --- /dev/null +++ b/incubator/node-red/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/node-red/6.6.0/charts/common-6.8.0.tgz b/incubator/node-red/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/node-red/6.6.0/ix_values.yaml b/incubator/node-red/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..6a16d2b084 --- /dev/null +++ b/incubator/node-red/6.6.0/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/incubator/node-red/6.6.0/questions.yaml b/incubator/node-red/6.6.0/questions.yaml new file mode 100644 index 0000000000..4a00e12f1c --- /dev/null +++ b/incubator/node-red/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/node-red/6.6.0/templates/common.yaml b/incubator/node-red/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/node-red/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/node-red/6.6.0/test_values.yaml b/incubator/node-red/6.6.0/test_values.yaml new file mode 100644 index 0000000000..a41bb88878 --- /dev/null +++ b/incubator/node-red/6.6.0/test_values.yaml @@ -0,0 +1,30 @@ +# 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: emptyDir diff --git a/incubator/node-red/6.6.0/values.yaml b/incubator/node-red/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/nullserv/1.4.0/CONFIG.md b/incubator/nullserv/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/nullserv/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/nullserv/1.4.0/Chart.lock b/incubator/nullserv/1.4.0/Chart.lock new file mode 100644 index 0000000000..d85ba6627d --- /dev/null +++ b/incubator/nullserv/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:36.415039274Z" diff --git a/incubator/nullserv/1.4.0/Chart.yaml b/incubator/nullserv/1.4.0/Chart.yaml new file mode 100644 index 0000000000..c39d9b672f --- /dev/null +++ b/incubator/nullserv/1.4.0/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/nullserv/1.4.0/README.md b/incubator/nullserv/1.4.0/README.md new file mode 100644 index 0000000000..29bda68f64 --- /dev/null +++ b/incubator/nullserv/1.4.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `nullserv` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nullserv` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/nullserv/1.4.0/app-readme.md b/incubator/nullserv/1.4.0/app-readme.md new file mode 100644 index 0000000000..0cf192ac33 --- /dev/null +++ b/incubator/nullserv/1.4.0/app-readme.md @@ -0,0 +1 @@ +A simple null file http and https server diff --git a/incubator/nullserv/1.4.0/charts/common-6.8.0.tgz b/incubator/nullserv/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/nullserv/1.4.0/ix_values.yaml b/incubator/nullserv/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..e1fd84e347 --- /dev/null +++ b/incubator/nullserv/1.4.0/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/incubator/nullserv/1.4.0/questions.yaml b/incubator/nullserv/1.4.0/questions.yaml new file mode 100644 index 0000000000..8af615cf2d --- /dev/null +++ b/incubator/nullserv/1.4.0/questions.yaml @@ -0,0 +1,771 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/nullserv/1.4.0/templates/common.yaml b/incubator/nullserv/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/nullserv/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/nullserv/1.4.0/test_values.yaml b/incubator/nullserv/1.4.0/test_values.yaml new file mode 100644 index 0000000000..23b208d565 --- /dev/null +++ b/incubator/nullserv/1.4.0/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/incubator/nullserv/1.4.0/values.yaml b/incubator/nullserv/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/nzbget/6.6.0/CONFIG.md b/incubator/nzbget/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/nzbget/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/nzbget/6.6.0/Chart.lock b/incubator/nzbget/6.6.0/Chart.lock new file mode 100644 index 0000000000..fbee762105 --- /dev/null +++ b/incubator/nzbget/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:38.164320795Z" diff --git a/incubator/nzbget/6.6.0/Chart.yaml b/incubator/nzbget/6.6.0/Chart.yaml new file mode 100644 index 0000000000..0db1c8ce77 --- /dev/null +++ b/incubator/nzbget/6.6.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/nzbget/6.6.0/README.md b/incubator/nzbget/6.6.0/README.md new file mode 100644 index 0000000000..82ca8e2c8d --- /dev/null +++ b/incubator/nzbget/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `nzbget` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nzbget` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/nzbget/6.6.0/app-readme.md b/incubator/nzbget/6.6.0/app-readme.md new file mode 100644 index 0000000000..bde861cf21 --- /dev/null +++ b/incubator/nzbget/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/nzbget/6.6.0/charts/common-6.8.0.tgz b/incubator/nzbget/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/nzbget/6.6.0/ix_values.yaml b/incubator/nzbget/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..ef8e5a4f23 --- /dev/null +++ b/incubator/nzbget/6.6.0/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/incubator/nzbget/6.6.0/questions.yaml b/incubator/nzbget/6.6.0/questions.yaml new file mode 100644 index 0000000000..ff52fe6cbf --- /dev/null +++ b/incubator/nzbget/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/nzbget/6.6.0/templates/common.yaml b/incubator/nzbget/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/nzbget/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/nzbget/6.6.0/test_values.yaml b/incubator/nzbget/6.6.0/test_values.yaml new file mode 100644 index 0000000000..355d869f8c --- /dev/null +++ b/incubator/nzbget/6.6.0/test_values.yaml @@ -0,0 +1,31 @@ +# 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: emptyDir diff --git a/incubator/nzbget/6.6.0/values.yaml b/incubator/nzbget/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/octoprint/1.4.0/CONFIG.md b/incubator/octoprint/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/octoprint/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/octoprint/1.4.0/Chart.lock b/incubator/octoprint/1.4.0/Chart.lock new file mode 100644 index 0000000000..317992b07d --- /dev/null +++ b/incubator/octoprint/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:39.915399878Z" diff --git a/incubator/octoprint/1.4.0/Chart.yaml b/incubator/octoprint/1.4.0/Chart.yaml new file mode 100644 index 0000000000..b5d252403b --- /dev/null +++ b/incubator/octoprint/1.4.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/octoprint/1.4.0/README.md b/incubator/octoprint/1.4.0/README.md new file mode 100644 index 0000000000..bea049ca0b --- /dev/null +++ b/incubator/octoprint/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `octoprint` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `octoprint` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/octoprint/1.4.0/app-readme.md b/incubator/octoprint/1.4.0/app-readme.md new file mode 100644 index 0000000000..76c54de17d --- /dev/null +++ b/incubator/octoprint/1.4.0/app-readme.md @@ -0,0 +1 @@ +OctoPrint is the snappy web interface for your 3D printer diff --git a/incubator/octoprint/1.4.0/charts/common-6.8.0.tgz b/incubator/octoprint/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/octoprint/1.4.0/ix_values.yaml b/incubator/octoprint/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..cbc8146b9d --- /dev/null +++ b/incubator/octoprint/1.4.0/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/incubator/octoprint/1.4.0/questions.yaml b/incubator/octoprint/1.4.0/questions.yaml new file mode 100644 index 0000000000..abfa05330e --- /dev/null +++ b/incubator/octoprint/1.4.0/questions.yaml @@ -0,0 +1,686 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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" diff --git a/incubator/octoprint/1.4.0/templates/common.yaml b/incubator/octoprint/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/octoprint/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/octoprint/1.4.0/test_values.yaml b/incubator/octoprint/1.4.0/test_values.yaml new file mode 100644 index 0000000000..7a64a63ac0 --- /dev/null +++ b/incubator/octoprint/1.4.0/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: 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: false + 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/incubator/octoprint/1.4.0/values.yaml b/incubator/octoprint/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/omada-controller/1.4.0/CONFIG.md b/incubator/omada-controller/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/omada-controller/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/omada-controller/1.4.0/Chart.lock b/incubator/omada-controller/1.4.0/Chart.lock new file mode 100644 index 0000000000..16329e8c7c --- /dev/null +++ b/incubator/omada-controller/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:41.662536308Z" diff --git a/incubator/omada-controller/1.4.0/Chart.yaml b/incubator/omada-controller/1.4.0/Chart.yaml new file mode 100644 index 0000000000..88b80cebff --- /dev/null +++ b/incubator/omada-controller/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/omada-controller/1.4.0/README.md b/incubator/omada-controller/1.4.0/README.md new file mode 100644 index 0000000000..07dfd88c23 --- /dev/null +++ b/incubator/omada-controller/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `omada-controller` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `omada-controller` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/omada-controller/1.4.0/app-readme.md b/incubator/omada-controller/1.4.0/app-readme.md new file mode 100644 index 0000000000..bb0e75605e --- /dev/null +++ b/incubator/omada-controller/1.4.0/app-readme.md @@ -0,0 +1 @@ +Omada enables the network administrators to monitor and manage all the diff --git a/incubator/omada-controller/1.4.0/charts/common-6.8.0.tgz b/incubator/omada-controller/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/omada-controller/1.4.0/ix_values.yaml b/incubator/omada-controller/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..a81d81e674 --- /dev/null +++ b/incubator/omada-controller/1.4.0/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/incubator/omada-controller/1.4.0/questions.yaml b/incubator/omada-controller/1.4.0/questions.yaml new file mode 100644 index 0000000000..c7f9242e08 --- /dev/null +++ b/incubator/omada-controller/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8043 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/omada-controller/1.4.0/templates/common.yaml b/incubator/omada-controller/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/omada-controller/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/omada-controller/1.4.0/test_values.yaml b/incubator/omada-controller/1.4.0/test_values.yaml new file mode 100644 index 0000000000..e8eaf821ee --- /dev/null +++ b/incubator/omada-controller/1.4.0/test_values.yaml @@ -0,0 +1,35 @@ +# +# 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: false diff --git a/incubator/omada-controller/1.4.0/values.yaml b/incubator/omada-controller/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/organizr/6.6.0/CONFIG.md b/incubator/organizr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/organizr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/organizr/6.6.0/Chart.lock b/incubator/organizr/6.6.0/Chart.lock new file mode 100644 index 0000000000..ca8beada39 --- /dev/null +++ b/incubator/organizr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:43.402712644Z" diff --git a/incubator/organizr/6.6.0/Chart.yaml b/incubator/organizr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..eb488524a9 --- /dev/null +++ b/incubator/organizr/6.6.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/organizr/6.6.0/README.md b/incubator/organizr/6.6.0/README.md new file mode 100644 index 0000000000..a8f5c93dde --- /dev/null +++ b/incubator/organizr/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `organizr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `organizr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/organizr/6.6.0/app-readme.md b/incubator/organizr/6.6.0/app-readme.md new file mode 100644 index 0000000000..0bfeec6a4e --- /dev/null +++ b/incubator/organizr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/organizr/6.6.0/charts/common-6.8.0.tgz b/incubator/organizr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/organizr/6.6.0/ix_values.yaml b/incubator/organizr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..19a9fa1ee9 --- /dev/null +++ b/incubator/organizr/6.6.0/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/incubator/organizr/6.6.0/questions.yaml b/incubator/organizr/6.6.0/questions.yaml new file mode 100644 index 0000000000..e623adf8e3 --- /dev/null +++ b/incubator/organizr/6.6.0/questions.yaml @@ -0,0 +1,738 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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/incubator/organizr/6.6.0/templates/common.yaml b/incubator/organizr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/organizr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/organizr/6.6.0/test_values.yaml b/incubator/organizr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..e61f52c266 --- /dev/null +++ b/incubator/organizr/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/incubator/organizr/6.6.0/values.yaml b/incubator/organizr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/overseerr/1.4.0/CONFIG.md b/incubator/overseerr/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/overseerr/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/overseerr/1.4.0/Chart.lock b/incubator/overseerr/1.4.0/Chart.lock new file mode 100644 index 0000000000..43e8f02ca1 --- /dev/null +++ b/incubator/overseerr/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:45.128260582Z" diff --git a/incubator/overseerr/1.4.0/Chart.yaml b/incubator/overseerr/1.4.0/Chart.yaml new file mode 100644 index 0000000000..d4ffab9f75 --- /dev/null +++ b/incubator/overseerr/1.4.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/overseerr/1.4.0/README.md b/incubator/overseerr/1.4.0/README.md new file mode 100644 index 0000000000..5d64005648 --- /dev/null +++ b/incubator/overseerr/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `overseerr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `overseerr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/overseerr/1.4.0/app-readme.md b/incubator/overseerr/1.4.0/app-readme.md new file mode 100644 index 0000000000..f6aaffa7e9 --- /dev/null +++ b/incubator/overseerr/1.4.0/app-readme.md @@ -0,0 +1 @@ +Overseerr is a free and open source software application for managing diff --git a/incubator/overseerr/1.4.0/charts/common-6.8.0.tgz b/incubator/overseerr/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/overseerr/1.4.0/ix_values.yaml b/incubator/overseerr/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..ccd9749b2c --- /dev/null +++ b/incubator/overseerr/1.4.0/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/incubator/overseerr/1.4.0/questions.yaml b/incubator/overseerr/1.4.0/questions.yaml new file mode 100644 index 0000000000..c8635c3e65 --- /dev/null +++ b/incubator/overseerr/1.4.0/questions.yaml @@ -0,0 +1,673 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 5055 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/overseerr/1.4.0/templates/common.yaml b/incubator/overseerr/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/overseerr/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/overseerr/1.4.0/test_values.yaml b/incubator/overseerr/1.4.0/test_values.yaml new file mode 100644 index 0000000000..6a215efde3 --- /dev/null +++ b/incubator/overseerr/1.4.0/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: 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: false + mountPath: /app/config diff --git a/incubator/overseerr/1.4.0/values.yaml b/incubator/overseerr/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/owncast/1.4.0/CONFIG.md b/incubator/owncast/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/owncast/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/owncast/1.4.0/Chart.lock b/incubator/owncast/1.4.0/Chart.lock new file mode 100644 index 0000000000..fae39e490a --- /dev/null +++ b/incubator/owncast/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:46.866789607Z" diff --git a/incubator/owncast/1.4.0/Chart.yaml b/incubator/owncast/1.4.0/Chart.yaml new file mode 100644 index 0000000000..cfb52a6a3c --- /dev/null +++ b/incubator/owncast/1.4.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/owncast/1.4.0/README.md b/incubator/owncast/1.4.0/README.md new file mode 100644 index 0000000000..9583cfae74 --- /dev/null +++ b/incubator/owncast/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `owncast` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `owncast` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/owncast/1.4.0/app-readme.md b/incubator/owncast/1.4.0/app-readme.md new file mode 100644 index 0000000000..a7c285ece4 --- /dev/null +++ b/incubator/owncast/1.4.0/app-readme.md @@ -0,0 +1 @@ +Take control over your live stream video by running it yourself. Streaming diff --git a/incubator/owncast/1.4.0/charts/common-6.8.0.tgz b/incubator/owncast/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/owncast/1.4.0/ix_values.yaml b/incubator/owncast/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..595f5642ff --- /dev/null +++ b/incubator/owncast/1.4.0/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.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/incubator/owncast/1.4.0/questions.yaml b/incubator/owncast/1.4.0/questions.yaml new file mode 100644 index 0000000000..8d691996c6 --- /dev/null +++ b/incubator/owncast/1.4.0/questions.yaml @@ -0,0 +1,765 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 1935 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/owncast/1.4.0/templates/common.yaml b/incubator/owncast/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/owncast/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/owncast/1.4.0/test_values.yaml b/incubator/owncast/1.4.0/test_values.yaml new file mode 100644 index 0000000000..3711e3d201 --- /dev/null +++ b/incubator/owncast/1.4.0/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: gabekangas/owncast + # -- image tag + tag: 0.0.7 + # -- 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: false + mountPath: /app/data diff --git a/incubator/owncast/1.4.0/values.yaml b/incubator/owncast/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/owncloud-ocis/1.4.0/CONFIG.md b/incubator/owncloud-ocis/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/owncloud-ocis/1.4.0/Chart.lock b/incubator/owncloud-ocis/1.4.0/Chart.lock new file mode 100644 index 0000000000..d94dd2328a --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:48.674378163Z" diff --git a/incubator/owncloud-ocis/1.4.0/Chart.yaml b/incubator/owncloud-ocis/1.4.0/Chart.yaml new file mode 100644 index 0000000000..4e9d373028 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/owncloud-ocis/1.4.0/README.md b/incubator/owncloud-ocis/1.4.0/README.md new file mode 100644 index 0000000000..456a59351a --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `owncloud-ocis` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `owncloud-ocis` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/owncloud-ocis/1.4.0/app-readme.md b/incubator/owncloud-ocis/1.4.0/app-readme.md new file mode 100644 index 0000000000..269dd34c77 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/app-readme.md @@ -0,0 +1 @@ +ownCloud Infinite Scale is a self-hosted file sync and share server. diff --git a/incubator/owncloud-ocis/1.4.0/charts/common-6.8.0.tgz b/incubator/owncloud-ocis/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/owncloud-ocis/1.4.0/ix_values.yaml b/incubator/owncloud-ocis/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..271e8b8676 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/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.10.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/incubator/owncloud-ocis/1.4.0/questions.yaml b/incubator/owncloud-ocis/1.4.0/questions.yaml new file mode 100644 index 0000000000..4dfc6ebd5b --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9200 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/owncloud-ocis/1.4.0/templates/common.yaml b/incubator/owncloud-ocis/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/owncloud-ocis/1.4.0/test_values.yaml b/incubator/owncloud-ocis/1.4.0/test_values.yaml new file mode 100644 index 0000000000..dc5762ddd9 --- /dev/null +++ b/incubator/owncloud-ocis/1.4.0/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: owncloud/ocis + # -- image tag + tag: 1.10.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: false + mountPath: /config + ocis: + enabled: false + mountPath: /var/tmp/ocis diff --git a/incubator/owncloud-ocis/1.4.0/values.yaml b/incubator/owncloud-ocis/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/photoprism/1.4.0/CONFIG.md b/incubator/photoprism/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/photoprism/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/photoprism/1.4.0/Chart.lock b/incubator/photoprism/1.4.0/Chart.lock new file mode 100644 index 0000000000..6e538a21bb --- /dev/null +++ b/incubator/photoprism/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:50.415857129Z" diff --git a/incubator/photoprism/1.4.0/Chart.yaml b/incubator/photoprism/1.4.0/Chart.yaml new file mode 100644 index 0000000000..ba4f6a516d --- /dev/null +++ b/incubator/photoprism/1.4.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/photoprism/1.4.0/README.md b/incubator/photoprism/1.4.0/README.md new file mode 100644 index 0000000000..425e495819 --- /dev/null +++ b/incubator/photoprism/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `photoprism` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `photoprism` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/photoprism/1.4.0/app-readme.md b/incubator/photoprism/1.4.0/app-readme.md new file mode 100644 index 0000000000..91a7e3178a --- /dev/null +++ b/incubator/photoprism/1.4.0/app-readme.md @@ -0,0 +1 @@ +"PhotoPrism\xC2\xAE is a server-based application for browsing, organizing\ diff --git a/incubator/photoprism/1.4.0/charts/common-6.8.0.tgz b/incubator/photoprism/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/incubator/photoprism/1.4.0/ix_values.yaml b/incubator/photoprism/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..53f7564cc3 --- /dev/null +++ b/incubator/photoprism/1.4.0/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/incubator/photoprism/1.4.0/questions.yaml b/incubator/photoprism/1.4.0/questions.yaml new file mode 100644 index 0000000000..05b6409163 --- /dev/null +++ b/incubator/photoprism/1.4.0/questions.yaml @@ -0,0 +1,704 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 2342 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/photoprism/1.4.0/templates/common.yaml b/incubator/photoprism/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/photoprism/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/photoprism/1.4.0/test_values.yaml b/incubator/photoprism/1.4.0/test_values.yaml new file mode 100644 index 0000000000..f0de5b3e69 --- /dev/null +++ b/incubator/photoprism/1.4.0/test_values.yaml @@ -0,0 +1,54 @@ +# +# 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: false + mountPath: /photoprism/storage + + originals: + enabled: false + mountPath: "/photoprism/originals" diff --git a/incubator/photoprism/1.4.0/values.yaml b/incubator/photoprism/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/piaware/1.4.0/CONFIG.md b/incubator/piaware/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/piaware/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/piaware/1.4.0/Chart.lock b/incubator/piaware/1.4.0/Chart.lock new file mode 100644 index 0000000000..cb6a4d5046 --- /dev/null +++ b/incubator/piaware/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:52.163031971Z" diff --git a/incubator/piaware/1.4.0/Chart.yaml b/incubator/piaware/1.4.0/Chart.yaml new file mode 100644 index 0000000000..299175c992 --- /dev/null +++ b/incubator/piaware/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/piaware/1.4.0/README.md b/incubator/piaware/1.4.0/README.md new file mode 100644 index 0000000000..2ba52e18ef --- /dev/null +++ b/incubator/piaware/1.4.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `piaware` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `piaware` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/piaware/1.4.0/app-readme.md b/incubator/piaware/1.4.0/app-readme.md new file mode 100644 index 0000000000..580be97170 --- /dev/null +++ b/incubator/piaware/1.4.0/app-readme.md @@ -0,0 +1 @@ +Program for forwarding ADS-B data to FlightAware diff --git a/incubator/piaware/1.4.0/charts/common-6.8.0.tgz b/incubator/piaware/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/piaware/1.4.0/ci/ct-values.yaml b/incubator/piaware/1.4.0/ci/ct-values.yaml new file mode 100644 index 0000000000..3d1d3eb62f --- /dev/null +++ b/incubator/piaware/1.4.0/ci/ct-values.yaml @@ -0,0 +1,3 @@ +env: + LAT: "29.9792" + LONG: "31.1342" diff --git a/incubator/piaware/1.4.0/ix_values.yaml b/incubator/piaware/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..be2e353346 --- /dev/null +++ b/incubator/piaware/1.4.0/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/incubator/piaware/1.4.0/questions.yaml b/incubator/piaware/1.4.0/questions.yaml new file mode 100644 index 0000000000..e7444ee374 --- /dev/null +++ b/incubator/piaware/1.4.0/questions.yaml @@ -0,0 +1,707 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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" diff --git a/incubator/piaware/1.4.0/templates/common.yaml b/incubator/piaware/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/piaware/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/piaware/1.4.0/test_values.yaml b/incubator/piaware/1.4.0/test_values.yaml new file mode 100644 index 0000000000..4b05cb70de --- /dev/null +++ b/incubator/piaware/1.4.0/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/incubator/piaware/1.4.0/values.yaml b/incubator/piaware/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/podgrab/4.6.0/CONFIG.md b/incubator/podgrab/4.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/podgrab/4.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/podgrab/4.6.0/Chart.lock b/incubator/podgrab/4.6.0/Chart.lock new file mode 100644 index 0000000000..fe22a791f0 --- /dev/null +++ b/incubator/podgrab/4.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:53.913843769Z" diff --git a/incubator/podgrab/4.6.0/Chart.yaml b/incubator/podgrab/4.6.0/Chart.yaml new file mode 100644 index 0000000000..3ef9d0eaad --- /dev/null +++ b/incubator/podgrab/4.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/podgrab/4.6.0/README.md b/incubator/podgrab/4.6.0/README.md new file mode 100644 index 0000000000..46615f93b4 --- /dev/null +++ b/incubator/podgrab/4.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 4.3.2](https://img.shields.io/badge/Version-4.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `podgrab` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `podgrab` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/podgrab/4.6.0/app-readme.md b/incubator/podgrab/4.6.0/app-readme.md new file mode 100644 index 0000000000..6d69d3a84c --- /dev/null +++ b/incubator/podgrab/4.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/podgrab/4.6.0/charts/common-6.8.0.tgz b/incubator/podgrab/4.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/podgrab/4.6.0/ix_values.yaml b/incubator/podgrab/4.6.0/ix_values.yaml new file mode 100644 index 0000000000..30b72ab29c --- /dev/null +++ b/incubator/podgrab/4.6.0/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/incubator/podgrab/4.6.0/questions.yaml b/incubator/podgrab/4.6.0/questions.yaml new file mode 100644 index 0000000000..68768b4374 --- /dev/null +++ b/incubator/podgrab/4.6.0/questions.yaml @@ -0,0 +1,676 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/podgrab/4.6.0/templates/common.yaml b/incubator/podgrab/4.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/podgrab/4.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/podgrab/4.6.0/test_values.yaml b/incubator/podgrab/4.6.0/test_values.yaml new file mode 100644 index 0000000000..b0e9dc7d77 --- /dev/null +++ b/incubator/podgrab/4.6.0/test_values.yaml @@ -0,0 +1,57 @@ +# 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: emptyDir + + +hostPathMounts: + - name: assets + enabled: true + mountPath: "/assets" + type: emptyDir + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false diff --git a/incubator/podgrab/4.6.0/values.yaml b/incubator/podgrab/4.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/pretend-youre-xyzzy/1.4.0/CONFIG.md b/incubator/pretend-youre-xyzzy/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/pretend-youre-xyzzy/1.4.0/Chart.lock b/incubator/pretend-youre-xyzzy/1.4.0/Chart.lock new file mode 100644 index 0000000000..30b49fa980 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:55.668469531Z" diff --git a/incubator/pretend-youre-xyzzy/1.4.0/Chart.yaml b/incubator/pretend-youre-xyzzy/1.4.0/Chart.yaml new file mode 100644 index 0000000000..9daa761e32 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/pretend-youre-xyzzy/1.4.0/README.md b/incubator/pretend-youre-xyzzy/1.4.0/README.md new file mode 100644 index 0000000000..fffd3e8110 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `pretend-youre-xyzzy` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `pretend-youre-xyzzy` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/pretend-youre-xyzzy/1.4.0/app-readme.md b/incubator/pretend-youre-xyzzy/1.4.0/app-readme.md new file mode 100644 index 0000000000..6909b54ea0 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/app-readme.md @@ -0,0 +1 @@ +pretend-youre-xyzzy, a cards against humanity clone diff --git a/incubator/pretend-youre-xyzzy/1.4.0/charts/common-6.8.0.tgz b/incubator/pretend-youre-xyzzy/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/pretend-youre-xyzzy/1.4.0/ix_values.yaml b/incubator/pretend-youre-xyzzy/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..bb58fc2f43 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/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/incubator/pretend-youre-xyzzy/1.4.0/questions.yaml b/incubator/pretend-youre-xyzzy/1.4.0/questions.yaml new file mode 100644 index 0000000000..2c70a54f74 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/questions.yaml @@ -0,0 +1,551 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/pretend-youre-xyzzy/1.4.0/templates/common.yaml b/incubator/pretend-youre-xyzzy/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/pretend-youre-xyzzy/1.4.0/test_values.yaml b/incubator/pretend-youre-xyzzy/1.4.0/test_values.yaml new file mode 100644 index 0000000000..2d19c5fed9 --- /dev/null +++ b/incubator/pretend-youre-xyzzy/1.4.0/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/incubator/pretend-youre-xyzzy/1.4.0/values.yaml b/incubator/pretend-youre-xyzzy/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/protonmail-bridge/1.4.0/CONFIG.md b/incubator/protonmail-bridge/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/protonmail-bridge/1.4.0/Chart.lock b/incubator/protonmail-bridge/1.4.0/Chart.lock new file mode 100644 index 0000000000..86d974c6c0 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:50:57.425554626Z" diff --git a/incubator/protonmail-bridge/1.4.0/Chart.yaml b/incubator/protonmail-bridge/1.4.0/Chart.yaml new file mode 100644 index 0000000000..055db8a345 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/protonmail-bridge/1.4.0/README.md b/incubator/protonmail-bridge/1.4.0/README.md new file mode 100644 index 0000000000..16a43cf654 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `protonmail-bridge` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `protonmail-bridge` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/protonmail-bridge/1.4.0/app-readme.md b/incubator/protonmail-bridge/1.4.0/app-readme.md new file mode 100644 index 0000000000..28aa80229c --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/app-readme.md @@ -0,0 +1 @@ +Container for protonmail bridge to work on the network. diff --git a/incubator/protonmail-bridge/1.4.0/charts/common-6.8.0.tgz b/incubator/protonmail-bridge/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/protonmail-bridge/1.4.0/ix_values.yaml b/incubator/protonmail-bridge/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..0136225631 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/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/incubator/protonmail-bridge/1.4.0/questions.yaml b/incubator/protonmail-bridge/1.4.0/questions.yaml new file mode 100644 index 0000000000..f68529ba91 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/questions.yaml @@ -0,0 +1,680 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 25 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + default: 36080 + required: true + + - 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: 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: 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: 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/incubator/protonmail-bridge/1.4.0/templates/common.yaml b/incubator/protonmail-bridge/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/protonmail-bridge/1.4.0/test_values.yaml b/incubator/protonmail-bridge/1.4.0/test_values.yaml new file mode 100644 index 0000000000..20981bd106 --- /dev/null +++ b/incubator/protonmail-bridge/1.4.0/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: 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 diff --git a/incubator/protonmail-bridge/1.4.0/values.yaml b/incubator/protonmail-bridge/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/prowlarr/1.6.0/CONFIG.md b/incubator/prowlarr/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/prowlarr/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/prowlarr/1.6.0/Chart.lock b/incubator/prowlarr/1.6.0/Chart.lock new file mode 100644 index 0000000000..f1cc47937b --- /dev/null +++ b/incubator/prowlarr/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:50:59.18188571Z" diff --git a/incubator/prowlarr/1.6.0/Chart.yaml b/incubator/prowlarr/1.6.0/Chart.yaml new file mode 100644 index 0000000000..72ab6fb10b --- /dev/null +++ b/incubator/prowlarr/1.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/prowlarr/1.6.0/README.md b/incubator/prowlarr/1.6.0/README.md new file mode 100644 index 0000000000..4e1586a84f --- /dev/null +++ b/incubator/prowlarr/1.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.2-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `prowlarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `prowlarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/prowlarr/1.6.0/app-readme.md b/incubator/prowlarr/1.6.0/app-readme.md new file mode 100644 index 0000000000..e214332607 --- /dev/null +++ b/incubator/prowlarr/1.6.0/app-readme.md @@ -0,0 +1 @@ +Indexer manager/proxy built on the popular arr net base stack to integrate diff --git a/incubator/prowlarr/1.6.0/charts/common-6.8.0.tgz b/incubator/prowlarr/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/prowlarr/1.6.0/ix_values.yaml b/incubator/prowlarr/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..14ecf1317a --- /dev/null +++ b/incubator/prowlarr/1.6.0/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.0.771 + # -- 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/incubator/prowlarr/1.6.0/questions.yaml b/incubator/prowlarr/1.6.0/questions.yaml new file mode 100644 index 0000000000..1acea93c72 --- /dev/null +++ b/incubator/prowlarr/1.6.0/questions.yaml @@ -0,0 +1,669 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 9696 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/prowlarr/1.6.0/templates/common.yaml b/incubator/prowlarr/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/prowlarr/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/prowlarr/1.6.0/test_values.yaml b/incubator/prowlarr/1.6.0/test_values.yaml new file mode 100644 index 0000000000..499f38b8ac --- /dev/null +++ b/incubator/prowlarr/1.6.0/test_values.yaml @@ -0,0 +1,45 @@ +# +# 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.0.771 + # -- 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: false diff --git a/incubator/prowlarr/1.6.0/values.yaml b/incubator/prowlarr/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/pyload/1.4.0/CONFIG.md b/incubator/pyload/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/pyload/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/pyload/1.4.0/Chart.lock b/incubator/pyload/1.4.0/Chart.lock new file mode 100644 index 0000000000..28779d9959 --- /dev/null +++ b/incubator/pyload/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:51:00.930036085Z" diff --git a/incubator/pyload/1.4.0/Chart.yaml b/incubator/pyload/1.4.0/Chart.yaml new file mode 100644 index 0000000000..535b41fdd9 --- /dev/null +++ b/incubator/pyload/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/pyload/1.4.0/README.md b/incubator/pyload/1.4.0/README.md new file mode 100644 index 0000000000..c9748b60f9 --- /dev/null +++ b/incubator/pyload/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `pyload` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `pyload` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/pyload/1.4.0/app-readme.md b/incubator/pyload/1.4.0/app-readme.md new file mode 100644 index 0000000000..06be33a431 --- /dev/null +++ b/incubator/pyload/1.4.0/app-readme.md @@ -0,0 +1 @@ +pyLoad is a Free and Open Source download manager written in Python and diff --git a/incubator/pyload/1.4.0/charts/common-6.8.0.tgz b/incubator/pyload/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/pyload/1.4.0/ix_values.yaml b/incubator/pyload/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..997d5e1d39 --- /dev/null +++ b/incubator/pyload/1.4.0/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/incubator/pyload/1.4.0/questions.yaml b/incubator/pyload/1.4.0/questions.yaml new file mode 100644 index 0000000000..3f6c8c9ccc --- /dev/null +++ b/incubator/pyload/1.4.0/questions.yaml @@ -0,0 +1,679 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/pyload/1.4.0/templates/common.yaml b/incubator/pyload/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/pyload/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/pyload/1.4.0/test_values.yaml b/incubator/pyload/1.4.0/test_values.yaml new file mode 100644 index 0000000000..ce7c08b017 --- /dev/null +++ b/incubator/pyload/1.4.0/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/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: false + downloads: + enabled: false + mountPath: /downloads diff --git a/incubator/pyload/1.4.0/values.yaml b/incubator/pyload/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/qbittorrent/6.6.0/CONFIG.md b/incubator/qbittorrent/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/qbittorrent/6.6.0/Chart.lock b/incubator/qbittorrent/6.6.0/Chart.lock new file mode 100644 index 0000000000..76c1072941 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:02.711837129Z" diff --git a/incubator/qbittorrent/6.6.0/Chart.yaml b/incubator/qbittorrent/6.6.0/Chart.yaml new file mode 100644 index 0000000000..0f0a68584b --- /dev/null +++ b/incubator/qbittorrent/6.6.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/qbittorrent/6.6.0/README.md b/incubator/qbittorrent/6.6.0/README.md new file mode 100644 index 0000000000..94293af910 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/README.md @@ -0,0 +1,52 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `qbittorrent` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `qbittorrent` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/qbittorrent/6.6.0/app-readme.md b/incubator/qbittorrent/6.6.0/app-readme.md new file mode 100644 index 0000000000..5d26b483c2 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/qbittorrent/6.6.0/charts/common-6.8.0.tgz b/incubator/qbittorrent/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/qbittorrent/6.6.0/ix_values.yaml b/incubator/qbittorrent/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..5d593f0e21 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/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/incubator/qbittorrent/6.6.0/questions.yaml b/incubator/qbittorrent/6.6.0/questions.yaml new file mode 100644 index 0000000000..9138f68a2a --- /dev/null +++ b/incubator/qbittorrent/6.6.0/questions.yaml @@ -0,0 +1,815 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/qbittorrent/6.6.0/templates/_configmap.tpl b/incubator/qbittorrent/6.6.0/templates/_configmap.tpl new file mode 100644 index 0000000000..d52c601514 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/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/incubator/qbittorrent/6.6.0/templates/common.yaml b/incubator/qbittorrent/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..bcb4715aa1 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/templates/common.yaml @@ -0,0 +1,6 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} + + +{{/* Render the configmap */}} +{{ include "qbittorrent.configmap" . }} diff --git a/incubator/qbittorrent/6.6.0/test_values.yaml b/incubator/qbittorrent/6.6.0/test_values.yaml new file mode 100644 index 0000000000..fa1fdc5ef7 --- /dev/null +++ b/incubator/qbittorrent/6.6.0/test_values.yaml @@ -0,0 +1,52 @@ +# 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: emptyDir + + +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/incubator/qbittorrent/6.6.0/values.yaml b/incubator/qbittorrent/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/readarr/6.6.0/CONFIG.md b/incubator/readarr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/readarr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/readarr/6.6.0/Chart.lock b/incubator/readarr/6.6.0/Chart.lock new file mode 100644 index 0000000000..3b4b238b39 --- /dev/null +++ b/incubator/readarr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:04.461558345Z" diff --git a/incubator/readarr/6.6.0/Chart.yaml b/incubator/readarr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..63e7e9445a --- /dev/null +++ b/incubator/readarr/6.6.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/readarr/6.6.0/README.md b/incubator/readarr/6.6.0/README.md new file mode 100644 index 0000000000..9d99f5b95d --- /dev/null +++ b/incubator/readarr/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `readarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `readarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/readarr/6.6.0/app-readme.md b/incubator/readarr/6.6.0/app-readme.md new file mode 100644 index 0000000000..ec0ebb214b --- /dev/null +++ b/incubator/readarr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/readarr/6.6.0/charts/common-6.8.0.tgz b/incubator/readarr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/readarr/6.6.0/ix_values.yaml b/incubator/readarr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..506d35eb42 --- /dev/null +++ b/incubator/readarr/6.6.0/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.919 + +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/incubator/readarr/6.6.0/questions.yaml b/incubator/readarr/6.6.0/questions.yaml new file mode 100644 index 0000000000..7fbe2b106d --- /dev/null +++ b/incubator/readarr/6.6.0/questions.yaml @@ -0,0 +1,668 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/readarr/6.6.0/templates/common.yaml b/incubator/readarr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/readarr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/readarr/6.6.0/test_values.yaml b/incubator/readarr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..eb16360822 --- /dev/null +++ b/incubator/readarr/6.6.0/test_values.yaml @@ -0,0 +1,47 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/k8s-at-home/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.919 + +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: emptyDir diff --git a/incubator/readarr/6.6.0/values.yaml b/incubator/readarr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/reg/1.6.0/CONFIG.md b/incubator/reg/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/reg/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/reg/1.6.0/Chart.lock b/incubator/reg/1.6.0/Chart.lock new file mode 100644 index 0000000000..e3bbf40bfd --- /dev/null +++ b/incubator/reg/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:06.301975384Z" diff --git a/incubator/reg/1.6.0/Chart.yaml b/incubator/reg/1.6.0/Chart.yaml new file mode 100644 index 0000000000..c95cad0009 --- /dev/null +++ b/incubator/reg/1.6.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/reg/1.6.0/README.md b/incubator/reg/1.6.0/README.md new file mode 100644 index 0000000000..dff366675f --- /dev/null +++ b/incubator/reg/1.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `reg` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `reg` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/reg/1.6.0/app-readme.md b/incubator/reg/1.6.0/app-readme.md new file mode 100644 index 0000000000..579122c7ec --- /dev/null +++ b/incubator/reg/1.6.0/app-readme.md @@ -0,0 +1 @@ +Docker registry v2 command line client and repo listing generator with diff --git a/incubator/reg/1.6.0/charts/common-6.8.0.tgz b/incubator/reg/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/reg/1.6.0/ci/ct-values.yaml b/incubator/reg/1.6.0/ci/ct-values.yaml new file mode 100644 index 0000000000..7ec97337b2 --- /dev/null +++ b/incubator/reg/1.6.0/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + EXTRA_ARGS: "server --registry r.j3ss.co" diff --git a/incubator/reg/1.6.0/ix_values.yaml b/incubator/reg/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..6ad228ab22 --- /dev/null +++ b/incubator/reg/1.6.0/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/incubator/reg/1.6.0/questions.yaml b/incubator/reg/1.6.0/questions.yaml new file mode 100644 index 0000000000..6039e339dc --- /dev/null +++ b/incubator/reg/1.6.0/questions.yaml @@ -0,0 +1,663 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/reg/1.6.0/templates/common.yaml b/incubator/reg/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/reg/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/reg/1.6.0/test_values.yaml b/incubator/reg/1.6.0/test_values.yaml new file mode 100644 index 0000000000..93668d4a17 --- /dev/null +++ b/incubator/reg/1.6.0/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/incubator/reg/1.6.0/values.yaml b/incubator/reg/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/sabnzbd/6.6.0/CONFIG.md b/incubator/sabnzbd/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/sabnzbd/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/sabnzbd/6.6.0/Chart.lock b/incubator/sabnzbd/6.6.0/Chart.lock new file mode 100644 index 0000000000..8985bcbe00 --- /dev/null +++ b/incubator/sabnzbd/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:08.084651344Z" diff --git a/incubator/sabnzbd/6.6.0/Chart.yaml b/incubator/sabnzbd/6.6.0/Chart.yaml new file mode 100644 index 0000000000..ea2bb0692b --- /dev/null +++ b/incubator/sabnzbd/6.6.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/sabnzbd/6.6.0/README.md b/incubator/sabnzbd/6.6.0/README.md new file mode 100644 index 0000000000..ae46d3c1da --- /dev/null +++ b/incubator/sabnzbd/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `sabnzbd` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `sabnzbd` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/sabnzbd/6.6.0/app-readme.md b/incubator/sabnzbd/6.6.0/app-readme.md new file mode 100644 index 0000000000..05e7f33985 --- /dev/null +++ b/incubator/sabnzbd/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/sabnzbd/6.6.0/charts/common-6.8.0.tgz b/incubator/sabnzbd/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/sabnzbd/6.6.0/ix_values.yaml b/incubator/sabnzbd/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..30d7a90daa --- /dev/null +++ b/incubator/sabnzbd/6.6.0/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/incubator/sabnzbd/6.6.0/questions.yaml b/incubator/sabnzbd/6.6.0/questions.yaml new file mode 100644 index 0000000000..93d02ff08b --- /dev/null +++ b/incubator/sabnzbd/6.6.0/questions.yaml @@ -0,0 +1,675 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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: 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/incubator/sabnzbd/6.6.0/templates/common.yaml b/incubator/sabnzbd/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/sabnzbd/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/sabnzbd/6.6.0/test_values.yaml b/incubator/sabnzbd/6.6.0/test_values.yaml new file mode 100644 index 0000000000..975c096f80 --- /dev/null +++ b/incubator/sabnzbd/6.6.0/test_values.yaml @@ -0,0 +1,26 @@ +# 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: emptyDir diff --git a/incubator/sabnzbd/6.6.0/values.yaml b/incubator/sabnzbd/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/ser2sock/1.4.0/CONFIG.md b/incubator/ser2sock/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/ser2sock/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/ser2sock/1.4.0/Chart.lock b/incubator/ser2sock/1.4.0/Chart.lock new file mode 100644 index 0000000000..98887119af --- /dev/null +++ b/incubator/ser2sock/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:51:09.821668099Z" diff --git a/incubator/ser2sock/1.4.0/Chart.yaml b/incubator/ser2sock/1.4.0/Chart.yaml new file mode 100644 index 0000000000..15ad0716a5 --- /dev/null +++ b/incubator/ser2sock/1.4.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/ser2sock/1.4.0/README.md b/incubator/ser2sock/1.4.0/README.md new file mode 100644 index 0000000000..fe74c074e5 --- /dev/null +++ b/incubator/ser2sock/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `ser2sock` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `ser2sock` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/ser2sock/1.4.0/app-readme.md b/incubator/ser2sock/1.4.0/app-readme.md new file mode 100644 index 0000000000..d64ee3fe24 --- /dev/null +++ b/incubator/ser2sock/1.4.0/app-readme.md @@ -0,0 +1 @@ +Serial to Socket Redirector diff --git a/incubator/ser2sock/1.4.0/charts/common-6.8.0.tgz b/incubator/ser2sock/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/ser2sock/1.4.0/ix_values.yaml b/incubator/ser2sock/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..3aab2b9436 --- /dev/null +++ b/incubator/ser2sock/1.4.0/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/incubator/ser2sock/1.4.0/questions.yaml b/incubator/ser2sock/1.4.0/questions.yaml new file mode 100644 index 0000000000..80758665e9 --- /dev/null +++ b/incubator/ser2sock/1.4.0/questions.yaml @@ -0,0 +1,728 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 10000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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" diff --git a/incubator/ser2sock/1.4.0/templates/common.yaml b/incubator/ser2sock/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/ser2sock/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/ser2sock/1.4.0/test_values.yaml b/incubator/ser2sock/1.4.0/test_values.yaml new file mode 100644 index 0000000000..9359ad10eb --- /dev/null +++ b/incubator/ser2sock/1.4.0/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/incubator/ser2sock/1.4.0/values.yaml b/incubator/ser2sock/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/stash/1.4.0/CONFIG.md b/incubator/stash/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/stash/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/stash/1.4.0/Chart.lock b/incubator/stash/1.4.0/Chart.lock new file mode 100644 index 0000000000..7abf6f2f23 --- /dev/null +++ b/incubator/stash/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:51:11.569183392Z" diff --git a/incubator/stash/1.4.0/Chart.yaml b/incubator/stash/1.4.0/Chart.yaml new file mode 100644 index 0000000000..76928d63aa --- /dev/null +++ b/incubator/stash/1.4.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/stash/1.4.0/README.md b/incubator/stash/1.4.0/README.md new file mode 100644 index 0000000000..c0f2bbc215 --- /dev/null +++ b/incubator/stash/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.2-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.5.2 | + +## Installing the Chart + +To install the chart with the release name `stash` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `stash` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/stash/1.4.0/app-readme.md b/incubator/stash/1.4.0/app-readme.md new file mode 100644 index 0000000000..6f6fb60c47 --- /dev/null +++ b/incubator/stash/1.4.0/app-readme.md @@ -0,0 +1 @@ +An organizer for your porn, written in Go diff --git a/incubator/stash/1.4.0/charts/common-6.8.0.tgz b/incubator/stash/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/stash/1.4.0/ci/ct-values.yaml b/incubator/stash/1.4.0/ci/ct-values.yaml new file mode 100644 index 0000000000..322b5784ed --- /dev/null +++ b/incubator/stash/1.4.0/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/incubator/stash/1.4.0/ix_values.yaml b/incubator/stash/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..d447043b53 --- /dev/null +++ b/incubator/stash/1.4.0/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/incubator/stash/1.4.0/questions.yaml b/incubator/stash/1.4.0/questions.yaml new file mode 100644 index 0000000000..7a3fc2bd63 --- /dev/null +++ b/incubator/stash/1.4.0/questions.yaml @@ -0,0 +1,672 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9999 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/stash/1.4.0/templates/common.yaml b/incubator/stash/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/stash/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/stash/1.4.0/test_values.yaml b/incubator/stash/1.4.0/test_values.yaml new file mode 100644 index 0000000000..bee17c8306 --- /dev/null +++ b/incubator/stash/1.4.0/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: 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: false + mountPath: /root/.stash + + media: + enabled: false + mountPath: /media diff --git a/incubator/stash/1.4.0/values.yaml b/incubator/stash/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/thelounge/1.6.0/CONFIG.md b/incubator/thelounge/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/thelounge/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/thelounge/1.6.0/Chart.lock b/incubator/thelounge/1.6.0/Chart.lock new file mode 100644 index 0000000000..29c8adcec7 --- /dev/null +++ b/incubator/thelounge/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:13.314615557Z" diff --git a/incubator/thelounge/1.6.0/Chart.yaml b/incubator/thelounge/1.6.0/Chart.yaml new file mode 100644 index 0000000000..6dd939a98f --- /dev/null +++ b/incubator/thelounge/1.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/thelounge/1.6.0/README.md b/incubator/thelounge/1.6.0/README.md new file mode 100644 index 0000000000..b65bb0dc62 --- /dev/null +++ b/incubator/thelounge/1.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `thelounge` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `thelounge` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/thelounge/1.6.0/app-readme.md b/incubator/thelounge/1.6.0/app-readme.md new file mode 100644 index 0000000000..3bea542e86 --- /dev/null +++ b/incubator/thelounge/1.6.0/app-readme.md @@ -0,0 +1 @@ +The Lounge, modern web IRC client designed for self-hosting diff --git a/incubator/thelounge/1.6.0/charts/common-6.8.0.tgz b/incubator/thelounge/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/thelounge/1.6.0/ix_values.yaml b/incubator/thelounge/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..12e3b82367 --- /dev/null +++ b/incubator/thelounge/1.6.0/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/incubator/thelounge/1.6.0/questions.yaml b/incubator/thelounge/1.6.0/questions.yaml new file mode 100644 index 0000000000..445b69dfed --- /dev/null +++ b/incubator/thelounge/1.6.0/questions.yaml @@ -0,0 +1,635 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 9000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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: 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/incubator/thelounge/1.6.0/templates/common.yaml b/incubator/thelounge/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/thelounge/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/thelounge/1.6.0/test_values.yaml b/incubator/thelounge/1.6.0/test_values.yaml new file mode 100644 index 0000000000..b92da5d94e --- /dev/null +++ b/incubator/thelounge/1.6.0/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: 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: emptyDir diff --git a/incubator/thelounge/1.6.0/values.yaml b/incubator/thelounge/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/tvheadend/7.6.0/CONFIG.md b/incubator/tvheadend/7.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/tvheadend/7.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/tvheadend/7.6.0/Chart.lock b/incubator/tvheadend/7.6.0/Chart.lock new file mode 100644 index 0000000000..8ef25c5941 --- /dev/null +++ b/incubator/tvheadend/7.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:15.060828932Z" diff --git a/incubator/tvheadend/7.6.0/Chart.yaml b/incubator/tvheadend/7.6.0/Chart.yaml new file mode 100644 index 0000000000..ebf1874837 --- /dev/null +++ b/incubator/tvheadend/7.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/tvheadend/7.6.0/README.md b/incubator/tvheadend/7.6.0/README.md new file mode 100644 index 0000000000..c0c5572526 --- /dev/null +++ b/incubator/tvheadend/7.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 7.3.2](https://img.shields.io/badge/Version-7.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `tvheadend` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `tvheadend` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/tvheadend/7.6.0/app-readme.md b/incubator/tvheadend/7.6.0/app-readme.md new file mode 100644 index 0000000000..972a532e25 --- /dev/null +++ b/incubator/tvheadend/7.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/tvheadend/7.6.0/charts/common-6.8.0.tgz b/incubator/tvheadend/7.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/tvheadend/7.6.0/ix_values.yaml b/incubator/tvheadend/7.6.0/ix_values.yaml new file mode 100644 index 0000000000..9f7637469c --- /dev/null +++ b/incubator/tvheadend/7.6.0/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/incubator/tvheadend/7.6.0/questions.yaml b/incubator/tvheadend/7.6.0/questions.yaml new file mode 100644 index 0000000000..ba189f736a --- /dev/null +++ b/incubator/tvheadend/7.6.0/questions.yaml @@ -0,0 +1,724 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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: 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/incubator/tvheadend/7.6.0/templates/common.yaml b/incubator/tvheadend/7.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/tvheadend/7.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/tvheadend/7.6.0/test_values.yaml b/incubator/tvheadend/7.6.0/test_values.yaml new file mode 100644 index 0000000000..2835710b41 --- /dev/null +++ b/incubator/tvheadend/7.6.0/test_values.yaml @@ -0,0 +1,36 @@ +# 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: emptyDir diff --git a/incubator/tvheadend/7.6.0/values.yaml b/incubator/tvheadend/7.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/unifi/6.6.0/CONFIG.md b/incubator/unifi/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/unifi/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/unifi/6.6.0/Chart.lock b/incubator/unifi/6.6.0/Chart.lock new file mode 100644 index 0000000000..945c8246e1 --- /dev/null +++ b/incubator/unifi/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:16.812423378Z" diff --git a/incubator/unifi/6.6.0/Chart.yaml b/incubator/unifi/6.6.0/Chart.yaml new file mode 100644 index 0000000000..7eed6e1da2 --- /dev/null +++ b/incubator/unifi/6.6.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/unifi/6.6.0/README.md b/incubator/unifi/6.6.0/README.md new file mode 100644 index 0000000000..193bb3f333 --- /dev/null +++ b/incubator/unifi/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `unifi` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `unifi` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/unifi/6.6.0/app-readme.md b/incubator/unifi/6.6.0/app-readme.md new file mode 100644 index 0000000000..0e6732e403 --- /dev/null +++ b/incubator/unifi/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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/incubator/unifi/6.6.0/charts/common-6.8.0.tgz b/incubator/unifi/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/unifi/6.6.0/ix_values.yaml b/incubator/unifi/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..c32ec8b42a --- /dev/null +++ b/incubator/unifi/6.6.0/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/incubator/unifi/6.6.0/questions.yaml b/incubator/unifi/6.6.0/questions.yaml new file mode 100644 index 0000000000..2cccbbf697 --- /dev/null +++ b/incubator/unifi/6.6.0/questions.yaml @@ -0,0 +1,823 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8443 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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: 36036 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + default: 36037 + 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: "/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: 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/incubator/unifi/6.6.0/templates/common.yaml b/incubator/unifi/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/unifi/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/unifi/6.6.0/test_values.yaml b/incubator/unifi/6.6.0/test_values.yaml new file mode 100644 index 0000000000..d308cc86b9 --- /dev/null +++ b/incubator/unifi/6.6.0/test_values.yaml @@ -0,0 +1,48 @@ +# 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 + type: ClusterIP + ports: + tcp: + enabled: true + port: 8080 + protocol: TCP + stun: + enabled: true + type: ClusterIP + ports: + udp: + enabled: true + port: 3478 + protocol: UDP + +env: + # TZ: + PUID: "568" + PGID: "568" + +persistence: + config: + enabled: true + mountPath: "/unifi" + type: emptyDir diff --git a/incubator/unifi/6.6.0/values.yaml b/incubator/unifi/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/unpackerr/1.6.0/CONFIG.md b/incubator/unpackerr/1.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/unpackerr/1.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/unpackerr/1.6.0/Chart.lock b/incubator/unpackerr/1.6.0/Chart.lock new file mode 100644 index 0000000000..14039e0490 --- /dev/null +++ b/incubator/unpackerr/1.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:51:18.582227816Z" diff --git a/incubator/unpackerr/1.6.0/Chart.yaml b/incubator/unpackerr/1.6.0/Chart.yaml new file mode 100644 index 0000000000..3e337eed4d --- /dev/null +++ b/incubator/unpackerr/1.6.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/incubator/unpackerr/1.6.0/README.md b/incubator/unpackerr/1.6.0/README.md new file mode 100644 index 0000000000..27eb6c84c0 --- /dev/null +++ b/incubator/unpackerr/1.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.3.2](https://img.shields.io/badge/Version-1.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `unpackerr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `unpackerr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/unpackerr/1.6.0/app-readme.md b/incubator/unpackerr/1.6.0/app-readme.md new file mode 100644 index 0000000000..92412a850a --- /dev/null +++ b/incubator/unpackerr/1.6.0/app-readme.md @@ -0,0 +1,3 @@ +Smart PVR for newsgroup and bittorrent users +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/incubator/unpackerr/1.6.0/charts/common-6.8.0.tgz b/incubator/unpackerr/1.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/unpackerr/1.6.0/ix_values.yaml b/incubator/unpackerr/1.6.0/ix_values.yaml new file mode 100644 index 0000000000..f94e0877d8 --- /dev/null +++ b/incubator/unpackerr/1.6.0/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/incubator/unpackerr/1.6.0/questions.yaml b/incubator/unpackerr/1.6.0/questions.yaml new file mode 100644 index 0000000000..485f36be15 --- /dev/null +++ b/incubator/unpackerr/1.6.0/questions.yaml @@ -0,0 +1,540 @@ +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: 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: 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: 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: 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: 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/incubator/unpackerr/1.6.0/templates/common.yaml b/incubator/unpackerr/1.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/unpackerr/1.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/unpackerr/1.6.0/test_values.yaml b/incubator/unpackerr/1.6.0/test_values.yaml new file mode 100644 index 0000000000..7e289d84f9 --- /dev/null +++ b/incubator/unpackerr/1.6.0/test_values.yaml @@ -0,0 +1,51 @@ +# 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: emptyDir + 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/incubator/unpackerr/1.6.0/values.yaml b/incubator/unpackerr/1.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/xteve/1.4.0/CONFIG.md b/incubator/xteve/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/incubator/xteve/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/xteve/1.4.0/Chart.lock b/incubator/xteve/1.4.0/Chart.lock new file mode 100644 index 0000000000..9dde8a1ddf --- /dev/null +++ b/incubator/xteve/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:51:20.356520246Z" diff --git a/incubator/xteve/1.4.0/Chart.yaml b/incubator/xteve/1.4.0/Chart.yaml new file mode 100644 index 0000000000..f2bcadd5d2 --- /dev/null +++ b/incubator/xteve/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/incubator/xteve/1.4.0/README.md b/incubator/xteve/1.4.0/README.md new file mode 100644 index 0000000000..1c2a8c6937 --- /dev/null +++ b/incubator/xteve/1.4.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `xteve` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `xteve` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/xteve/1.4.0/app-readme.md b/incubator/xteve/1.4.0/app-readme.md new file mode 100644 index 0000000000..bce69529a1 --- /dev/null +++ b/incubator/xteve/1.4.0/app-readme.md @@ -0,0 +1 @@ +M3U Proxy for Plex DVR and Emby Live TV. diff --git a/incubator/xteve/1.4.0/charts/common-6.8.0.tgz b/incubator/xteve/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/incubator/xteve/1.4.0/ix_values.yaml b/incubator/xteve/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..ad5c311aa5 --- /dev/null +++ b/incubator/xteve/1.4.0/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/incubator/xteve/1.4.0/questions.yaml b/incubator/xteve/1.4.0/questions.yaml new file mode 100644 index 0000000000..b210d0e7f3 --- /dev/null +++ b/incubator/xteve/1.4.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 34400 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/incubator/xteve/1.4.0/templates/common.yaml b/incubator/xteve/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/xteve/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/xteve/1.4.0/test_values.yaml b/incubator/xteve/1.4.0/test_values.yaml new file mode 100644 index 0000000000..16d4e2ce37 --- /dev/null +++ b/incubator/xteve/1.4.0/test_values.yaml @@ -0,0 +1,33 @@ +# +# 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: false diff --git a/incubator/xteve/1.4.0/values.yaml b/incubator/xteve/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/non-free/resilio-sync/1.4.0/CONFIG.md b/non-free/resilio-sync/1.4.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/non-free/resilio-sync/1.4.0/Chart.lock b/non-free/resilio-sync/1.4.0/Chart.lock new file mode 100644 index 0000000000..203d130456 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +digest: sha256:e82a232e2c800c2965423a10acbef205586159b211a462e133a2d2297c0c484f +generated: "2021-08-12T11:51:23.866738881Z" diff --git a/non-free/resilio-sync/1.4.0/Chart.yaml b/non-free/resilio-sync/1.4.0/Chart.yaml new file mode 100644 index 0000000000..265550310c --- /dev/null +++ b/non-free/resilio-sync/1.4.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.8.0 +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.4.0 diff --git a/non-free/resilio-sync/1.4.0/README.md b/non-free/resilio-sync/1.4.0/README.md new file mode 100644 index 0000000000..57e7735181 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.1.2](https://img.shields.io/badge/Version-1.1.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `resilio-sync` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `resilio-sync` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/non-free/resilio-sync/1.4.0/app-readme.md b/non-free/resilio-sync/1.4.0/app-readme.md new file mode 100644 index 0000000000..2ba4d5f50a --- /dev/null +++ b/non-free/resilio-sync/1.4.0/app-readme.md @@ -0,0 +1 @@ +Resilio Sync is a fast, reliable, and simple file sync and share solution, diff --git a/non-free/resilio-sync/1.4.0/charts/common-6.8.0.tgz b/non-free/resilio-sync/1.4.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/non-free/resilio-sync/1.4.0/ix_values.yaml b/non-free/resilio-sync/1.4.0/ix_values.yaml new file mode 100644 index 0000000000..72df948301 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/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/non-free/resilio-sync/1.4.0/questions.yaml b/non-free/resilio-sync/1.4.0/questions.yaml new file mode 100644 index 0000000000..c8d7df25c4 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/questions.yaml @@ -0,0 +1,858 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8888 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/non-free/resilio-sync/1.4.0/templates/common.yaml b/non-free/resilio-sync/1.4.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/non-free/resilio-sync/1.4.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/non-free/resilio-sync/1.4.0/test_values.yaml b/non-free/resilio-sync/1.4.0/test_values.yaml new file mode 100644 index 0000000000..7e0d5117ab --- /dev/null +++ b/non-free/resilio-sync/1.4.0/test_values.yaml @@ -0,0 +1,72 @@ +# +# 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: false + mountPath: /config + + media: + enabled: false + mountPath: /media + + downloads: + enabled: false + mountPath: /downloads + + sync: + enabled: false + mountPath: /sync diff --git a/non-free/resilio-sync/1.4.0/values.yaml b/non-free/resilio-sync/1.4.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/collabora-online/6.6.0/CONFIG.md b/stable/collabora-online/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/collabora-online/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/collabora-online/6.6.0/Chart.lock new file mode 100644 index 0000000000..5c470914de --- /dev/null +++ b/stable/collabora-online/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:35.358387315Z" diff --git a/stable/collabora-online/6.6.0/Chart.yaml b/stable/collabora-online/6.6.0/Chart.yaml new file mode 100644 index 0000000000..aa917a238e --- /dev/null +++ b/stable/collabora-online/6.6.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/collabora-online/6.6.0/README.md b/stable/collabora-online/6.6.0/README.md new file mode 100644 index 0000000000..e080776f0a --- /dev/null +++ b/stable/collabora-online/6.6.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `collabora-online` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `collabora-online` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/collabora-online/6.6.0/app-readme.md new file mode 100644 index 0000000000..f25a256798 --- /dev/null +++ b/stable/collabora-online/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/collabora-online/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/collabora-online/6.6.0/ix_values.yaml b/stable/collabora-online/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..a75fc9f386 --- /dev/null +++ b/stable/collabora-online/6.6.0/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.9 + 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.6.0/questions.yaml b/stable/collabora-online/6.6.0/questions.yaml new file mode 100644 index 0000000000..cd842c24c7 --- /dev/null +++ b/stable/collabora-online/6.6.0/questions.yaml @@ -0,0 +1,545 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + # Reverse Proxy + - 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: 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/collabora-online/6.6.0/templates/common.yaml b/stable/collabora-online/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/collabora-online/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/collabora-online/6.6.0/test_values.yaml b/stable/collabora-online/6.6.0/test_values.yaml new file mode 100644 index 0000000000..d49bad36fe --- /dev/null +++ b/stable/collabora-online/6.6.0/test_values.yaml @@ -0,0 +1,22 @@ +image: + repository: collabora/code + tag: 6.4.10.9 + 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.6.0/values.yaml b/stable/collabora-online/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/deepstack-cpu/4.6.0/CONFIG.md b/stable/deepstack-cpu/4.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/deepstack-cpu/4.6.0/Chart.lock new file mode 100644 index 0000000000..6b3aabbf52 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:37.280933278Z" diff --git a/stable/deepstack-cpu/4.6.0/Chart.yaml b/stable/deepstack-cpu/4.6.0/Chart.yaml new file mode 100644 index 0000000000..4430b53464 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/deepstack-cpu/4.6.0/README.md b/stable/deepstack-cpu/4.6.0/README.md new file mode 100644 index 0000000000..ba6103eda1 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 4.3.2](https://img.shields.io/badge/Version-4.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `deepstack-cpu` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `deepstack-cpu` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/deepstack-cpu/4.6.0/app-readme.md new file mode 100644 index 0000000000..26df7a8b5d --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/deepstack-cpu/4.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/deepstack-cpu/4.6.0/ix_values.yaml b/stable/deepstack-cpu/4.6.0/ix_values.yaml new file mode 100644 index 0000000000..4bff0fb6e8 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/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.6.0/questions.yaml b/stable/deepstack-cpu/4.6.0/questions.yaml new file mode 100644 index 0000000000..e282028019 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/questions.yaml @@ -0,0 +1,681 @@ +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" + # 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: port + label: "Container Port" + schema: + type: int + default: 5000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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/deepstack-cpu/4.6.0/templates/common.yaml b/stable/deepstack-cpu/4.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deepstack-cpu/4.6.0/test_values.yaml b/stable/deepstack-cpu/4.6.0/test_values.yaml new file mode 100644 index 0000000000..939cd7e6ce --- /dev/null +++ b/stable/deepstack-cpu/4.6.0/test_values.yaml @@ -0,0 +1,39 @@ +# 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: emptyDir diff --git a/stable/deepstack-cpu/4.6.0/values.yaml b/stable/deepstack-cpu/4.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/emby/6.6.0/CONFIG.md b/stable/emby/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/emby/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/emby/6.6.0/Chart.lock new file mode 100644 index 0000000000..6929116ce0 --- /dev/null +++ b/stable/emby/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:39.038134199Z" diff --git a/stable/emby/6.6.0/Chart.yaml b/stable/emby/6.6.0/Chart.yaml new file mode 100644 index 0000000000..40bc790f1e --- /dev/null +++ b/stable/emby/6.6.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/emby/6.6.0/README.md b/stable/emby/6.6.0/README.md new file mode 100644 index 0000000000..e6e734a772 --- /dev/null +++ b/stable/emby/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `emby` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `emby` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/emby/6.6.0/app-readme.md new file mode 100644 index 0000000000..14cf8a3a65 --- /dev/null +++ b/stable/emby/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/emby/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/emby/6.6.0/ix_values.yaml b/stable/emby/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..c4f69eb189 --- /dev/null +++ b/stable/emby/6.6.0/ix_values.yaml @@ -0,0 +1,22 @@ +## +# 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 + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] +## +# 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.6.0/questions.yaml b/stable/emby/6.6.0/questions.yaml new file mode 100644 index 0000000000..1b0ea528e0 --- /dev/null +++ b/stable/emby/6.6.0/questions.yaml @@ -0,0 +1,676 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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 + # 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: "Enable privileged mode for Common-Chart based charts" + 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: 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/emby/6.6.0/templates/common.yaml b/stable/emby/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/emby/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/emby/6.6.0/test_values.yaml b/stable/emby/6.6.0/test_values.yaml new file mode 100644 index 0000000000..f596648566 --- /dev/null +++ b/stable/emby/6.6.0/test_values.yaml @@ -0,0 +1,29 @@ +# 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: emptyDir diff --git a/stable/emby/6.6.0/values.yaml b/stable/emby/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/esphome/6.6.0/CONFIG.md b/stable/esphome/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/esphome/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/esphome/6.6.0/Chart.lock new file mode 100644 index 0000000000..f8b87295e7 --- /dev/null +++ b/stable/esphome/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:40.81372054Z" diff --git a/stable/esphome/6.6.0/Chart.yaml b/stable/esphome/6.6.0/Chart.yaml new file mode 100644 index 0000000000..e462e59f29 --- /dev/null +++ b/stable/esphome/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/esphome/6.6.0/README.md b/stable/esphome/6.6.0/README.md new file mode 100644 index 0000000000..ab7cbe9d75 --- /dev/null +++ b/stable/esphome/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `esphome` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `esphome` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/esphome/6.6.0/app-readme.md new file mode 100644 index 0000000000..1854a47b15 --- /dev/null +++ b/stable/esphome/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/esphome/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/esphome/6.6.0/ix_values.yaml b/stable/esphome/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..09e6b34197 --- /dev/null +++ b/stable/esphome/6.6.0/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: 1.20.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/esphome/6.6.0/questions.yaml b/stable/esphome/6.6.0/questions.yaml new file mode 100644 index 0000000000..38ad82fa93 --- /dev/null +++ b/stable/esphome/6.6.0/questions.yaml @@ -0,0 +1,771 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 6052 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + # Configure app volumes + - 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: 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: 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: 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/esphome/6.6.0/templates/common.yaml b/stable/esphome/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/esphome/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/esphome/6.6.0/test_values.yaml b/stable/esphome/6.6.0/test_values.yaml new file mode 100644 index 0000000000..42527861fc --- /dev/null +++ b/stable/esphome/6.6.0/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for esphome. + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 1.20.4 + +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: emptyDir diff --git a/stable/esphome/6.6.0/values.yaml b/stable/esphome/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/freeradius/1.2.0/CONFIG.md b/stable/freeradius/1.2.0/CONFIG.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/freeradius/1.2.0/Chart.lock b/stable/freeradius/1.2.0/Chart.lock new file mode 100644 index 0000000000..22ecaf2e2d --- /dev/null +++ b/stable/freeradius/1.2.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:42.585737065Z" diff --git a/stable/freeradius/1.2.0/Chart.yaml b/stable/freeradius/1.2.0/Chart.yaml new file mode 100644 index 0000000000..fe1a0fb410 --- /dev/null +++ b/stable/freeradius/1.2.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.2.0 diff --git a/stable/freeradius/1.2.0/README.md b/stable/freeradius/1.2.0/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/freeradius/1.2.0/app-readme.md b/stable/freeradius/1.2.0/app-readme.md new file mode 100644 index 0000000000..d5b763ca44 --- /dev/null +++ b/stable/freeradius/1.2.0/app-readme.md @@ -0,0 +1 @@ +OpenSource Radius implementation diff --git a/stable/freeradius/1.2.0/charts/common-6.8.0.tgz b/stable/freeradius/1.2.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/freeradius/1.2.0/ix_values.yaml b/stable/freeradius/1.2.0/ix_values.yaml new file mode 100644 index 0000000000..5f5b3bc069 --- /dev/null +++ b/stable/freeradius/1.2.0/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.2.0/questions.yaml b/stable/freeradius/1.2.0/questions.yaml new file mode 100644 index 0000000000..4e0cbc215d --- /dev/null +++ b/stable/freeradius/1.2.0/questions.yaml @@ -0,0 +1,601 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 1812 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 1813 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + 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 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: 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/freeradius/1.2.0/templates/common.yaml b/stable/freeradius/1.2.0/templates/common.yaml new file mode 100644 index 0000000000..64e027ac0f --- /dev/null +++ b/stable/freeradius/1.2.0/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.2.0/test_values.yaml b/stable/freeradius/1.2.0/test_values.yaml new file mode 100644 index 0000000000..8159592eed --- /dev/null +++ b/stable/freeradius/1.2.0/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.2.0/values.yaml b/stable/freeradius/1.2.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/handbrake/6.6.0/CONFIG.md b/stable/handbrake/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/handbrake/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/handbrake/6.6.0/Chart.lock new file mode 100644 index 0000000000..f62a6b3ab6 --- /dev/null +++ b/stable/handbrake/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:44.366135281Z" diff --git a/stable/handbrake/6.6.0/Chart.yaml b/stable/handbrake/6.6.0/Chart.yaml new file mode 100644 index 0000000000..9376e6ab7f --- /dev/null +++ b/stable/handbrake/6.6.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/handbrake/6.6.0/README.md b/stable/handbrake/6.6.0/README.md new file mode 100644 index 0000000000..bd00964082 --- /dev/null +++ b/stable/handbrake/6.6.0/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `handbrake` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `handbrake` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/handbrake/6.6.0/app-readme.md new file mode 100644 index 0000000000..483e45f40d --- /dev/null +++ b/stable/handbrake/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/handbrake/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/handbrake/6.6.0/ix_values.yaml b/stable/handbrake/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..e9ca397e6a --- /dev/null +++ b/stable/handbrake/6.6.0/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.0 + 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.6.0/questions.yaml b/stable/handbrake/6.6.0/questions.yaml new file mode 100644 index 0000000000..4ba47af86f --- /dev/null +++ b/stable/handbrake/6.6.0/questions.yaml @@ -0,0 +1,837 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + - 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: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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" diff --git a/stable/handbrake/6.6.0/templates/common.yaml b/stable/handbrake/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/handbrake/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/handbrake/6.6.0/test_values.yaml b/stable/handbrake/6.6.0/test_values.yaml new file mode 100644 index 0000000000..cbe8c42013 --- /dev/null +++ b/stable/handbrake/6.6.0/test_values.yaml @@ -0,0 +1,51 @@ +image: + repository: jlesage/handbrake + tag: v1.24.0 + 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: emptyDir diff --git a/stable/handbrake/6.6.0/values.yaml b/stable/handbrake/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/home-assistant/6.6.0/CONFIG.md b/stable/home-assistant/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/home-assistant/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/home-assistant/6.6.0/Chart.lock new file mode 100644 index 0000000000..7e51674c50 --- /dev/null +++ b/stable/home-assistant/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:46.114695815Z" diff --git a/stable/home-assistant/6.6.0/Chart.yaml b/stable/home-assistant/6.6.0/Chart.yaml new file mode 100644 index 0000000000..b739f0e880 --- /dev/null +++ b/stable/home-assistant/6.6.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/home-assistant/6.6.0/README.md b/stable/home-assistant/6.6.0/README.md new file mode 100644 index 0000000000..1320f7d9b7 --- /dev/null +++ b/stable/home-assistant/6.6.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `home-assistant` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `home-assistant` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/home-assistant/6.6.0/app-readme.md new file mode 100644 index 0000000000..822d932e2e --- /dev/null +++ b/stable/home-assistant/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/home-assistant/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvLciT3yIE?SVAH51JliphWSd{!btMB!Guh&l7+)W&x*lC}8 zyFD>YLKbR@WJyqt>gIXv&%sXuAV5-<>||T>^rRLE%nSy=%wRAWgz0RSCd1=tkYj%l z%;LYS{~3)&qy61o`v1{rWd472u(SP_t=+BB-qykH*1^_aMqAsv`@4SuqX(d+_LKz< z^1qB$#$`6{-{c80^aIQblqO>^-|hujCVwVr0(%iG!W?CozWKIHLh=`g(N!Mg3ouD@ zaFLgg4xgeoO=oZnrWj|%csRU9cv@chVLBV)yo4bwGYqn<7~&kl;VdXH%!m9v8;Cs= z5<~(-Fb{B$7d``37BCOf1j7VVsO9ire|I!G*xT#fz{PEvN5!}|02Q*{Ku|iMFM0#O z(cF|*P&V}IzaMV-Tl@ZKF#5VT3s8asl)#(m8OLNG@?raym)4+=axlRthqMfc-~=UzNRJ+n z0IHfjGO_bCj$tmrz$CbeA%#?Z^?QJSh}h&Xkyb?knIAs={zDL>2&7bw6(Gn7Jz1PC zW-!5oM5r_0TN1t|lz~MTSUPAX1Kv7yiR2g#)7caBywB&&oIkSsJ5|R42dA z=#O!)M@xyh&WGG=79`O|(U&5IcP$-_RR8vPp)vUBXA6iRzb+aolh3qfuW7z!Y1GTo z=*XCpJ;#*f#a~y`j+H!$A`pP@(;WRq2#CR18iAt{r$rdVFz-DB|0O6K48VUzsGtJu z@4bMRK?!B26l{|qE+A!dehu-MFuEFJT=dRR@=i`_@QlvuS@2PRHyTMO$7k=~V-%y` zXhY9n9>N5ZQ9ug5sLH*8vov2c7VQ-MHv+45QAHUrxX$wg^RQV1?A_$?>z(mfFQUHsE7-w*e;+dGzsA_3G+op$humH z8L`QlLRn5a1Wt&UBtn5mwP%#C$>J)F7L0%(3}I0SJ}YJ+n4lQ?Jw~k5IA=%a=RdxE zcQOXE#UKlcf>`0axo-lL0GP~Co+eZ@&VwA0@m=`ff-^~sc+$f2MS_EmLP?K%&%jY1 zT>S4CyuUam4Cpg#Cu8vS-5v1X!59Vw^iK)XKYjYT_Y54%BE4sTJ}{Yoo2N7R8vx(; zdoY>P7Ca+{0jG&IpL3K9fk~duWM>we0DcT+8R6M8@FV3E$QcD3v)4x#FF*Wn^!okFG4L$SWHrf%a?wud-XMaJ z6Vay>ous$PZIDOc=AEm=64T~WTiko7Hl3!qm2T_27L6A|o zLON%t^y)zL>HvPs(gF^$G#ZfQQa)p4Nh^OKq|uHLZ9RQ^^76y!(VLe{b^tIzFpl2A ziTKUmoCSC~rt`p0(g+eR^m?LKxndwve}b;x1R1T*YKw&u`7)RV*?>w-Qko6nT2b~| z78`)$vcTyKWI0N6gcl%;gMw+C2u&t1Cqo(&89@j4)q=^Fa0;W6$b3=nm{dEZD8MsN zED8)~1Jag3m?MnBAQnm_j?>#h%y}YL0uVA9BveXkPyUo(gWDU@xq~Q3u3?^*#h@a@ z1s#4Q9f~lRrUlh0WY}YrT=&Eap}K#Z!i0-D^63=f+cducv)~32n+7sjMeLxYU`n3| zkjvw^BrE)HQC?s&Wxi*1FMA3QDf20!6DG8%{PEQ49zYWfH!4^~D&9N?CR;5c%l)1t zlyXn4F02(Qg@PEIoSqB56q|fJmAR1mNtEJ(i!3k;79fX38qXm}ia1Sg$_${QAhR+} zK#|TM_@|s|1ZtTTl$K)(mdPXlR1rv?0Ux0hnUrL7x{rakCDhAHDoTgkxS-^5MMa29 zCw5s(2Q=4;1rftP{glJW&p&T82!}9DLYU!VDC!Lo#$c3OlaC1z8j8Fq2E5?#8PhK) zxgOvt6tDX|rUuU0&(|oqDfr@!Pesml)~a(DmUKoQrwN81v9toun0Y3?^UsQ%))CH( zXs*hXEIPuA(FBHzForHbvVdx2vI$AFFdz%$V^O*QL|yyfe~9ws+5-?33nPFMp`nSP z859Gu>d|Yfwy%OBh$6&Cc6e`06%Z@Fvpl_ma;ne~z&>;sT1@YVx=fo$LY4P1n!^MZ z#UO`4gy>%d4su*(gN&drhJC~8CJOHg#_4U36_7^jYYqxz7P?6pI}`u}4a$n{W#zJn zHLyKqjp%+0Z5__+!b|e$lE^J0Q*Ti*C2zUZChu~P-X;?GnS{+WMYVF^unV#{W*!{U zIK0RpvCR`|Ffx%YwM<2*-e&LO_{^j4nK$I(_^d+kYC={%7Z+z711g9?9m%CSoeSjq zkoQ6V65Z*5r2=-45lTnm7fGCE^~M>&0#_49fQ4I|_P*H}9d7N7$ZD0;rK5-t3CavyG3O4#bW#-d3AN{( zH~S;2RV%ty@}2HRGLy0Q3>;Mkr7Rf+2{9pqC}O@SVlUDm86moV9OMgd0~eq`GZY88 zurR+S=JMA9jPJDHc!4qXccP>=O$$KR=mq;*X@h09R(0Qy)hwH@bYh_yAyfDZH%e{| zGvjfS%rxp1!lCc`eP!HHFB=*BGqxcSBw$N`*;Lld)Q^`Y@uK=nYX$iYB$l=yfq~{f zYE)}3akhvrClmCMffv)3bsZ`+Mi?7#hTN)Lr9?a^a)K|GU!5sc&hm6lh)`A+s*rTbBH^JxuzN@h=lHOR&~-G zkBzctq+FJ#I1SU-SH7K>8HJ&^&M%1yyWC{|KPP`&9G_iM$I|8dle0^;I@5OK6W4oL zaGQXDD9>tZA&I~>#MR7035GctO7GvjreEnit$Z^|>lwjg3f*XuT*X%tlWy10rW%F? zb5Lrtn6{evw5Jd#&Kdf}*L(M}0)0t(tl;}P5!akbH%J+S61ka77wf7zMM;5S5P@`} z;31_iGm3)thEIB!Z%_~pMSSXs?TvzUohr_#2CrzZs5ZxgU>=o{X#~&Y7?5i1bs9wf z2;v|KVNQGLRFqQ%VWDzrRacqxiV?`vCrlbx%``#j*s7ROa-GAX=%SgcqN}N94#%yU zd4VNVGq0hmX1Nd8D7ARiRdq85>;E<2$US|P|~#mJ^R zXk(CEqvWHbD2|Ik5YlaPGMl^yF$jf)%ju#!bX_LpGw_Z9FVuY;8a?_qT0jLT_vSp> zUeS_gh7_Ns1+FBxDh=tEYLGJ0zfTKHI6#R4-@~}tqZYEAdG0GcMc|B?ZW!<_VLwj8 zAg(l-NfcR_S40s2m5o9^RaR+5*;#<6KIldgkc2b%^85b?l97U_X3Pia&~p!W{z4;(Xbz);EkaW;IlQ8U1Cp-{xa zV`TgawJihi-TPOS+eMe@A#z?r3Gf{BuOfBp{;L2A$$mKKJy1}lqw zR*Wl!TEnRN>E|B9Kw6>ft}WZrha%3v-bUfd)U_C>%)9$F`Q|oH6?)|MACEbx(W<$N zY4lU!H+qd(g$^dKiitG3+4en`zFwu8^vT#lo3nYi3E(WlixZS@(uqWbGogdIK^1RK zHdjraNt%Z;Kr^F3xMx2c10HZl3jK)Un2Kd;((#Z!rg&$b;zh7?hqC8ZCl>B<|HJ{#vis`Dv zdUvq*ZwN&UAtjCl9)V|oZ#pX-!q<{$qJpi$8fkSH(JhhzSwt|X6LhTspsS(+(m2S=!R0217D+HeAyFADa+oj^6@p`tr5Y8F zga7^Z{Bl$C%S#Y2w;1@mU3GXxI)ivh1C-(dGLYA34iiwYRz4`jIKT*OC}i~M z&}5*KGLFgWP=iGECEaqM{!zRM!f7g(61LVboGJ`v=MB`M&UYYg0~TbO!;%Io0r(LW zbcBX+fM%Ojr}Hfb`JGHW&3sZEl%mivfkBZk(lQ@VkO~d&`MNkvlV8NqExNk6)Bs%i zO5kn)it=i}HgJ+c3`=RWMAd{9E**ey0rE6uHeyj;$*DuSa!{04)V@&`Rx}3aO{$(R z5wZ;%!}CqGCQrFtL6tQNQ=O#|l+&d04_)ysHQq(6?;@E0l>=SMZ^K{=D+&jU!a@Wy z4G0wl^V$TmX=CsX2GNf>!tgE8pZXS8zyx4Aku-`{kmU<3DleClHwF3)j=|PQ{>u3R(^f#$nNT(#%KJ+`CKMb)h zRH)bV9Q_8_$A3`lKQNYEf(Z;TnJm{la-B0|lggqnNQ9QGe97oHHVbDI9N?|teNc@w zesTmn6C;jUI6TZboq(XSGiE#{f3@Bx;E3R8?tM~f5W#s%{|nkwQv`)mwo%OwcaSo5 zHSWu`I3F<)oHrUYTy%CcXXL&%;o+q~b7`|fW{VRQ^|=}+EGm*^Ffq-D91o{3yb+ti zIA3tHNT*cLM0l$BG@>*t$?}IAziBQEOr0HU)$MssAAo%V~zw zf`gejn9?vR6l?h3*gRF*`*23;2{o;l8OeI$2M&^0PK0kO=vFc3nGR*YNCPyNq73pM z%U3{HXH4PlZjY2tEM|JP7>MZY>J*N{C{hlYvhksu&AU{b1t^Ko97Sailb*U^1~v>r zYBAv;38CL(jiBb0IO|gI^9oUb0~Xq?DkAchzEn*JPqQIB`d!ic&z^y|IiQ9mh*5#* z@dnmzBFD?DhDCWT4K+N4=j`t#@Na*I*e}fr4yQ242K?QCx_dd-Pl=_*>^H*jFii@a z2PnbIMx3)_4Jf%Dz&Y~>41=OT*9i?3CTeu}jQq=RrFp+cex37QO5imc(FF)5benRa z&;;@_zDF>87t#c_L6Ag)Ai-!L-t>FoFH3YdrextX=3B|046v`?ClWZaL8Pb127A+jEK8eXToRA3W);f{p^c%a+J!YvS^D^txQ;Z z89OIw9H+M^xn|&FGL1Ju5dBgXm~Hk4O7-A%WtAJQq;^aJY!H7f;e(#&%r%%1Ry8#Omg1}?Q{2-1!F!)4d z9{D=_2E2j!H9u05hC$3X5JUi15~-xJZ;>#_zZoi^P!h&vRAJ(j&|`QW@WCg#Ma+@@ zqeSe)w9=qPXxTi}fuITSe-J3t)ABwyBN;3^G`$7~%!(4JKd_=v>{q_z0V;|KfWO+x z(&%xoN-yAvT6WUZfsOPp7p~z#>hOa8O3OdD>_dqj7t!N`o4a_7! zG1$m*l;8>QPE!m5p4`MFX5*`(@3~0rtDPn~yWaCPs;RXN3xApg7OL%a_%Q2Sp6@r4 z^41E*sHgkF)iAf9CnapqjMh8b>t|_>gV;%sqZV5d!F+~_f*86k5}ZtiA6ZD}s|3S* zLM#a@32Gxgx1_f}b^R~r+uE#vHvPZ7KQi?H-p;}Hlm350rRH_hmU2_vX!Pt&?1#74-IqbVD?>?jk~IFrVAa56z5TCnsUG?JzedDMWh7% zsYcW}Obw-oPZq&(8bnqyn}}2c{1iIebShMegHHDBQg?SYe73R-u<+Edo|pwVoW54N zrm1s$QTMf_ul5;uF|IjyWxxPXW48;PjpaUJgO2ir-su|e^)ypeK_}l0U~+^2ppV@Z zSoFdq!=(7NF_gOyTO(IJ7iS|>86{a7SvpaH_qpZeAMLT|e`(*Z%K&K6|2w+}d#3*1 zA3f#&eU#@u`oBtcxK;x|Ux2n)098WHCllb`-vp?Vle%iM?-d!(MTSo>K9pW>PvjxB zF0N&b%7-(d{-ccqD)1^G{n{5bKc}ZH)ZL4JS)DHZCt5C5?g@}6`ZYf5sZ7Pj_1&F9 zR)^uJr9d^DADjp9*QSRvc7B5$p+jWU zsIbmydewF)#tWU>PsZqzG5RMmM(g&UI8(B|J)lQ$}8SU>q*?*7m5c?0jqdPgw z-h0K5y9(1z9H$crF4+!?%ZQT>Vr>WKJDx9>AM378BL@n6ZFeOPl4}T_lk%J3xj2G5 zK9u4>ywW!~L`k{-G0>!z_{?Asa1u24tFw~BZ&)_VY8%O_GLsY=Abm9;pPLUfxO>Cl zN%#5LVGlg-_Z4b6y&njTgcO5vPsQVL9D|yK)*7XO1KwNOzYLxSHX;;a;K}aO@%0VZ zF0Xi19q5>OcM>uBaT7epvC;)53vpeh;H$X@JRGw| zMerlg`CJ=2mY%d!&~esKQmjo7TPZT^o>~u9JhTmlCdyk!K?rmFeHuqF_Y^!~UFz%RH$an=o?%F!9wUr>f~!iJs?NcD#~OimWgQW9}iI2FuB( zs%vUQusQB)5Y_#$+Q#tn92R6zG(H5L*M;^vPJ?jMj02 z4h?zL+7f;cSkzbRRWNVhqOdgKcQ8SDfi1vw00U*LeYv}J>woI@Up5aPIsRwoV8@LA z+1?sG*?*7mQ2(E5|D9E*jd+AN4PtJ#2i;yh8Wy8Ww+!YdM3xGfYKkRcA|MQBsz5c* zI%`6JiW5!m$Ed)AuZT($I`(&f({oG{clSZRW;bFuqY7GAPz>^+<-0|FDbicClGSI8 zse5)hG`l(h-qvDP^53G(q$sI2qk&zP99jDoX*6pk6LtTJm z^RRW%A^PI%hhxVG1a-YgN=vQ20e`JBWqNc9(C;j~hra0Zz3n?dJ+!W!*xE z8@pfHrFwSaGH>Oe1U{8K-(fdU_b^XuG z_jQ^8E&6}7H!|=4+dUXuR!9)tB}B^%T#anVp*r*0w>}VCm;`^~n}IdHU}2IQ2ijAafmN zK&$ z(G;*NOF4V68R*?3M$&REeY)gyZw|n%O*>bdtR+(SDRj0qbXMf{GSXtnv14q&&DlP& zXojt>wih`MvDg>oJ5|Pld>-Q3hNf1_RzP9Epf+F>eIo%$2CDp0^J*FC^Y88|CzupF zRcVnFlzt~NXMTJEXn2{Rw$J`ls(|0YuVt!+`hzN+j*4APTT?wef!Ekh8ci8#5_R^& zv6U!V*g}okC0brzrHq-Sm(BAD6^7oxt5+r>*Yjwn@r)3(s7z37sY18K@9yd$gTO-{ z^-N}-aT!0WIS`p3_z=*cS1qqi{iYDO$6F}W?0@d48-Dmc&CzdZf`j-hjgCs3(g@7_ z9&3X3_#fl^-}cu2!Tyu|{}@lB{T~?C|5OeMkfrQO8#XB1>wr=w((bwp(DIlJR0B^a z0)ZDL*EQcN73tF~IOQU}-7L^*vKz#@SGFxvD(Z&w?JI}_v1D<~DEsn7He$6^iqJt6 z)dg+cJ2+v0Y>O-Mo>A+xsVX&pvB)aRN}=7>QH-=sGwxi z9mEav^UB%l>PwSD20b-S>E9bTW+9=@I7^`p7%V|5Iv{%eG-ss=k6n&kW2g~m#fnwz zWlxB`u zHjHY3%$Pgf?@OWAvFoRGHv#R$|Dyd^E9=$o_pKKLUX`;x%p)k{&bA1V%PKFC1Wf=f{@^+@ZkW#3P zbGCtNgQa@L>ovM@$ua;H__DpGoo&mdYm*>V9WFzdEzYeDhpS9gTdQvB*LL>AXpki8 z_fzC)iD|-Zkv+Ze_;wJRBT8EJ%HQPO!m9#?We#QX>uzY&Avvyfl(x?zZ4yDrI?{b9 zgSgTT0)ct^HG@*W6IPs_~qMWF{K^ZKzY3h@v`=o)xu?_ZsG{8eKmhE3G^j@DxDY}M|J z)Au#Jd6^s)?+cp8Nkg8c(K#_c5nddp35FlBt<@aLr1*~ftdY_NL|hU|udXx?RsqZT zBzEhjBjrLZ*#WgdX%!g+z<(A{8=f^T^8^<{F>SCnTCxldsit=C^n+VQ6M5^*HC8x>ymr7F@&-`LKoTllGHwIY_ z2Ymi-lE2IBIu9aPFFUw}=z5C1G4KXkBhOMGqH(-~ER9jP@Wz0?EXpv1FoMx0{W%Fx z45LjZeg^avbxNZ&kqeln_)j%nFNZ`g;4_ME3{K%3=KNE2!}VBM7%<)!5VM;1T@Ys|f#V&2NBKq=9+-B{01U5CGAyRX+d*i&_}yX|@agqo6Fi@0G_Q;~$Z7^f zI8AR8FnFhpqGGQv-Na$1ezPxC(qn)DMY-wptGdI_N~3FUcH>^@6E20?2le*Jb?*%uAV1Rv zsoY9uOU(#=tOXEk&@2V!Tb`sqfkM5T<3r#*Ptpi}K$%yykvDF4cSmV=iqkNSX%%{7 zwqE{B{jPi>;*7i+R_{1X2A1BPlB!nsz>_z&n?>Y=3;!1*B4o=OHbbTL$Faf zdP$+@PKPxuZ--%gvuOsUw9ajZh7rWq+{YD555We@I>8F{nd8(6vx8@j^$p()V)Kct zWJnLiX?jy;z?*M*z+<6pZ-UIRU+GnKJ@-uIV}MShiYjer95&Svw2Mu}I^Eg`s(tp! z>dTkAVXBkULdXW6YYsTdwi@~3f%*|llhJ4b639n|IVM#1x<-iFXnyUi8v_4s$R>6t z?P(fO53i@SS)f!zoS*QLhR-0)!G;Q+?L!C=;C+8_apuvT<>oTywJmI2mK-`NFFC5K z-ER%LpwDDsU+o5!6t%K302zE+m-a2POxX}Lu_&^&TbqnYLeY0=nGj!=>Pw)bVn<^b zlTNl`2H3%1(6eXikRrz7WMTj-|B-Eje;LlIB4Y9mUx+I4x&jPu+tOB#3_E zJ0sd~lzWGav)T?;rthZc-{d--GD-VZ=5cLjc03$@H6MR9r~9&!1csD>f6hBa0c9UZ zpL2Q8VE?Zz4|t3Hzq7q<=KtQ?-+jve{V31U@xN7m@E@x4*bfp7EK`Ty*+X^B-GRF< zvATEmNL}ZaQY}_jU)O6({O8#`TyFpAZY`m`cU9svnkT|m(i?bvy=8*fdN8Z_(umSz zLe&}>teNIoAccX|UaW#f^b*rU)*)xAEPG^_K&SF4%_Z*Q24!W!w9P*&9DkXGX=^dLBeqK2oR(HO$Kl**p zA)%sryu>9EPZY`E)LKdudM<_nA z^75x=v~#;8Lnm&kOqt$O=zA0-frWi#x84xW}wWeYX!|dxwvA7(}g8Y zi6YZIoE7>2d3CmICevE8v+^oN#q>1A?_dxuj-rU)2+6#?j;|Vbn?Y#EsU90!v+m0y zBbsK^NG7lJjn#qStM=8MF_r{JKN{dyFV!4NW->#G&9;Z5Z74PFBssQ_tY0sV&y?+@ z%5{HneAct=)EdtH)(xj72pW#6LS-FT__I;vTNR>K?$hyG+k}S7)UCOGUp7*_QkqcT zz-w4yn`64#)pBU1zUwnlBYi&C)pV?G!>2LNs6C~5iw<)dZZDIFotRv=>Gr(l!z!-| z$R_9j1ah)-FVX;@%&LWix>M%&k~6$%jx*G@d0tK67bBp=9o%!`w@&`Y6ae-K>I&KD zAPlUb8*R{Pc=gI|0nwVT^X|*b@!#~c`hPyKCE6-ppcenn*3O=p|L5Rf_v!rCqdex# zO13-IsZ65&A8?K4Ffn{Uo&7rIYQKI9(;1bVZC5Y}dFyNP*1Ua56S!?xFEPYR-@C*# z-w15PFwtQ(W|U{@gnG>cfrP!nCG{`wtKwhYUp;w@m+e!Ss&}copQMh`8r*d26Rn|M z`NXB~XTI-=5&m@9)0&=|{EyMqFoZcCejxvzuj4Y<7WuzDIxz2lIoN*k|3A)SliD!H z@@7}n+bxqobar;js8h}LP7r*b#u3c*00!a5cNI2nG}MHJLR~GX&!BRN%R(+BM%08z ztKlrJCfTrgfx3~W({?|s+CGKEf7j_!#|pH(Zl$m9G%Uwmj}pilQMJaBm&CTO!rkAs ztphSFgL!~rmSOBU=mQVuB_9c_uAuB+$ydd{5)XKT!GJD8m%f_#xtSd0K7o$R2dMkt zaa_niMjRJ@$X9dr22&qY_)oZC4OR{*{|>J9cVQChd+G$@4O}!q%+Wl+uq(*Be~)ua zPtX0H7X81D^slY)pIdw8{qOtRPx)UT=Mn3_9KkuHM`DNUJT965G62v7g#o5vR3T5M z3?uh~&ydl|hIa>DX4&=MAR={E7Wf3h>^RL9%E_rptBL({Mg@WOHp490fui942^Y*; zD*SY<6jjJ%aD>{@4_OWim|zL95|ZLXGh6+szihI!y5N{~0~7jW-9wh*N;fn!UeOg_ z94mpRP)CND)crOkRdKY9Q%spH&niU;esR3ICu^3N%5sVVlmPVcxcXW&@~s;2wg?^h zQjcq?611y$z=qtCH`(VaY*WmWe(StZTRF+o8JGt-qRk{`U1Q5yTJ)TgLHipzB~PZa_e;-M95Mlc=Mw0=Udt(9tpd;gRRzoNl^m4P2k-Fwq;{a`YAf_V9Dlx z1~J(*|Fs0oD+qwr{l8lNkAs8J!PESIjEBzuqc~1)!9U9@$bDq|-v5;OK_i&>&Z%$B z;(b$rQn#c;bb^1ZR#Nc#0>7B43LqnH*)V*8vWFRDS)OJ&BF0PQ_oG{E=Itd*wMxxR zUNwq^$9r7lpyb*o0*T!ur2DrEIGe-#IGtrQiTrYS3#* zKg5`IJcZ$nWJZA*zQuCvs4jcZT50v&wx)XTH*=6j0#+Hjo-EAuJWcYS2ZXKc0c?~1 zqq_fZZ~N)~*GG9&`;VVjSkCkldmm)-i4(7M{50JlO1|^^9h}=KmOw;R%=pIyh<}u2 zLcY^op3FG$Fjp?1s8?|vN36q{1xauXqrny1T9GF#&#MI9buoL+Td)deYit-;=}VgL z!B_69t=FXomy;0cEfYImPtx^|{4~jbHgq2R{O9iOcJ2PZorB#c`TrOXl~XT2W}F(|66(QkY4KPsBc{Uw>JV(m5NFG0v20+Uv{;V5 zGghoxl~DCS<(|YMAZlSD7SwbfJuj0G?C;P&(d@jOOwdP~2f%8D_m1g_SrAAHCS@Ei zz^`QxqX{C4BFkup_`M$?gHFq1f`fEU0j^*elm!GuI)iip$D}&z#tDLP#KH_?G(#9h zWL<}+r~n&R3);mer{|%QN6H32!(01ODvc3tq%K;Iz@Zc!YQC1P0+Itvg` z;yJa=L#7H6Qie^^7*}Mu-jQ{|xBMc&HI20zxcYdj6*0z~XkGibW6}1ax>?VOPb1q% zWq(g#ntNY~2bF!#17kJQz=#0ll-SGE5a^YZboF1=(pPkiD3wb@HV0X?ZZi?^nWzkL zA`iLkNQO5Z=6ueuQq($Y5suu>HGBn1Llud`|E?_49AiZLl_}P_ z$$Auq^qvBolGe4fq|oY|8nah%+v){myZG0f=!(6#|0OJ6K9iz7vlU6tdRBO{o_>0&0g zVhvZ&N$vBUevH@+IDoS>DWC%`{dx|U23z0&!$}!az&6O|ynqe%pdpkVg8F=t7)den~}Ch zRqa_>V9F0-Bi-f*Lz5~Mod!xq2Km6N0;~l!8m2Es{@CZg6qdse^0u1?yZ>!}XKT;A z|7~aIDgN_Oo;!A<%f%FeS%8x2awD-4i-1h#BrTh7hH}7~8%33xCE$()G$sO+duQ6u zkI?zS?@Q9Iv>H>>S#0H#0)7s&v_Lq`7s|@L=Izz%;NZHiJAmo?voemA#3Xv1Onx*n zTBy<~5J!Zy3!S*|yFp3xsvrhYj*@HHPM%HCccnA{&8c?UatLTN2KlwfYnfjc>!5CZ zv=zpMay)f`_VQktK{PBen!s=oiaSH)&m|%E0D#GyR=TSWT;9ONCJ(q%^OnJ6u3Uhi z%!KDWevWlBttanc4|O$$}yrG7ytACqo+LX+jo{ zGJe);n#%S$29vp3NeoajJXvV1#S=6>1kZ1b4{|U+pX*-~afN6MzAfd2@Gw<(KG~Yb zlO4vS+tLY`1({453j)QLDq^pV9?^%2+J&q`p4W>j#Lt3Ez*XF1ruUK;V5#vueTrzD z5@|?$J4CTqw}B;--Tt63mE>b(p=^wRAqjfZnILU zIrl2WWSq0#MBLXir*t&%S~+1x5>*B!O`^aKUE&Ndx)%7^+UP@L6uX87FF*UsQ?`Uy0}$e)k&chwS?ZX zgPt3umN3HplwP~_J+15iER9z60Jg0EcXqbS`#%o0p5nhA=V9yr9$EiqX~dTE2$R*a zd;RbCIynHcG^*!dR+rOcsm+ey(`j$MYg~g5n+4i%1$7<1X&pAcceNkE` z)`liWDFrAl6CmYkFUQJ4yk#jJPGMBWFc+}27v14Z(*mEe&|FeN`MDenVFZi68*3{@ zN0bzm%SHasoHJSx-OhEiLV?3G3V)080{@8c^m|s)$mHRu(Ax4SDXNUC^2d^+g{3~? z`?jx9!Vk7oR-XCUK@6GN(j~{{oc3l(vh<74TMQq=9q53pJF23HilQLaiIzlWG1w54 z_O+~!jWe#@95gLK?bdAqr^3^D{2#?A;K^f^pR3D_B#od9H2w6cr~Y0YdZ45h7Jsh} z6{j)Gt5o93&n00$S$``&9qhlAvw*b4{~zqu@;~lvKgEAO%0pM1ET^6{_(YtOX7F_| z_vmt53DL_$Hb?4M8yLP*+l3yg&%vI$(UA#KPXP()c^+9dL*{zWBg$l927~PYA7vR4 zEBqa+Jy_P4!$ODPM^by3!z6+^+hpf{Mh0B6RwS)t?cf=Ql{VAHJeSFZO+M-SYl@3f z@j$D|f;VcLJ=I5Lm9Gcfye)GU0Z@P_W!L7H8RZVa7x5-d(pGijP38BKI@U!K7c4$xw!6fzz28 z0?xh_84PVZLffw0Onqb37y??y4{Dn`6-hKubYR&`lef0ZQr^+~i??2_u!VE>YnyCX zjF5N-M5^_h$u-i~>sCmuWy-Db0!J-{zy8GoeFvTNp7ie^9(%T4GfN9If?c*PuFk%K zKEHFjwjbpJAa1UzKwPkE${Y}!+@@{7VRoK|H_feRWU1EYid|yCCV4>Z7~TMD<<{0L z4?Sy#Ya2=eD)kKq@d=EB#W@VqBr3FSB-7Zp6avj`72t`jS?2I!n!{q6#!(%%S)wCg zjAk$`v6E!|dq+yS%pk6vbaT1?oDBbuo8URZaOS$kT{Tqby#S=JpQIG1W^v5On=_&{ z#)sANbVw&5#nd+)3h-CpP1Ax_@~SXVk6ts+5UD3aESL^?F#*MKC{5khrsXRL4WR3{ zPUz%QJBNZ3rrSmWRS@)scj^R??^u*rRfIyU;>#$XbZMkeU6fZ7h><9{c3^Y5`(4+zH2`wr5!s`z#Bty9%>PM^XiuQ3n3S^!8Z@Fj91f`D6D~b zs7LM9YS{|Z`J(m2uW?AT@enbUE$u(6Uy6~i#_HKhk0kRxUU=D%==*7{5-KUNUx@*Cs z_G)AvHlb`eb3gnByv0+P-=YEnMg~m^0m0c1$IM4>pfy`)xsF^b%x=j1wV@I6dlM?oj%zEaIOunvL@L)3-aWbh=-`K^}?1hv+%8KqJ|%gXqN%GhB} zyO8`@U12RS)*@@n9%dF7y&3fc<@)>*Z;h+nRC`ecHG>fo(l!CkVRFM%q&D;HTeglspqggJh-5h2bLsD+vOIA@+m<$L`f;?_f1|w}GynJY{=rlJ??-u_fwKT(m?s4>1K0=vw^Nva zs}jW#O0Gc`gg3!8Ed1Uxa4{vO3ET27Krw}J46ft!3d{l=PEm5b333<*7|kJ-QOf%u ziF(gK0&c1tf0)7W5AuulY z_Fr5w@_q+r?_FQszd1VpC-@x{;`YExZ#3HW3h6jg&Al#_ey%}i+6UyGw5S0!@YI$~ObeUQ!DA76?mllmOm=|d> z0}M_%%*uTg!AA4%%U0 z2QljQ2eU~0APiwqyh%;K?_d!9m?I3|CZV$4wLoa=UQ3lKXi4uJ_PG&TfqpY6-TDqS z*SJAhnb4bV;m^ElZ;g0@;$W!c~%;?h=-vIHTdD z+$i3%Ix>sfL%1v7QgcOHT)6>s9E;#(uLYFkS721`A?qY|f8ro9O<>RIOd8N@*p-~f~bq5Y>RjAw%=4GS>e^7qtjGi7%v zN%Pw@jeZ%*(nEg9QZZ!J`k!gDSjPVrxERVa_8-V^|2ka{j^_Q}o$Z~Gx&OPjz58_k z^P@aGxI^v&qZyTK8#KzwBf|hC*Iuvpf4rv6QaXCb*e(-0v7n3d?TWv3^BN)uxN3gexSeUwk{C({O@5rqpy0Odc8@RgkXc# z0N>OB_rW>DWk&zr=!3i7|6#xx$ioWgDZJg_v7H0zc-sV??+<-{sJ`qg^s#*NOoE-j z3?>mwLIjJAKA~$k1V2KMKp3$b*d}7n8mHg}g*PCbup5L3Tn2Fyq#{z6RQIk^`q2Zo zY4SA&H%WR6f~&N|AT4wHsbI|~t(8sRz~CF+kN!np^V=KqI8Fw6 z3=$M?no#K5Pn%WcbCg`i@SNp98CR7BwmXkI$_|HDC>a)0?~?^+Ra%zPkkF5>QNf68 zKyt_HZw|sw9WiYJZxBj+EIx9Q=78nM!6E4g7KzXLrQ)12ujp7{HAt7su9TgT)8Jio zq`#vXZ8j*Eama6c*(Ch!YgN&N*8b}u`DB2tsQ5NO@o9Ry0rT8{ndfP~(bvIf$F2dW z9ENX#1Wh1I!miRM-WUFN5O1h=Vr>GiK8ba5j*0^2)b8+4Q~Yw4;l)NBrCzhjhqnnn zu$ySi3O-rmZ+OhA=k^M-@vF*S-#?zBILcwN;Xoj!#Q0D_`qSuV4xSGtuirB}0*Agi ztqz;}MPUTvf=PtYODs&c4s9OfAP8|8#3um`XomdSj2BN;jx*B4>0%JzL;u4jxPgmm z;8y@Gl<62LWrrZ337|Ig_Y|s6er@#q4Mu#wPC-3&L7kPqmO;#7c{b{OvT4v`P6YW^ zpHKO&g8C@GE>@7zP7zJut|*@gh zMe@sJZUE^Zn)Syns9z@YnwZ>%352;hF3+^ih z+2a*#$X_Lv9(5o`2|nEI)M%8jCOcaEe_wvgViY1Qx54cin;<>EIJ$Us{Nd&44|@M^ z0^{?CZ{NLrjmIwj)`z*fa*cy+l@*RX+39~CJDu1{4l|vM z&PFSp)V;Tn{xX?&w9zZu^G%R31MvoK)Mjzr=yeoT9#LDg6t>W3qONHiE)i1RcU%7FxE26$3E_)U4mMKpq3nQ!ORZV)oT;XS2)sgfVgc^7!4$ zi^{TLUn>JspvQUX!mi5rKbdx9-0G+qd8cfuTB2fPja*rZ53>$hM5<7ou8yk2p_Ce7 zeUZk(=d%{b+%wgwZZuGpqQNrz{jc}v_`3N(@Z7uK?Si@*tDCh(S8bGcf6|Dbx)xfS zaHlb5D~fifmy7^6#kTpKby$MyA4OzWN9UT|pC(8c18)|Pb(HpH3`UzZgkzSSUDXE1 zG+L4_X>=8%Dg+iaMzHXV_ViC4M#nu+o4{63Kh}Imv_x}B^5gKu=*39&VJJ=IX8_H{ zk{X@bD?ZWevF zttN+HbPvP9K&-uYG;?LMg1~mSy%Py57!lQx8}-DtlpEY)7$1U5i9|W3Gd9Pyyu(v{ zxOQZVD7{7yPT?{YfXurm&L8RU;sDKlM0m>7{u`MQdPx*YD(N9RZ(;EtiKAg-AdiE+ z36e#9AfVsi7;JrKr}UiXmtK-WEw||y%og+y%OK?0tG(HRWAd~@)3m@@fTx2fz`^}` zLgYqlf+3z|4!Yoc&15N9BRF@nOmd7Cxm?AA@{M6ev*`SbluSX6)oy3Y z5$r0!Nz@^z#x{jO23lHT3C*yD|3fH!l`iVppeGJD>*S1qJddbaQZGf8)B4s(J2D~* zoVe&mZ9`17%b4n_W$8ra5ED-9EK#Qwy_i+wC0c6CeJ5IXxpT|BR>}LGk8ui5?~PXS zG?Cza*DIQC`_>ZTGGQn$*A@9@3$yDjoZ#N>`gz&df~~)1w)xE|w z*&)5i(7oy7u;J@;a7FGgn#I$)$<*0B$k5q1(vcGD+p8P~H?=RH+7|$y`vld$_ftFn z#}c%x^#EW?{^#ATgMIV--|qg?{U49=bUptEj3a#yaRiX(26})qfCl8+AwZxX;`^hW z17ywbeh|=Pm;EGQjj80%i$w-k-L0XIbIXQVqu;XR4fgH$iaOw4FzUNA_PrSmS8Z>; zLNf+x0xNa7a1y{-nw-OigMZqcWrq>1P^f$J%h93KR~sv-vu~Ev$WWWJMt+?08`;iX zVGAZ9>J@JHqeO>bZkg3iCAmqF%VQT6dhmos#23Bap;&kN?CRp}rAs)N=XGN*hq%lW zhXn^7Y{59|v`o}a-HDF6=X!Bw4@n?{#*}_2!7!f$A-wx^r_K>Bc(lPP-c?hY9lS7> z$1%ikgW}o*)>idv>$n?b&`~10M~OHYdSf!LgY*7#TR%^aX8%vq9Q{U?^6`f(jXne= zPKz*Dc{$K>|HEkeV9UJ!Z*ORgPlw`h-d?D(Taz3yY%FVE?%0o3IUiz!=(c7v7lbih>3enKjCIxWR8-?&Nn&)HoOOl~ z%)Du1{upd++88|sJNBlr<-|F}Wabphw~(J~RvHSlQO@$h9dg3?TEr+btLQ)6t$nN- zarnaPua%FI94jYx9h`jer#)`fZH?kNdZT$?OJC5rWYscZ<}>Rqn6-{$(}0baP1$aB zdyEpq3e>`h?~hR#fOfRXTv-RYYFs_WnIaG5U=rkvxNW2ooG!!!Gi zNmQj#Z{RG=7Z2R71|)|E_i5UU0`$hA>`JA7@ zAz3GEG}mR5;%E-@;2J8kLV-tfq3rLr9H8r{M&(4>RNB{naveU{qxt{%H5Kd4{@d#R zJJ>of^Z)K1Jmvp=oaamN|M3fF*6r^z!Ty>2d%W%4{CPD-)%|yMURwNhYd)XJaXOCO zf1ei3r#D%|c!v;x7IV|-1LO2H`n*n1(b4JklagzTT^M9Jpy|l!(}fb|q9R;7N+J=o zY$eH^Xvt0*I}qAZSi9Qkklp4)RSmn!sdIJhil)OMo141z(ZVC<&2l)v3YqYrnL>4x zu}<_%TC_;|GR7#2-7BCx6P2h)_yb5y#g>?r1SytV= zA3C0(;H+N8%`6o4GHzvqC`(PWQLnjwOVP8>&{1Uv(O^97U7W%8StR-7D|pwwRR6QEwNf3aRFXX@hmiYu!gt zS&~oC5nJ7eb@*b`Y8|X#O02;cWk#2&(z?_attV>bFsnx63ZQ5bmaXlb-EJCI?{GH> zmVr731kICrU7vcrui9Lz%3P01$#OIc@!<3p({nvz?nV$yX`&Y>O@Y@EicAiRM| zq|LC0%5tF)z6n+%r2~KNkprZiCUz5IIlF@S19OR`1X&A3_f`8Bug@PUZ6u5?UZ0Cs z&HgKAG}tnUB^#^(r~m5W^?9Sm=qyj?D7sfh?iI8$j-^f}e;iuYZ;cfT$+biF=fG0i zp#&*M_|s*f3D~iI3j%8rO*=g*%TLoPtLGQT^3TIG2d7w>&*OtyVu)V03{h9MdRC;H z-|2xnK+X2fGsiyJdaK!b4a%LUjTQVTTIz|oDYy;C#d!w9b~BNIY48}}xFCZ|1;>Hw z4v-cw%lleX!~~Ty5rb(zNxj;XhrwY()tXk#<|eO4QwE0nBxk)R8S8YubQ^0=XTQGK zM~nZ+U_L`dLAv|HFX`2~;y_yBKlb;x_l)?D{k_rdQ~bwcJYP!u$5}P>{yV)|cNmBR z`kyHpL}x*_pb!_^>aihC22<2IEMOAC2e{?#ztgK~X}!K>@qedRjmzR65uTc<=ayc4 zDEUQSqXH8(PJO>D9bKpLG%bP1^VqRY+cL*eMP|A>94JJnd4d0Wdf zZ|mO7+tQe~RKxBenEAL@^XiB+sFaFgAhYk9AI#jVPXc`{0==WKHfiA<$-O&DQFp3S zmLan6`u;f#^03P7*_QTnDJ)$Qs!IBoO{Ln6a9u|VQSTfN>=rapOg&9m&yA^;<#|>0 z3bh&{QEN3Ts@`*WpLBwZTefA#&+l`^b^|reG_j6$Tj>%V+KIS(I~*ks>ZtGU#k2zL zdTG1cOtQmS(Mmc_XR{!Q+D-#k=1fN$WEtCI37cbiTVpvJV;S3`yG^l-EwO|RvApfD ztj*BXR#@RkxYMxaBhzhIb60@U+;7udSle9CyNv9%v?CmOqcuLfLdme05-mLlsji-; zw+R@$1AF@~#(VoO0B7jGlKK}i?*3(7uIxBIZEdJHeUhcoISk7j;l**9VEEC!vZx=e zwit&saDEWS>FrsL<|u~O@MRGOF+D3PE*8^(I1W;OQT)^y`EBuCo|f6Vxi(>75BK-? zAB#o%`}+E5fBV~Gu<37q`UqV0J z;x=TXs$o&fOLSep3X`g30V|3vy&mP{G_L#vaAVPTEZX|8>ph7^!@AniEVKf#t;-&9 z|JU6AXI4CBUJ!aQ)9O(GE%!g{9c-EV{|5&X~>L-S<3~2{G!71 zaxy_5oi}#3q1^mKv@9H)73O+FRtxDv*FrdGkTD^2GG%QWExqf&^X5SKLA1fqU0%8SbL-73SrydnNn_xv^ z*0gTa*MDiW?%aQWXwD-`7WBjKP*>_+&6d6U5FiH(v6Vi`x-)RI`A? z-1(E417F~^+nwWT$eYcUOSyA*GJf}}r#2(#K}3je)BNTOm=yGBoEZs3WfHbb zL+>~)3k>sbQEseyi9kshOIDmbop7u+?==+SOw_4y&FY&VDT7$?DO#~bq6ZI8)5MC4 zzkd=3e^_xK$G~dB;3$d^AuWiH5hkrnWvhUYI2BG$m zMSc(qz7CeQD7{T?gFHGqdu1;`9z^=g{h2%ing?(Uyg0amap5%<24I3<9KC~+W}r%0 zmS%efaX=X8Gc2_7<^2`GH}^frkAPGnQ#0Se;G7s?>=K7Ce^tjpzpYmq#!&UGy#kL6*xrtJ@TM5~z>4)csMnd4b;i$mIrbK7Yn zT7_x|<&c{|Y*ih#>O5*tZ@4lN>pbb0SV?L#jX)DqYu=>$Sf+|rqY|B1QTJ7CORFMX zt*oY#W($i(B5$;~mSvHsF(Pzdy;dR!Ls%4VQu6&B45A-%gyEYYS=2`#`VEf3)^~Oi z)hL(Ms4Qqp*G1?Gs;RD=*nGQ4$;jil9BUXc7F&WRWI5|XM(QFJFSY-<{;8pB50jEb zo8qOMh-(9~od`E}S71~tcCBJN7ubN(BO%nu=jjRFTj|hdt^+@x&YyQt_Q$gTctHNW zi~#2~lOmel(1&xU5@cWK^p;AP6JWm?vIYT7R3L|kw3k%jvRX<*ITAN@>M~oHi62TK z>TB%Q{aeB6HpJgzC+7X z$tryrp0)p|Cc~33x1YMIgg7ty)9B}BSDdlzvZuS%myCQ4cfLj86vZ2w92Rnh4`6TI zVR4K=L-^N_-s6r0DVx^Nb~!QE-h4@>ivtSkHYO|?xj+!{_3!;wp_YVA_tRw}Sw!u# z_%H_E5YMu$`kGMYr65J9XRC?CTZE?rit|C~+^*9pN?cGt-U-TKh>0j~ZxM&~Cv#ld zvVql;gvkzla$r6=FrOTl59`3x&ib&vZ`K@hO9fT(4(J>mgRgnm`_~$csu%5R=|+2- zghn~$L;HGb^c^xjXh%A9BrC0$_)}XrsqIx9Z_f48k!)deIbtN}qoVyNRFg;V90wRq z%J>{Q)-Os}EX_bw@CpTu?y0wP3_Q+VWodGx^q;5opRs-+OPA4i$g>~D5m)DM_+QKd z=kY{+)f*i}z1qL`3UsX)mRH;%gi?Oz_o;;+^a4MERH>;OfXj-R&9u{AuWgf!9&*85n6(~aP zHv3z<@yk?C|2Dic2yf+M$76gI_iS(P?ZfVV{!2Um$M0KQ_Zh&J`(JkUcWdYW4t5Tn z&i_5e(|rDKG80Gn9`7U|zZ-PjrvXi{f2I?GyzSji1=biavdj>G}6Q+Naolt&{FNoCk1%ZhU@0 zxqnk$!90N&7CuUaXOr9iMG;ORU5Fs*ioql;lgQgtnBdrPY1DOdmb{{dUY>K;sCbpkgBV4e*?Jd%uZlKm e*1Dhb^gKOJ&(qWO`Tqg{0RR7RMOWMacme<|;WP38 literal 0 HcmV?d00001 diff --git a/stable/home-assistant/6.6.0/ix_values.yaml b/stable/home-assistant/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..ff02334ac4 --- /dev/null +++ b/stable/home-assistant/6.6.0/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.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/home-assistant/6.6.0/questions.yaml b/stable/home-assistant/6.6.0/questions.yaml new file mode 100644 index 0000000000..2d80029e16 --- /dev/null +++ b/stable/home-assistant/6.6.0/questions.yaml @@ -0,0 +1,683 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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" diff --git a/stable/home-assistant/6.6.0/templates/common.yaml b/stable/home-assistant/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/home-assistant/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/home-assistant/6.6.0/templates/secret.yaml b/stable/home-assistant/6.6.0/templates/secret.yaml new file mode 100644 index 0000000000..19f769cf59 --- /dev/null +++ b/stable/home-assistant/6.6.0/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.6.0/test_values.yaml b/stable/home-assistant/6.6.0/test_values.yaml new file mode 100644 index 0000000000..14c475e2ad --- /dev/null +++ b/stable/home-assistant/6.6.0/test_values.yaml @@ -0,0 +1,83 @@ +# Default values for Home Assistant + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.8.5 + +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: emptyDir + + +# # 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.6.0/values.yaml b/stable/home-assistant/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/jackett/6.6.0/CONFIG.md b/stable/jackett/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/jackett/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/jackett/6.6.0/Chart.lock new file mode 100644 index 0000000000..21cd1b0d5f --- /dev/null +++ b/stable/jackett/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:47.922198961Z" diff --git a/stable/jackett/6.6.0/Chart.yaml b/stable/jackett/6.6.0/Chart.yaml new file mode 100644 index 0000000000..c4d3439024 --- /dev/null +++ b/stable/jackett/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/jackett/6.6.0/README.md b/stable/jackett/6.6.0/README.md new file mode 100644 index 0000000000..28193e0cfe --- /dev/null +++ b/stable/jackett/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `jackett` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `jackett` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/jackett/6.6.0/app-readme.md new file mode 100644 index 0000000000..7e8f54afb7 --- /dev/null +++ b/stable/jackett/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/jackett/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/jackett/6.6.0/ix_values.yaml b/stable/jackett/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..4b658dab65 --- /dev/null +++ b/stable/jackett/6.6.0/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.533 + +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.6.0/questions.yaml b/stable/jackett/6.6.0/questions.yaml new file mode 100644 index 0000000000..9d45ccd255 --- /dev/null +++ b/stable/jackett/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/jackett/6.6.0/templates/common.yaml b/stable/jackett/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/jackett/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jackett/6.6.0/test_values.yaml b/stable/jackett/6.6.0/test_values.yaml new file mode 100644 index 0000000000..72ccba7a22 --- /dev/null +++ b/stable/jackett/6.6.0/test_values.yaml @@ -0,0 +1,39 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.533 + +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: emptyDir diff --git a/stable/jackett/6.6.0/values.yaml b/stable/jackett/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/jellyfin/6.6.0/CONFIG.md b/stable/jellyfin/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/jellyfin/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/jellyfin/6.6.0/Chart.lock new file mode 100644 index 0000000000..26122914c3 --- /dev/null +++ b/stable/jellyfin/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:49.684397302Z" diff --git a/stable/jellyfin/6.6.0/Chart.yaml b/stable/jellyfin/6.6.0/Chart.yaml new file mode 100644 index 0000000000..4f436d4e28 --- /dev/null +++ b/stable/jellyfin/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/jellyfin/6.6.0/README.md b/stable/jellyfin/6.6.0/README.md new file mode 100644 index 0000000000..65cbb3921b --- /dev/null +++ b/stable/jellyfin/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `jellyfin` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `jellyfin` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/jellyfin/6.6.0/app-readme.md new file mode 100644 index 0000000000..64d3430474 --- /dev/null +++ b/stable/jellyfin/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/jellyfin/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/jellyfin/6.6.0/ix_values.yaml b/stable/jellyfin/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..0dd72de44a --- /dev/null +++ b/stable/jellyfin/6.6.0/ix_values.yaml @@ -0,0 +1,22 @@ +## +# 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 + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] +## +# 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.6.0/questions.yaml b/stable/jellyfin/6.6.0/questions.yaml new file mode 100644 index 0000000000..ec8132fb84 --- /dev/null +++ b/stable/jellyfin/6.6.0/questions.yaml @@ -0,0 +1,676 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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 + # 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: "Enable privileged mode for Common-Chart based charts" + 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: 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/jellyfin/6.6.0/templates/common.yaml b/stable/jellyfin/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/jellyfin/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jellyfin/6.6.0/test_values.yaml b/stable/jellyfin/6.6.0/test_values.yaml new file mode 100644 index 0000000000..8a0824cc8d --- /dev/null +++ b/stable/jellyfin/6.6.0/test_values.yaml @@ -0,0 +1,29 @@ +# 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: emptyDir diff --git a/stable/jellyfin/6.6.0/values.yaml b/stable/jellyfin/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/kms/6.6.0/CONFIG.md b/stable/kms/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/kms/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/kms/6.6.0/Chart.lock new file mode 100644 index 0000000000..b2a790722b --- /dev/null +++ b/stable/kms/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:51.443212289Z" diff --git a/stable/kms/6.6.0/Chart.yaml b/stable/kms/6.6.0/Chart.yaml new file mode 100644 index 0000000000..a8de059b68 --- /dev/null +++ b/stable/kms/6.6.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: minimal +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/kms/6.6.0/README.md b/stable/kms/6.6.0/README.md new file mode 100644 index 0000000000..afd7f80f16 --- /dev/null +++ b/stable/kms/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.3.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.5.2 | + +## Installing the Chart + +To install the chart with the release name `kms` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `kms` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/kms/6.6.0/app-readme.md new file mode 100644 index 0000000000..79791f4322 --- /dev/null +++ b/stable/kms/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/kms/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/kms/6.6.0/ix_values.yaml b/stable/kms/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..05f3f76e0a --- /dev/null +++ b/stable/kms/6.6.0/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.6.0/questions.yaml b/stable/kms/6.6.0/questions.yaml new file mode 100644 index 0000000000..e5e329bd0c --- /dev/null +++ b/stable/kms/6.6.0/questions.yaml @@ -0,0 +1,395 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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/kms/6.6.0/templates/common.yaml b/stable/kms/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/kms/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/kms/6.6.0/test_values.yaml b/stable/kms/6.6.0/test_values.yaml new file mode 100644 index 0000000000..8aabb450d9 --- /dev/null +++ b/stable/kms/6.6.0/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.6.0/values.yaml b/stable/kms/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/lidarr/6.6.0/CONFIG.md b/stable/lidarr/6.6.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/lidarr/6.6.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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.6.0/Chart.lock b/stable/lidarr/6.6.0/Chart.lock new file mode 100644 index 0000000000..e763e29592 --- /dev/null +++ b/stable/lidarr/6.6.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +digest: sha256:bab18001ad56c9c6a778dbcec66f1a3a4537062508db8bbdd54aa69eedfd19eb +generated: "2021-08-12T11:48:53.228006712Z" diff --git a/stable/lidarr/6.6.0/Chart.yaml b/stable/lidarr/6.6.0/Chart.yaml new file mode 100644 index 0000000000..efcea0a08c --- /dev/null +++ b/stable/lidarr/6.6.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +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.6.0 diff --git a/stable/lidarr/6.6.0/README.md b/stable/lidarr/6.6.0/README.md new file mode 100644 index 0000000000..55ccbc9564 --- /dev/null +++ b/stable/lidarr/6.6.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.3.2](https://img.shields.io/badge/Version-6.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) + +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.5.2 | + +## Installing the Chart + +To install the chart with the release name `lidarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lidarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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.6.0/app-readme.md b/stable/lidarr/6.6.0/app-readme.md new file mode 100644 index 0000000000..399c4eb028 --- /dev/null +++ b/stable/lidarr/6.6.0/app-readme.md @@ -0,0 +1,3 @@ +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.6.0/charts/common-6.8.0.tgz b/stable/lidarr/6.6.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/lidarr/6.6.0/ix_values.yaml b/stable/lidarr/6.6.0/ix_values.yaml new file mode 100644 index 0000000000..81101f4099 --- /dev/null +++ b/stable/lidarr/6.6.0/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.2248 + +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.6.0/questions.yaml b/stable/lidarr/6.6.0/questions.yaml new file mode 100644 index 0000000000..222a3769bb --- /dev/null +++ b/stable/lidarr/6.6.0/questions.yaml @@ -0,0 +1,667 @@ +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: 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: port + label: "Container Port" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + 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 + required: true + + - 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: 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: 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: 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/lidarr/6.6.0/templates/common.yaml b/stable/lidarr/6.6.0/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/lidarr/6.6.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lidarr/6.6.0/test_values.yaml b/stable/lidarr/6.6.0/test_values.yaml new file mode 100644 index 0000000000..46372399a4 --- /dev/null +++ b/stable/lidarr/6.6.0/test_values.yaml @@ -0,0 +1,47 @@ +# Default values for Lidarr. + +image: + repository: ghcr.io/k8s-at-home/lidarr + pullPolicy: IfNotPresent + tag: v1.0.0.2248 + +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: emptyDir diff --git a/stable/lidarr/6.6.0/values.yaml b/stable/lidarr/6.6.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/nextcloud/1.10.0/CONFIG.md b/stable/nextcloud/1.10.0/CONFIG.md new file mode 100644 index 0000000000..dddbce2007 --- /dev/null +++ b/stable/nextcloud/1.10.0/CONFIG.md @@ -0,0 +1,9 @@ +# 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 Together" guide: +https://truecharts.org/manual/linking/ + + +##### 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/nextcloud/1.10.0/Chart.lock b/stable/nextcloud/1.10.0/Chart.lock new file mode 100644 index 0000000000..7a76e3740f --- /dev/null +++ b/stable/nextcloud/1.10.0/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.9.1 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 14.8.8 +digest: sha256:2c687275c26bce74607415ca77f355ab6cd9571c4707fdf1c4a7efd17c553692 +generated: "2021-08-12T11:48:59.180638703Z" diff --git a/stable/nextcloud/1.10.0/Chart.yaml b/stable/nextcloud/1.10.0/Chart.yaml new file mode 100644 index 0000000000..6ebaab48cb --- /dev/null +++ b/stable/nextcloud/1.10.0/Chart.yaml @@ -0,0 +1,39 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.8.0 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.9.1 +- condition: redis.enabled + name: redis + repository: https://charts.bitnami.com/bitnami + version: 14.8.8 +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 +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: nextcloud +sources: +- https://github.com/nextcloud/docker +- https://github.com/nextcloud/helm +type: application +version: 1.10.0 diff --git a/stable/nextcloud/1.10.0/README.md b/stable/nextcloud/1.10.0/README.md new file mode 100644 index 0000000000..7bd3a68482 --- /dev/null +++ b/stable/nextcloud/1.10.0/README.md @@ -0,0 +1,57 @@ +# Introduction + +![Version: 1.1.8](https://img.shields.io/badge/Version-1.1.8-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 | postgresql | 10.5.1 | +| https://charts.bitnami.com/bitnami | redis | 14.6.3 | +| https://truecharts.org/ | common | 6.5.2 | + +## Installing the Chart + +To install the chart with the release name `nextcloud` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nextcloud` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- 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/nextcloud/1.10.0/app-readme.md b/stable/nextcloud/1.10.0/app-readme.md new file mode 100644 index 0000000000..ea79671d3a --- /dev/null +++ b/stable/nextcloud/1.10.0/app-readme.md @@ -0,0 +1 @@ +A private cloud server that puts the control and security of your own diff --git a/stable/nextcloud/1.10.0/charts/common-6.8.0.tgz b/stable/nextcloud/1.10.0/charts/common-6.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d53b66076df74a9e2bc015c9652c8732a91566c GIT binary patch literal 23779 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 literal 0 HcmV?d00001 diff --git a/stable/nextcloud/1.10.0/charts/postgresql-10.9.1.tgz b/stable/nextcloud/1.10.0/charts/postgresql-10.9.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5fe538e4dfbd1de86d0cc0729042ea7e06da95df GIT binary patch literal 52056 zcmV)iK%&1NiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHd)qjYD2&hF`V=@y=EUw}O0wfP-TH0zw~Fmf`)S+JT26ZR z^!95*BqU)%5o`doqfYXE_V>Y!1b7oAUy{s-&rC-qfvQ5GP$&R}s+cf7rHK6*b`NKe z^3DRz!@u3{)9dwm2mAZ--(Ihm|95x)`QG1l_jh}HFP`te-0S_VxBLA0%e}vW-aXS% z`Xr1)`nTSlapfELojfp#2!|Y#i1k|l_>iM1p^H8^f*g(^LoFEN_lPn~qCU9UYr!~9 z|J>c}?Cy1XtpLR+3Q*)@#QH4{L~xG!z$f!LiCO?q6cdKI1UutAX8ms07sAFmW6UEs z#~q){yZUzvfSVLS=VRw%D?rSrIOg(|lu|Gu6bzN2fzrB@jsByJ&Hov92kN? zHv!CH1gB_@A`aMsaWroMu=V!h==IrX8{A?(6ZO$No2mCM*6u0IOM;zh^Q3(yrAr3_ko0tD#QQQJr0AA}3&B~*IV*ft^#00oGq#Q?` z2~8_FA6n|2MK~h~^_7Ix@LT`u1;qb=sOL1?RJ*;s?PMQ1gigDyOz3)@pE|p(uRSs! z=PBs_koX_&8OIX+-+TW2c|rfbc)8L4kMTU9>VDbTZ3TFW81Dl%gL^Ly`n@37KiEC^ z5xxv|$LPhL|8lao|I<&C7n7FY8qFDJea zC#@-p5QQ8CebC~8524L;@-`(5Y-|OYa|H1R#X8b?K^W+Km4~Bd(-GetF8N(37kit3Qh_cp`C+6jm zoJ|3q!zs#@7={Qkv;!i-5#Te(0iR(8ZgCg_a)T(vfq0J!m3IJ+{4fb{GzGRE+7X7u z1Wyx+0>BAKn5sWjq)0gxhz}D=g-r)_E7xHIjjUwO*=>NNl!m@iDl zU(rH+K8JH83mDLLP4N34E#PoDL+Ccnve2@hW?f>L|Cyn`W#o;4>tdDb?Z#N%F+>IX zZ7hj-SB}M0S&9XH#Ej!;su%(UvjCX@^V;;j7JPT517gUSH0m8HT#zfYbEv`DC}1$h zQHrRdwWi`yTny10?4u!}+-ZmS+Xk)6b;O73B`~cuO4@*n?49hX@&;HnJF(k@7O>VD zLcZ<4jR0C(-x);iw+@nEgDUV_g4~#rG1Bw+Sd?L^j+i6`azV8CZ3^ga z3{aE~D2=8MCNN~EjvxctwqrG(f? zjfw)U5RV+tNCih|juWD)pub z4p3JjVBIG%MV{a%j;5Y^m(HIlseNFhQkdSxYF{>70A`w~4O^k6^M<0fJWYSj6UId+ z%wd#B7(PW(RqFvNCyf~TsFQ0KD{mNw>;vnj3k@$OftL>Zu4svBoEKAk13B_cZ+EqA z{1MLM&}i9s9n&~2SjDovva2{vkm%I~Nx-cXzz}~x;tNAaPiZ)s5IR>T4~alXrm82v z2?so(5d*IWqhEx+?h*>l2WKZrvZrG9)ohb(Gz7`7Mp+9u5$3iow3brh^Nn0g3=y4U z#?-8JID^qtt=7nGgsA9P@kgwdAi4^elO*CX!I5n1MG_5|Fr)et_J)!q7Ne{P+)?F) z&-p10JG85HsV}KxhKe|=ovL}rAqX%8 z;`K!Tp_NBK#IhLN68fRZq*!cKPKmocqRV?uLtNe740@{Xo5N41fhHJ)R%!~m(Tvdq zsWpo<#cfY6O;H#HwGs|971@jAzP9_zCYADO#T<38845#LO3f|Kw6go6CqFHjS?+yq zxzE`}v&o%d6nzHM8nes#^UK4}F!?#AY?f&-&p3=L%r!ZY9U(uVm@mK~i8%Vmmka@> zi|f*zR22gGpOYiGcOfSk2af`KPB`kTb;OL^MrNXr3V1@o08t@p0g3daSAk0b6RKC} zSpi{;LUOwbxeCN@GZcZW378qdmeORl9YGr=oV0iH(~DdK2?fmw@MpI~%8UYRw@54m z6HWp#ht6??0=ZT3zo%l-+W`p^6SH2$us*oP0q~ORzWnzM_ze7n121TUHt;5UdXq#E zBryvL}EEZo)7m zwk0FfoG;ZL?QE`g zGCTfkP6D@tQK~sGTD_*W2IyG}0p`z8kc5cJ-MDuW4S*p>G=dyupLYQ2Ogo^>IH4cf zox(b;QVqyWHOx4oo<38zG{ZazIgUf*rFi5*uH{gb+v*7M1o;a;M86R7fu%#uS}$3~ zj}p7NXo|tA7(Yf6LJ=SozzIhbFb*kK2AGRLZb&?N0)`|g>WMomL(^6A75d2SWo(5s z7(35=27X3NMNMs80`*@@KgA@F>@EsSYO4u*yaj*;A?DcLt~`UN)}9Z_m9*5To;{fm z)G(?NShY&ew7J~ADz9J0L2CdS9x9oVTcBXz`(kZycjjg9_3o+%6=*fG)H{vMU0S%` zit?ri)zH9}n#gkW>(j3&TnL*&4?gU>hQ%b^^)|TV`GHZt4Dlvwh7u6znSxYe6v1F& zA1^o!=!g}k{GfEXoaOXhACq03QeSAhYzdZ*0+LE=8@!S}0qsoI9weN2awRCyAwlV&)9-TUO^tbigiDMAtjunxZ-3=nBSh zxUl}drI;h}cSw8~>Wu+1nOs*86D9LehPkw9`jyO6fSOOU3;FBmqKG(-bFbrk4drNvdiSVC^0m}?r2-N!&xS$$Ae+F=5+!43~Uyh#) zZof=1Cvs{NrLGdSxQNr^JNY)1ZUAiN_rY$-#$}14qSRbJbq=~Ti8!7kPtA1REety| zJ`bO~d3WgjHaPW8kKZ4krp9ny;QOFWCKIiy&);4i_rVDVekwBm?ogL%_)<|7wln}a zDd~gx;>vm_h_JgiwFunaDQYC^;8g!=a%!D06o6Z?s4F|8H*;+I?OH79^b*O33}qig zQ8^7t1jY$qyD-13;)>cGhh%KLfiI2+M`y>KdGJKdr_t1do^fgL7MY}_cN{GGXC9sFNmgXiPD^eaq;M=1T@R|% z91*j%1uP6;Tnc3@b(B;yYJELJkudS)j0H}Q2E&fzva+Z#0~Ou{a?(YesXS82`;MqC zQvL@8uaZnI5{3*je#RjJ%D}ezUU#)bJi+pKgmGaoiN1hLZaksr22&ErYZ5n*VllA^ z%sJq73cAiY>#-DO^`LT`c&f-h!Zc4k2r$(>?Q$I5fPvZQ z7J?WA`gpLcKjldLS=c#dYgr1Nf+PO`z&L^b{PwMS0hA2)L3<2oJ9UN;HC#^^^ZGrc z?C>mGg@QwAqJT3P8#N;Zu9nP}3$3!#P9n^Mv2^3Godx7ujRMkXBH*(J@4k$fCG`FV zLm_F|iHx5xPUb)?8Kk9LvZ2Q*j2KkDB_WwUQezaQmCZSH_7mOh$LvGPI(^c1Yi=hp zJ6l#-D!@KZx5VKbg@@9~7h>4CMw@a-mi`k|aX;$M_E(G;axTe_>?eaN;nH(XXI8_^a69l=aCC`22#zZN7 zdOd6J1Zd6-*hp~V^&;IC`fY|JCo)XcY!yojmyvRN(qW~L)rjyq)cVCQgmGzH$sgGc ziP9t*rM6`q6b)cYPvuLgdFiUKTX~?RTLe}k^lqtzI4a)D0ZtRf)rXnr zZS!81l5g@Q=8Np+?}Ewo-R@6&o!x^UJH1Y?ySESK!3)`2B}6#fcQ~mE3L7T-B}Y@; zq^EXPE{hjps%B8BAPRKpQk}eel_s#o)>R>W*>LWwZ1R@@E9Jj|gC7j`$2m(~h*5UC{1y?|iH5 zv<7^t6gCG#s~lfl*XsQS{ZA8ez!r|=MjFWcBp6^QVpw#e?Yp?0BVBauEukL(42g79 zv}KIY3U;+h2rg}sJjpbon6t3cT`n=DeMEl3QR=|r$Z{)#Rf;6tXsSSzZYVTFl-~~; zBmw5mZu)xWmjHt!v6N`Z-|k7MeANlbR7_QpFQ;T`CY_mnm+lQ)<;u<}Q(%XB58vFB z(C|Vs^@MR1Bbr^C5IhOVRE}p0j|HL@)e&ZXH8zq6fog)!g;R|(p3069ToSlk*aEIv z&&bU)Rn&x<$PQ667=@$MJd#7mp@1rTMgLY9beSSdUB%h`cc3f&oZ;vUF$SlI0sTYL zAEFx+O0Ouf`pT}*B*u@b1wa8pA0SEzE$^aJ9HAja6Z{cenhQt5K9SgPgg~r5ZkbgK zo)k{U9WWJK3(52n&(U8bLLmKN7TE%sSWz(!=dmr&rex*vcO+M#LyE+r;w!3sGhuH`1cq-dcPRSYkXpgKj_z};OIpBoD5LnXd z;&N+MHq)FgWMxnB9P<>5J<2k#8db*}0+$?C?God-oOxC9uC2W^fkcxy^E-{YC}XphzdvowIN$mr5W%;xjmeNZd?$m zz#l4~i>h(JA(s($#E2mY2k8qrut<^voiAT4dDGb#UZ6R-K|kYAZgL!!3?a3V&4ryP zl`WMuz=V>yR=3&8L@M_uPptECbyz5rncjwT*FCK|a&nX_&rYfJ-%#kIA)=TBBjl4P zV8HyVeOlzIUQIl@8Uj;MOJ0mz$%RE&OhR9?2mr8 zE6kAJ`vT4%U9sc~qTllX^@hXA5Wpayh)F9l(wox)rlLlc>f|fO>f$oxAkzLAQNE7e zmJ!+na8dxE<}d34E|ty&#@vwW)9k!Vw9nWGN9WSK#!*mcQZjLYs(rsZ!4%v(ItLfR zde@}{^R;spr2Z_`t`a^jbh3bYbS^3rbz*E#iGKyd$||G|5nyPaC#GnYfKZfOLCz@{ za8B`9+R_BfA@^qhPQ}85=eXjussiFf4sU%>s#>q!=+jln*?_2HSMmM-NHX2Mm;!8n zhUUmz@{(fAt_?)dyivXe4_R7#H!XU3Isz#2=^{4Eby2w7A%%w8BvR69ww$ud=CN%z zDaq1*D3LIK$lkU7xQgA2>{eH}ZxrLqJIMn52M<#n;+$5d-ahW0g#J+Kui4>?7=d3? z6`8tZiucB(6Tkb$f9Ygc3dc8JNph7L!>(2D0I*K-<>y*IYH4I_oBPzF@&P_RH zagH^+PMOX_h8tdlxR{f0G&S$KPXs_ukYhK=kXOkM`zpPC%|7Sfpo^z|qPg4jWspOQ z1t&wv5im9^IT?zzhRqA<{9?21+Pbru=crSW6J;VsPsQFu{eoD>+b8CeqG_V%4Ybg(wYZnu(dye1&BBwFuuwjCq!uSjqJWKO{-u=~ENx zO)y2bFbum-C}NyqpL-h2giy%@!vilT5>K9hs&?uz>w(=~NBytY-PqUB2r}kFAdid)zM;Y8lVFK6P0Nr%iY%XVx>x2EXYvn&Cud(o%w1a=w$S`9G`eUnP zCrR%dsb%aUbxG*T8mzm&d$4W7LP&rX$<;u!LiSG$^7+Aw{cY*kqkZzsC46DAqlhHa znHZh!-krLk9EK>A8;D}9FhlSLhmyUm^wv;r{zxwq<&0D`kNM&Vo4cG+-xz+XGn8D1 zo1-Gp<3ri;nSQt~piy1IX@cZ05^LU$Iv%cv)&8rZV`9=`pDw=co0Q zq(0bvgH!+7>}|WdR$Xj7^xBF-anInWK?=+zw!5 zN4aJzm!+NbI<7n^P@dYN`#Tppjt`-rBZHZy+_U*om;!AM%0W1Ud?sm&q2AuiH9?jV zgh~$;>G3Y-Le*`lqocx-k6^;m5t||__4cZyktO4lLY9oPXa!ojGqs^F*AN9t`{rZ8 zvm4v(is=Z)2n^p#PMiCPu4yY52V+HV4GW!+bV5FKJUUMh%E}14MlmA|C{~l z-_siUmTuc?msM)Fck~33UTHFSUZp)D6c&!ADYPWg6o4%&)WfzADUB#f!f*#fq<~Cb z6b6`?@E;8E9pKLhNw@sX+@4}av;)A_G~N^9JNRw1lg5|^`aA#t@aEU!9q|$TZ*`ZK zLqCfpQ5#0j?iFProsj^kP8rC*fp}5VCBlr(Dw=3V7YGKwQOwcX$gfsLQsLVDe}Vo? z5X;Bz&Y=^v`rt>cSW8<{vl@`6Y?;=qTLL(wqEHSYFfu=~{R2yR7UC!hAxZDdRjV*< z1sE)8fEbD46pm4t1&xu{DEeT&5H_(~LF-EHk#Q0SkfRZ&kfZ5BEq&d0c{a-p*GUqJ zc~lH{%$c-VnEj>bAlYooQOuo`g!1At)8H85-6x7Bk13+Ca_n>o?WfD~3nIflypx|r zL05YYwY6o%(#kw;a?`AO*@;Oon5fWPGBSm`tTymS0H7`fVp*&MPAm(@Kr@A|b##D| zdtr=B__fd$*E2|i>s6O|>b^IQrXIRcP7+*b#O+tA~|DDYs!ar!3P zEy%UMs3R;+MI1NemW}J5kYxo%^nswVFrOQV6j<^i^bqY3|1A(KUgoGZu|aZuTr8;+ zM@cW2wMdTAd+cU2>~+A)M)ZC_i%N1sp-F)#k!tTow5HKkRJ2?9`vY3^LEG&xw1+(S zmnSUGwjEkUm0h6`IyO{&J9Ht_l!kmSYm4pzJ7A1z%5L%1p4~9hcP3m+u4SosnC2BO z9Azql0VT|70LA7b!`TEbj)^5BT3>~&oDg>EHQY^XGEmL zTXa>5tmf(&jKyL}|D`X@=%X{sd;we8YRrJhd`^_zR>h@;d)79W8d zBT_JRh-~sTwtR5g)llZ++?L{{n8-*X>GEo*-{^Iub;nWO*%o$5E#5r9N>fPQ89K2y zycjsv0Ta@yvVX@t#hV!%M>H*FpeurKmlkI^e*PR;H*Z+aDaT6_O{#6b`%o# z2A$p&RCNm-xF8ADao!>m`_t~j?0fFhuq@P_E)WyS?KNYDPJD6kD7ny0QRi&Cd(Zc? z1-B+V<;q(-XG7^xtiAbN&Pn@7R+@rLZ;nCh9_lq`d?r1ZA`0K7FT@gN9P!`Qns`}TiVNe?=6t(LW2b>j*T;@t z`PwVw`Z;8$fy&%T&%tZ@_>K$a0`w-U<~#EFj_YQJQs7h#RlSH_LLfEEoK%Vd#1b^Fk=VTHq@#(N_b$ z@?yO#jN#fV_G&F!;@DM;kCC6M3gJp^w}e!cy3S;E&R`BnX@)UyIDFSVQ!Z`hC7{Y1 zgLS2o8_VvB=Xu6D;5T8jO<)*~q5nZT3hG?3DT-@zEmOPCq&`k*iDC?v0x8mdROGZ) z${pd8d7Q`u3L0702?VNNc2YdQt7LG0NEa&o)=tS*9_2b~ifosHrFum93--a@i-R+) z#3oL}pS^iYyKHNn;dGbtsSvqa2UiyMz`0$}Y7uxVY@L&6DsMG$D(q%oEO^w73mpPD zBDX~^(c%?mmm2Bhef&}TtRIo+83#JBaC(PYuEu1F9P4^1FrIyy+Bpf-m0=ksx1$m* zXlE)(#Exa@rWcBRLMigKz3br1!ry9wwTn_VCAhaIFq0PqQRe4GB29%DKRb3=6~f0C z#HEPcig8hx;J%~4M|{K z95AU=?8ZK08I209awLab?^kFqcZxZp7%J~i5}Er5QV?WvU_t^VAv@A9luBDw-gtYh z9amo`T!rPpbHsMQEz*IKWEmaELdg=AVUvh%g=U>1BxC4~YLARqA*A?LIi#Aj7z$^h zi*DDhu*7CG+9l{_-}=wQes!B&^UAh0xVAxBwtUoP=TqeMo1q%wL?;FLZ77z;tN z@^eX}=abz35%qR-5CpL>K8bd+jS~azk1v^7SV>=D?$9|s<7^ce;u{nRnU-lQoA|Lc z%^zSOdtz3^@|RAN;i(jv-6s|h`No=lbkU)BU&tk3eXFV>);}1AM<|2~b9?wiy#s-G z37CE>xX=V*?A%CJ_jy+aqAztDDCXAps$eD%hY3ZOGm6-ZgaPzVv~3mv3Yr?DnKHwM%dx?0&C8ZfciG zx%08I(rR+v4CYcvZw97;tTzMHP}-XTYbft|U@hlGS%#M80^e&a@CWP3dn$~NBJd3a zJuO@+>F(F+YOBe5Q>aU&y(ypu^4=6wLy2z+uA$5qz_r{rjivs@LkYc!FDRppjI1dr z+vYL1MYI}DM?kAsDR((Q6*#rWc@b=3DruEeD+PSv@UjTGIA~jC6*X)bKJ|1|yz9@y zoR zs0v$5(FD^xd#IfHwb1 zj``{`!3bR59Pt?mmP&NxEEOq?(wJk6oKU;7Z#o~`%MFEIGTz%B?~6% zV#pmI8NCTWUUaqA1DV*Q=V90mV<=uYU6Q`FxTTLU0VuRDJKQ`}VfV5QyGYay>=>CN zrR-o~&5!}ATBDc&m3cLMLJ?uzOkH_KLp)J7u9-L_(KtI1Y1ukXG%oL@Xk@}IRjR{; z3bRJ9TZ7f8u+)96L$)&Z7M#wmY zSf6evQuO(l$C&NSiW#SlfAO)gK4lSL ziqt}h3Bxi#NgW(hs0I>;(;5)s>lU8R6Rwh;z$uf5jueS5lBo=~Yk1u#qF@LBcMqB@-xl*5spG!-}dI{a4$6aC(Brw{UhVmxbE1VpR*K!q>!0yM@j z@^*V3-ThI1jV<4$lgT;Z(kEAXl`0n_Z7qfi8O%f`rZTC;$RzWB(v3?c)il;b0!kwQ zrKzr?G-!|1qM4?-({8S4k9OjUDZYWy1w^s1o4R{vXQ1+Lt8*L;H(y-ns=uOzDsZk= z`stXlt5%I1Wd)q+HPw+cU95S`#241Z>y3?DN)p5(6sDbhWjgzb02xia2;CZ8>D^%H zL6Z$O4PXx(iqb>cczR`$q*y1te2qULT*f^Ix6Gq1zpynA!J1k=b0d6seqM?gYur~5aK zd{k|B*va^`H)d(#KFcArOhd^qIA~>Qw@`Umj=&0^PbUqbd1o9khi|Tq|7-a6;_~?7 z>gZ%Nczt?&b#(mm;N9uv)!Fgo#mV6)Wva<~Xf`S`=T!qd)dEf;_(KwL^s%9@e!YfE zv(ftsX18J;sY+?Y1vdjjm2Xo)lxLN6By#atbov}B7zv^jw1CXnqyEg#3-U)mI z!0VmGr{^pA^Z0LM5dH06?6EQeYoC4@pC5Mq!ANvZIC{Na?_hsl{@d&I^8fB1?Dzh* zyT9Apd+~h#MLX}opjwri~Q-;A}i7H-Xi+nFuc+Q(@Dsz+; zVvveeo?F5ggCI+sz{RW&T!Q3gWa+(@MBvV=q2CYMVJe?Z*V*P_@!n4 zYxtKQtT*9a+Ug5+@gx8jY4x;_wdNH?Ywj17_U_WIN^4hiSB~g9Sn`{?D^z%2F93D@ zy1Z{)X6l<@Ivj7Ypd$#qs?Smy_Imq2RunKIab}4G$OIuR?Z?Si9&Sac6M-tIK&}auCBCcRy731goFr26)H=c@D}1qb(Qg9 z#~y&$WyC59aKzCxuhCKpt|Qd{p{dzpRUQ%NuQ(K@oBnuRPAAV@H zK7H~4o`BAKwQdYBoJNFk?4OY!+ratqrFEGCnn3{xMHwI*fvlpuD=edCsU0e&u6L>$ zDt|*@@(h`f8yQS;gXk^AoTEtIBks3aR$vZEZRCeZkR96dI7~0HOOpX?1=#0C%U3nc zU~cRE^fq|94L*YiM}gqpzGyQ5kWSgXq7?vZakk#*JY;D?R1!#EW0heXM^nj?56Kw$ zJOoq3RSD0_oMb+IN`0a_=|xQNe25)}`m%ki?;oGBs2c8GUkj+}HlL!zRC?|U}E2G@O zg}Gm06540!*fC4RrzMqgm&82H)S}B<8C$w2;&dTruMV3nElrcCBZw3tfajn?8Y}yIyxcoVW?AvbY;#E>t20cgIIQxtv+f>F&s@pWL&Pld|9ala;JLrX6XCv zZYxlPxN5+2>1shkyu{5YJchkkVES#h?kzTo3?yugU>Q`>%l(oya4$mK-&%r zD;ZEllf_TzRaVWOZ;3Ir{18mYvNkJKn0iUjB(Ff-nZPtnlxwVSbW9A-qjTVSoG*Zf z#a~EHL9d>jqZ>q@HJtdA-%};8%HC?<7|>^~F7E zStbBERi2eQGBTnhwYGpYwWsbdc4OiObGcA>57IFz?&ksk_vw?E zh?J?kC05WMff;W0O~Z}}lhxanJ=_uh(LLJ!Vg_Mj313&hGbR}sZ?FLT_GLf4Ho8R5 z8nFP1}%ziwcN z1IUpgOaSrBIy<+kb_;2Qqbci9l}7RsPBY0;#CZ~3}Z*;C$~2bowl^WmfQ!dY-|bo zue}?+c^>;IJ^#6yp)f|2b$A@!1CILhpS^<@MgOmtFZVa+KacTz`qcda+~9d%M(~{A z5Q)k6)m*T}pP@eZp{vw$_lMT;$JiXcMAju1d9>4M$$~T5`0B#7 zIxk2Ut#FRgh(ezMr%B|4gXi)mo{y5r1b+l=F9Rkf5HBV1P+f_JDGs4-7vRqXhIoQe z0AL(T;ybP1kb*ADbAdxNgn=>gVZxA%6lw?dkWHRo6b9;Ep$t@vf^_w|HD0JtqH3pI zhR=zSzg^E6lddG27Sc&dBJ96v&aSkk0cO|UiYbox1hoIoyuXWy)H$wss_t7Eum(T@ z^pf3rQ!IxoBdD$0+iupk!rCapv;nRnB1LhzKs=#pr%(9<6teZpZm;b@z0;-;6ee$- z@?RIyQ?>l-f)JiJP}TbtUJ zuJo4o{t~8aug4WThpKL&bQMm|GwQXj{%I}8N;I6Jqf=7v&rsuM#&bA3RP)xW@94bJ zwOVPFJkF*V?79?2!61xh@I0A=-ClFOX?H>+wy(|Yb-BC(cN=o`QMhRbcxc2~doo^; z%U0FZ*j!eziqB>Am2$eW;Dhnn9BtO}H#`4aQF5(~n3W_qtykIhnoXa(id-X>IL-~L zvB#<^FBGpTZnDx+#^ecHPp=WmmrNy;H*B`v-js=N8a3Iju(Y{m^E7r!uh3KztiznC z)iyhgT(IhZur?G|8W3r{<*M8%T0LBf5G$GWChshvHu>t8cDB1hBPN-!tJv~CmvbqMUG9_)3ep3}bQ+bx?ZdtJ%X0*7;$&_#W88rJZwZz*s z56?=+k6R`MUbbD}h;T){GEvTLWjHnOOQ;RA&_^y~RNaAV2E<_l?%8EmU|xB(2D~#B zABKsAk)yE8VQh^WdA9@w%8$jK_ngS%wVNaYLLGMr1zVk;afn#wO-RO|JrTdVImvEs zmzSDe&BoA_D9%?7;_UnMmoY5=R3Yi>4`_WKAOEHB7?0^yWK@6%#v@g;LN?tp&4sg~ zUIXbAH9g&&`ySX8Ow-fEiX6-9^Jcs#nXOAnHG77ubf~UlccsNxb0KRjp1Q>4qL&yK zt|e;}JIutPs-Xz=z-J?OrL$pX;C8edqr8<6Pp>c&U>ExAeTnxm_zeC`2sa1u?O-fE zysD^ZAyp^x&bY7>Abj}(7z=$wc@-=kvO|I1T({mF81Sd$gb<$%ls#@r3bodVbqGbICm2j0ZJO=6$g&f{(; z)iEdle}K=Qb(NChZqX$w?2yc39LlVKz_?cc9C0FSQ+f3Q%n@U7id61*AIdzTIILG0 zd7qB-+)4wJZWwZZx%3N+W%TCkUFrCBk#xcU#?CBxCetN2dgty~Viw;sL>{tgh{BQ~ z3AbLhi`*0i|3PpB+W!-^t)iZFmm)2jSK?pWnhy|X2~vDFondCV7Xsf32x+tr^{nwRZuIj>{{_S5F?0IQrd z*8ZC$z?b2QZ!Aq00`8rBybBC+96wC zUp_q=3{{mg6<2;j1juE{NOWvzm5@ZzBeRj*SuTd7q2-hgE?y4~EyLct=7g*w0CKQa zbau>Qy@Gaq>ggEz`a_}jvN}7!Dkr&EK`|~g4VxQ_GK%|1dhp&7`k|&XN`kieB=V8E zZWv;J(Tz#qrJ*GCyC!Jo@)nyPbWnw*&rdxASr(UX^jk z**nZ(`hQkNpxc9^Y3IX_QebZkiZvC)<>?4`Dxb6XY2RI8Bn?UZK7abWil&g0aD}F@ ztx-o+6wkZUYdSf_VS(5ImDQvIC~2mg9%VCilKBDz02#PNVW<+(%NzlAt}f~IrLNjb z9CERRr!x*LcZyDP!H*%IrO5^mRbFNFQl1*ov5vz9aZ zS1ViF>ddxtzT4+pCV_TV8!+lNaeyE!}ZY_-zht|meA}T&Sx&e!j@ji{Nl=pGs~1GbKG8IllMMkeN=zs*+}01&O9m6 zEA1G%Qg3OQf$1bGtzkZuXNAUL)fy+4I>a$^`2Rn~W8E$PCJwK1ci791u%vp+)MRsE?>Rv>G|MNvxhJ;Mf*bmx1WdB4pGs!IP;=!KZ^dszT3(f_^O zgBSVr-~Qev{_mqa*+8>2HibtrKCh5h&-2Qz2ri9b>jszjrpLg)@>4qgU6;kXntw~} zzk|IO1^aLB`DXk-#?!$5Q@Mz}EV!|!oJ*xq@QKZK*q@>Je`osF7t1_!JWz91VY#R7 z18?itPQDv!u+$o?vjc0zKy|;g4#zlxba9m0mD-GpA)oDlrz(AKX2*T{BqOt`@8HW9 zN!(L|9&!EQGZ-K2qsX`1LM!a6%rhL}^CHePmit{_G?DD$=T0Lx(bk&mGB zEaVVXtktTfw%f|}=+~CU&GXn#t^Q{>{(Wo!EZzToxtm}Azj(RH|M@6SPCe#zf0cIE zc`WW?j%Uf@@2=!+_1#$Km!o?mMXz0R%2l-qJBqyymFO9+S6h<<2<%ROgy4gAN;iY<4gU5 zLpnu#C|~EwGZZ496S_nw=aBoeQ~A48E&-qVi*6mqU;Zqj4q(N?ztlor@ zxr;W(6Y~^!lRYbDI_ZP9%yrVTA=Hhqk8y~7%+o$(hQh2F;z_$cYd~?O*BErV2erHB zqRE*k>#}Vf(c0a2Ny#QpieS(xrEj_MY71yg$sF++N*G{1g)v$ppQ)wr)i>!L@F|`D zi@GxJ7Wj!6I1*|<@})qTms5aN0IRbFL3!Za&R$v=?KQ6S#T z2;=Z}I$LjA%9EWI*A`U~D zC7d}$&l1LEaYeQ~j!Lz?2j)2HgWXm(r+w^$gBLHJzi0uVvyR^vI5CmEjl#tRA@YJC zTQH91h85q?`A;@eibmgg0k};6@9!7RfA)7b_dg!xS>yaCla31^9Ti)Ja}r@rD2}Eb zpHM`kF6^coh(ia+U8aS?@oNR0k*zfgx;1Cq-Pc^xgfJKcSj-JDRCaMz+d4F^n%W@5{nnmJ z{XfQ0AdI(1IRAhC{AK?9|6p%p|3AvpRR6zL;;@+pzQJjLgy;fI1XHZ}dJX29S)#AP z*O~ZmDuafK*41K(40a;Bzyppm$iVkW67iNfuaLOY^m9w2d4TPFDhmy;W9Lt4>cza7 zNSZyR`d{q|vin*BEYtrl^Y?#u4|=_g|L>zbpK3y2yD20()z>prk&R}*Z_TdUw%*3@ z&jh7zzt(B^7W%U?l?Tm|Oq&nwZ2)pnF+B6rGpTLzCq0E!JWdMpvU?c?=d29bQXGvy zFG)h0$7+>XPCwj`J^w!N z{(tY~US9vde7?WY|Bv$6?w%FqR~oj|xx!asqt#6ij)iDX6nEGAD^E55d=tg`7H{47 z*GD)HJ^r8X_44cgm;1fV{_mqaYn=aS={VEUvEKRL$N^GrIxb%_mJR0$GV723R;qi? z=Y&mLP<~F>OgbG@|%ag^_69z?ryw;l@7RF^B{>}N0BaY~e?O1BwG?ATR?ShkK zGcuIV;w7FVlJKmu^STK^6>!$1iXtiEG7Cp`+?u_-qd+vk>cknzo#x)DY3lVwSpy57 z9;TT^3RY}viQ91MxLZ84DYq@$%P{xpNWR&p`}$A0{l_6klO$w_dlbPyFN)XQ5UjWV zY`tTUB~jC^-L`Gpwryj#ZM%D#)3$9)+qP|c+O{#x)6esL?}_)viO3&o)vl@)v8!rT zR%YJU(!abG++iH~-hBNQm{_zG6i@y|L$)U(I}pOn0`aNYN692MC5e$-WlG7f*CLR` zsUMT%v>uU2p03U?N~&k7)#Xf$d7gxJhPma0y!4<9Flhw^yg4Tse5;bjH{ZE$Be+g`BvsS z{v=d~lyAX))mYOwj>SJTkWB3HFV8DlYR{8)c|!%xRUz}KYg~@LJ3^^tdT;^H(ENfL zTFHQz5#szfm}EL5UG6Do%+|ln3`!>kAhLo~efc5^o(hH1hNX-^CF>$DoAUi-x1v30LCo z_J2#a0o#(K%7&c9HR-HroM3Iy3=JTq=Wwz$Y2Fi zxx~5BqCSoTWtJn>v`e3ma$4ESJlNJ;uc1G$H!}W+7y}Xu-tt0P%H7m@J z@jet}@J*2;V5h3CJOzte>j9^gNI%iX884cGkBZ6nL%~Yw3A+t-fJjg(M0JLpA5&Aw zH5R(bXvHp*XFY0>+jMC85fi3Qy(FPhOQ~z_3u(72 z|6FtR)fAET%dTu7GBy4NC!9eBw$MRhy{rM;pyv@^{w#GdO-h~Qy%}oyrPuSA5Jb)m z;mwSx(^&U6k0PVi#&|P{36ni1nf5VMS&2G={cXeQJ3)BPE|nz+gr^I$xrqR1XJ6J} z+;QtwUNg$82oFStoUYbgQZ%QZlre<|7p|84LT;7PVhEp-{3T&FW7tKEp7|)3xZZ z8}$|H;wcu*6>8KRMfnoMIDgT$f4N_;;_#?kX~B#+KiEOlDsV4xx)NRpNA;6gJzp6!7ROo9C?ZF1|C7u8~!tH+gn%_V56#X zZFB*R%0eIQfnRAyXV+Yc30a(slx}r>WXJ@GW$SBrWD?6HwVn|w!up=ZuiUEVYm zXNvwY(zrf7$t0n>^d4rEe-0g!{TE)C^`Q}lBVMb>F#99S)|4Er-RT}LSCmd7U|94Ja&PHfl7gD!%3wIFxw^l~k1pBUoIlEnI+*v*)$jKAe!ISWJwH7x%x-ZH z(rW958^668K3e|Q*|<8&4oD4Nw_Tl%j=2mG{ir_A^Z5rea(pRH( zy#xuO(mXqPtoq<16!q1xX>2ooxOdh$e{?szY{=EcLzu1ZDicx(6}`AqlcD_k(w4~S z^WNQ6s|ZT7k*i{!PMs%36Dnn*oDjjIeH{SQa=kX;_xGlc=5MR6iyHdrduW(i!L&T4 z<>aazt;Yrb%P~Ih9q(x;Z&}|rUpJ2cVV3}ZPX`}9ed{bnc(X7s$<>0oS0i;(KhJjI z^}VYrdl%Q&zt??hSD(ADpTza8>Fea(@W#*xn*5MT;5N~(@PiD%1_vh=ICt16W*YlI zyQx9#Z-iA(KmMX z(#nJl+rFG0U()IT2@FU%kSSi`j4u(av>1DaDvQl0&w>4HN~S6LlWG1fEW@`xFcdH;NWc=`I> z!*3vLt^)QV*qG`@$+(XclL90=fi>D#^X%!Pf6Q{le7qD<`S=j>zHQ@iaH=Ao-B2Ml+-MxtYw72 zq=Z+psIX@XLIW3#6afiReVt#yos<^D{aBSbFGpF<`NJE;v((En zSLzw-h5B0-Gug_eMnQ2#p#t;Qbp4L%LF~v4R$(RQ)z;~&h@6^-l{WXaxAj^v;di7G zoTyLGn)DupgV`VhVwh$x0U;t}DdkO^q$cG_+9>7?WGO9MCEi028!e#6p2liHIc9nh z?0}zLT>mArC>)c4O|!++mAj2k0QFo=?w7+(HHjU#E8;w9SdEF@A_KS2`?XI>OY&|P zqZwyT%pQ1V67C}_Lc2>WU_Em$%RnEoh9P!#yGIa%;>m1_rwVyST{~$K*mQC1b8YhW zP)cStF0}Hf3FOGDIuj4&XpNzRQ6w6k8e4P8F|sX2jIhy0N-Im|Lsqyrj(X0oBqYsE z!3X%z5e}Qh=_nEi+>9t!-$()(4x`Uov$-13v&gU&5Lo|uTTxgj9_&m&_iDHP4&4l^ z(+8l^*C=qtI4!(|Yyzlo=$To7Y(i|q{ZB@w#{Jut!BMMKjeBhibn|9NeBJ_aY`o=4 z!Amil?p)mK0Qx^wh*1sRWY^*J)H#q?n)=dC!ox?HDocaQ(am^~I!uV6!tz82sF9fg6F=FI;|6?i(~bvKT$vn|uEhus?3&JO&or)vU2>Xj`Ug** zZBPOl&5z>IB94Tx$Y5QZz94l;)mUB+90hK`MQkZvIxk!q-XGqWGQ29cu%!^t5)GIe zBc-FdEjP95!(Z()(u)m6NfNQX$A7HgNk1++Rs7-+JPntG$Ao#10AP{&C7OtwCl}SjIr0 zeY)=Gywz7Z?W9zs81o^MAvT@=tr5v(#-%4>0OZccOk1SQi4U5&==j9MBg`rWx9{ zj`hZRcPGTS>M;SwnQMogS3!#M8=GTbl}x=VY6_|+RDI)Jh%ab)o1R_aN1!756d>W}@ z!@5i9*7!)dBH+wVg-1$D1ELiEB0Wv!BO-F6@S-zbtv`r`WNjPj3?sO+4CByecnuc`w2sWD|pt@8ZsyRO(o8PeE%pFe@E-SX^8;cs=PN!?T+ zgPt*k`J?kC<-HJmPgo!-%q0u5vDy8|?1fM>b=`e6q~!*aFqDYd>nW~_6G7CWds^iY zX!bOJnKbs-+J%RvM9WAVwNXUk$v|eUz6~=hA#a>SX1K<JG=JC`ciI1sX@|vRVbx9|+5UHf`7FiA#s4<`Ai*?0+vX!WZj2}p!B4c5A;AgF!b{xk_e-C`C zN70NH(99F%PlXF{5aK+FMqKZ8N5beMv);--vFLry9!03PsCBN9|>(} z$Ivs_O101*H(SHGG1NBZP$Ad^TDsOY^{I=#p(RAe>UY2Or< zu0*PrmD2_kP`hr{>{MIXDlAvbZHhOas7*U^unjiQUeI% zy6N+FEE!F$X-+Zz)GY}<0?Jp;_Qyn#e8DAeI)@mp%}MM?rir7|>*Vt8eM9|Qz*63iz!diaDMl2W zNe_BbER^0Z@?>lH-f;lsmk2C!6t0V1Qjf|1Ht3kFNBkdS2XLP8a{Mp5e>3~fCx#+s>k()UB7$o(ss-&9>;e#}E!j5ev~js29ckOr%Hm2>HZ>|IcbO zOoy;*J!B$xg|s=z13?cFppo&oJY>TD)5jhd15qi0zj58y3_K&qS?4?};>h$ZTJNQt z?vW-e&Xs>FGsp2u60rWSozoV_RgA$PBYlGw68y;ChrlHNs=mmZmV_(XwhVs34S(}4 z_VxgzN!1Dx6rHBDQZWi2U6ylWjH8E6nAO=hL2@=%mV;~RM-P$8_GM~>N=kJlSBhHx zTrbcPeiugMX}E@cZcxwmyjRH@2(kP$u45T_}lYWa38nJIvUp(pvNuj(=Gr2Y1A zDDQy*$};~qfz0t!_T9^ok-%Ww>?)lN3F`9H7OF6%xa^GIzM`*IZZC+Vi%=us zu%m}Zu)5P6_1}5}i{LxWbpcg5D*vY!ATqdlO@9j^PWA8PP5tu|$R^Jx4+?Goa-q_V ztepdAn_pT(QHZ$LzLVHl3N)MD^EB(Dlyxx8Q*?tGlTQiQTjI z$r*gLMW@$bzvZL)P2y1mb$~C00hwd#;2-RhyDXm$Ng!jhi{l*`NhsxE+6~>w)=xOt8z=irqlGy5V1@g`BoM97O{H!5ZSn@O_n7L zpxnh54VYzW3A|Zkc>3te1XX^!GJPJ z5VwPy91edg&@!-)oog61KE24e2MK{oob1>c#ztZn!p423=j&xO+&7+LIn z-^~^agjVcxfcgP!fntRcQ2?XzA|e!-HrHgH343nR#-%UGTrEq~?$;Q9o8N|73!`B4i49%(8TPq+<8{(}dZe zWGc!h+S@!|_JRofCN>sup7E52dQjjI1*9y{MoZZO9wDm&T z)unXXTG0Q6P^=Hw^U}9*tE4wsN@Ijc@{CA1o}ptaxLvNV5;r#wqHo+nvw%5HXk?FH zcWHP;DYB>MwTIqSkLDJ&j!>%=$&=NGu8SNNws5R$UedBP^ydgCgBiNZmW(Srd+|C=vBLu}vJ5S$X{u+mEI%{KOXp_DbBKOH)kt!unom0hD{Y{3s6${F1B9Hi^ zU3F*8xjM9Um1^buk*|(z;%Sv^T2~!A9o1$Nb~aVkGk_+yK?8^Ko*hg)gvx4f#JqTAvmP)~E$ch$f`13&&|4bKK z!W&SChpFfVyo8Y=8BS>DP#^34GZ6QyWc`YAKk}cBT5qELGWjy)ROSR_3;hZs zgSfZ0zX(IqN?5_9zJM5LPEK#bIW|) z#UR{mjN*J_js_Jq9?bByIp8%P_&fODnB92Uf82Ecq^_|4!{=qTKQH>`vupO7{dzT- z1T=p;|fF0p3t=kpvRJQ`5(x!4!kE8Fk75O zyb**Hn5idF=qT5a4>2d96j(I$Fkjx(0n*@@WRAv#g-AbR5I&OZAPQ4(-_3mkxH$9p zX$u2QdOF1yoXSkce~HIN!KuN#cjk_r%fIfybaTJHV;QuoFD`8I#G-@Cp3uU%RrZ0I zpaN>Lw_}uUdEc62Hq?fZ518QkefF#dvCycIsK~)7kxR*>OwEThWN8c{K%$}dqE)e2 zfrPDUQ=0U@FV1d3v3u;0{!`??u0w`G)c8&aW7@mv7F}i6I17qGK>;lwy8B|F#5GHW zbahp?-jX5IBsHf{`K0|Ie+T=@1Y!b)Vr~u^K`_ERneRL2U>eoZAFPyRNz9ZwlmLy? z6d(#tC>g4~0*rxa5&xT61bH{y34QTCbq+By^nsJ|P2{C6!yh!5EAyhIW(D5!sxw30b! zr;(vc->KY*w-|g_iK#Jk*05%DU#G!Gp_{&|>@Emh~jMZwUGr*F3!F?dwk;OpK!HJ~Gj7x1ZMHa0; zd0+R!WbwXlMG3PbLwYQm?O7H<_q7|u@>N9t=><=|GV%~H=XC(XAZw;|+S=Q8v; z(N`*)vZR!wV>98~HKtCPpcI6&dMVnze%)e&#xw7mj7^761&g|AQB`WQEF{R+<0v7N zDufRK-FaCC3~>tFs`T_sv?@IIbMHyH4kVNrVO1hc;yOX7xTDHWDFU%LMh(<~hHA?o z-x>`RhmT9?K~!HD78h zD)O&cebm08PRSM|npNm>$?BGlc-UECcI_Tp*R-~{F4<-H*)}fift*x)8tNBg!Cv&O zkg5=bzC3uoJBugLl>u1on=ITwYv#@>LOm&i9i0N$J6EVt8&HXb(3ymfJ4hG#$v^HP z7DwZL%V~+kR2)!Z#R&Njs>STUQ2u=-ViQAr>7wfmdXD&q2sO%Vk?y`!Za2 znaWOwoAOfmh};Ph(MovNG>_DPze&Y@260#t3-&jLDz+ovquad>txlvdg|8pHJ}|aC zjr82cQOQ10&nN%v#8p_d@5FUfvNLAKXTjEqBFffJfwq#l6J~j8e*#c^<631P9rK(G z<*?-bdEV7SYMl1qXfWy_9fyW7!Ta?95Igd!mSa7Th23_N&xTO)kdfc)B?lDQ8sJsT z_(|{rITXyHBn2koRALPCY$zff9BI7v_qqvwwI@&RUG}3EpbCQuwVMfwc_g|BRaz8( z)K}G4$&e|OJ62C3ALAq)#C=FIjExec8TzzIhmSXTS=)c%3B`o0>J2trjw9qv)M8f& z;F7`Dt^IZr%SWJiRuYpJ1NogCZcLjK*ZOQKCwZg^Pb*>1XXHGAE@m>pRao&17dIqI zU~w6sY_2f(jH*MXyka^*KbMY@C(8uLPJ*YeL=X=1;x@u6rdn>&?^+U3LAj=-SAO|D ze;zkQXddVb49vn9(zVt_Pz9?{KqXN>q4=A-pMTl@vmCmvVlVigbl;)QQZ0kkjm5Cg z6TZ-|?(~GFFASsYHBvitSg-kKd;C;0#S-)Kj|wCB*Kqig!GKTE@Td?u)FzA7#Xa;K z6Ah%yA>)b@A`et6hlF4H950vu~xWB<)Wnl?WDhr$6_sA!PVl?$j5dFZ<({` zXQM3TqSG<}$#Y5S#4-ep*Him7saFqJ(M8CaYnK6Qi@JbM8N+%b{{+BgPb zU;{orzYjeV`e*>By)LjxE#Pl-zjfcc=CkTfZns&G3**3&s^Fug1Irfo>>rUDNyA#0ZM|pi?*p?gg9iPwvp-j0G0`ElgFoNWq*eR4NI&j zJeq>$Ay8x@>KKoka~*Y6DTyJGzy;yX15$Jq=fdTrqmhrham@Tm zp{@;x4L8kN;it7_lIjIQSnon3NtN_haJhA@YyXEK0qEqYHIYo6L1v*s~D zI@{RMf5N2A@oCHtDO~m#mwkueEUK=zxHCO6-S>|&+Eh+2BY9lL7cY`14wifYR*VMA z(^!8;zBBX+Q%0_tqgs`tpWd`g-~bvIS$OyLOzAA3qL z?%26K;jiQA8|(4U2?<|v1!bn_Teea@84xb}GQpy~_taQC3pJyLMtTkUE z0GD}+O1HgZA9SM;R(Nr&1|wTI-Z{Cnw;Z>dT?l6dU(+iY6KPOdasUT7fRXYLYPVpP zB-B2MVd^5ljXEw}D?h`4@`-X*q>;lFJH4)M;c#|>{;c&Y^*D=>(ueDJRP1FC156>X ztDzlC8nXes=eG>#$lEhaXpE_eNdI1}G@l)L-d#XU#=?NM_1hSJV-G}V?CLK(K!rwm zUCks{1Py=?j&|NukG5L)VzaX*<#bCB-jM!KR}bzI9e8~Oe6$bd*oqWkHHBt{E(Hs? z?3Vz5>p&&gu!F5AG3eD1vW}xvKK9DR*IS)q9`Qgcg2M`c_)kQ*6pZ$+os1Ou^@Z{7 zXBt!AcIKbxv2pf7o567^&@|o2d>%bL3p-9%m+G)*&hOt!33=jAIp38x*${)KK&No9 zG(|71W50oaPH}w2x_`aa$r?X@*3BZMa>)Nd-pTbtp7-S1^u58tpL5!oLyF25>J);r z>|W8@HycZfipKUl>IC*!+PB4uZJDMXB}|ks6D&AXSKk$=c8XY4<4NfaxfIDD`8k+CFb}e`hw- zfB_7FqWjsw#?;brzv|yleSgH2)>+wfW(nZtHy-3vK z^kw31{+^D~m(5y0IW4;n7;`4gU?}RD6w-sLv^(tyum_@b7PQ#SuAhPn)lCpZsQSH~ zX>6)R>3Y>>0lN=jp@6WG;9$4rZI?!$+e>vRpJ$`Xq%o61Ysj~KT^jr zSD7GQS3=VQ2~R8UL*V@z%f{X^Vj@{LVb$0caV4VM@kSs1m2DSU6@WOUE`A)QwY=SP zqXPhCzP20@FlKRCT#70m=2U8|e$oP85v>WG?4$3eNd)jCS>g`j#JoK9)(#twq6f1h zW`)v5Rh!~8I5n({$+2z!yvHEfN`&#p%zKTIK?_2zd-5PWrlDvHk8lZkjAZ7Wj#8k` z2kv;Q%=^sg=42}=)EcIe-u-MP*m`M;%eZ+S-k;bJ*P(}ObcbZKb<$oF;-Q!jvHQ8= zOb4wAUoF{n1~xr4xLs!cC4cG!%g*5G(5M$%d722A(UdHn3dH55xY}6Ypnjr`g9v}F z`Vf^Lf}8e`0HhfIFo=WbMB4^r`AF7>%PYt91sO~bkiVplOFXK?dzI0_C~HFwg+17Qetz^y0+ z=Ui_4BNF9aU}d`{=yvfhrB$ZgfMJ z4LCP--gOCAf@C&tQK~HAzld^|XR^~rkV;hZ3P{RHwlvA;!NMw}2%z$57x(T=g%pXO z_YwKRGwAYoDF)>B(8L$R=~y^N9LPwiOC$(hxv-TSs0QZoWqziIn2hXuq@h$oa{LBV ziuT*tHKkxbaZ~;W;wL>Q><8s!)+;8Km1#q`5;p;PA4p#udQLyZO;(QETErK{1*vMp z11q9lkg5ncoDEr^c)`3L3Q&$?qi|+bqZCOIh5B~H^VaUGs|cmLFn)gQUOU7xW53tE zmVVmk>h+HO6eCo@*aK7%UjvrnU5n!W^v40(^C=?C+MsW>d$st zXwib;>Kj|ATg2bY=98gsb-6x_0iK}p@)66*G;SZ*b7z9>@?~QaJOv5b!N^n) zM2Mx4I_nLm*B0oiQjsC|$4nmVS{|CPBsB=2wtpQrjh|epK0vGNAW0QSJSBW;PDY!@^WN~Y zk#(^F@cL~vCo|8%3o9}>QYaF~BR4w(GMH7=*SA)17mfp|k_&Zyn)Q9w6%N45;ok0> zK?ZkLFgAE}?1W5LS^#hA?33DADA+J(zgb|CtanGzw=;;YUQ~k}o_*2%^LPImDM9%W z?E_Tp35ae0W{sJfz!XZab26tHIN;9&oZmi9xV=nE2|Ff%yMM9hw zGwe$u>u58v6sm^_7r6I+2Xt8fJnM99C0GcFh;Z5sZRb7o6bQ7$H<~vmx>%qP(xtIckgZVB6 z-Cx}!ColRshKB>CB#%R*O~CwW_(;RjKB&>CPKhj-hSY6{g?(&n_#E~X5N_aD+K z<$wWsf|v^+ZNx#w2w$OOzyPCi;vQwK>I-~%EDDoR#qd3SGBS)$Kxz=k&JaZi&b^Un ztz;Xtj8w;oLnBcA&c8A8y#fY6smm>Kn|zu{Hm6>#FTv=*7b5|)wS>I47sO!Arltf` zi=aj${6{#EfR@EfmH4FO2%?T*Ib@TMd=LVVy|zKf0rnw8DwACP0o(7L3{n9ymh>(VY zaU?QosQ*{c5lX(jpwdqT9nWzv@b1HA>^vO)T-mR^$GcV=q)r|r9$#{A!!ibPk=bq0 zw*t}yedsDlM31#8bJ0P^n=rEX0?EON?39RV_BRRm*XPgewXhdY{Uq`F)S`>C;!7pr z+71b7MXFEITJy0JWw!Rwk=r1MQnC*Ta)W->`;oxdG(TB=!SdBR^`1rM>;WU*SQ;Ui z(^*3Y6xrD4_d12j`p}e*K*>h&{pwr?C;RkREd)tH!KJX3!Ph zV`#)A12U~=rI0=f(`Iz!*G_6TjDD5}BL)7CHM-s)beZW)pX}pvUh1LFWeh^e?x!SE z7VB96MWCRBCL+H^G8X@O)!hgdcoDW(1~@MnYuJ~B>`d`gnIc!lXWYOgws zJ=*KU54fiRJ#7#NChrKiy6;2=;5NNK5cs!8-%t~<3IkvSF!M_CR{`VK1?bj!Ni<~w z|FW5#HXQc4t_7+bFE#A9>!@o5zfjRHWD5+rT0f%_Zy)DiB#S&ca9o~J=k&>ZuN>^i zr57~VDTxB?2j5`-MK_EQH{@5wnBdl`4}-K(#T#kXK39AR714HRY@ncuuFp^kHJEet z92{r2?PxOzdPQG(I_|jr+fnna1-v5lTARjjweJQ_wA!10wx;pBIeWPNZ|?8r^tC%+ zpe~rIL|7Bz)zEsF$V&+FKN)%+ob>15G-Hp`e7Oc&9@n zx+@r0EJN`E)cw)rKZ6p0m~*2@>&q~pGdCl>!;6c7H>Lb06C1e7eF5ABnxX0Du)5>< z7o$H%0PqzG4iZf&f9j&`lGs3A59o{SrRoc<-yG}> zDSqHhAPr9aCzWDV1-}qlQz^Q8A~uE9-);#DR>)N^)lSy=4io(ya%XCw7eRAe)g3jH z$qG@1-3~E}^nIDCJoI5tUu+8SGpl%2KR-OZmHa*K#*9$~ zb+x7uJo^ja*TSFqmaOIleL;ppFV<#oP zAK6v%-NPb+uoMb25?v9u(q0GTd!m}L?L z2U=Qdk+U@tA_XGts}jC%WCmQ+-Dq96D6&9ogtT>*gcG=W62U)yh!vYU1K5i<=^Hu% zn;rvk*D*B(au@MuJqLsMZ(Uj)9sYFGrde=7Ut6dHZX*F6eZXab6bPZS8}8BBlcC-@ zFP17c<$MHM&=CTU){Il>iW`JGq+(L`0YjCx-yR#6DR7QvNM#4fC?N2)14@~~IYnaU z9pXFk(c=O&B-JPe1N=zjAG!=5713h-llQDf!17R3B{+sjYb2RpK%ahsAAcEoT`UzM z%J>XrVtE9V4DL(hM*z8$Z4@7tVu`mI_oKpN7%HO~iAfSpj-LmdP0 zkell(v5>d;+pK1w+mC9iXb=%><;d%yd^QVZKN;b~W(yyPmJj|3rHh(aUo7kf_XFa+ z8R)`TL|6K!Gv;b5d*%qdG928Ni697PsA;hJ(~LzB1hf1Z8>A`<+6f=ukEo8JXfVCu zdCF)T^Bj3c%ePFP)p*ShWs6hTK0inpV9*J9NU|A^QuS=v?O}*J_$yO%0Q{{4rHcA( zo3rl6=K@{k()ApX&F&SDO$k6Gv-Jes$_!1RsDDiefg4z3eC})*4zFP?W+q$!V*gVV zyMGY>j|owf!bD(S6sMNn(NGjXIxZoXD~xpsN+3_;>mqe`O`|*&Y_a@AKnsRafohu& zB3csu2Vf$?+=5CoN4WEh_v62_S6$Q4$x)vjCVCXgP)#vI-<2(NB>*k+Xtqi-fP!8i z@)=GpASBW{$HNmkGYNfcLEcpXT`1c2;Qi&R!nFMg*wq7G3HpSf^%h5XCOlu@2vLWK zQ35;+@<}mj%}4iveTju((-lSN6ci7YfL z!Fd-|TDC8m%{oUq7@{@3#qaZ=36aNrYE*=77|pL>n#SSoW1zg~OySEXMqj4_GXu+^ z8Uc12Lb(5I{Y^FiPMU1C;2UZIDJ5;^IKwB7Ya9KbHd3N20csEe%7su(@EB(<>}ae^ zzpmE9hSv9VE!=wgzWqbH7mNFk$rL4O z*TQnM_zH5?;A(X|UYHr(2^d6tY#buZWJdI}Pvr!)<7!?U$!d%C59_3(R?ddeo)?!l zYV~QgMR%Z5Bci|2M>VJH(g&=Q?ji(RnH{>A7|hf9t{0XF7AL7Yl5tlMt~I(fz@!0qmCD zgf!S&{FsrvMqyk&X#gfX`i09Oc!qw%&>C8`*2Q@yISHM9#i zzjnN~VrL<;Lv!?7NxiqyAhKZqMPyKOMBYbk%j(j>6wfa|0f(=<)9P?y7E$U(7x=0& zi`u)T#tbjKSEX^k8>@58e0fjQSBUS5R#!eSO!P$jUNG7c>i}_`-3DmT zlfTFt97l@#Zoye;+P4d81kEG3{$dATui?~I8V`bH7mH&xDmt+zrF)^IFXZQ#=Iv+G zT=?atun~9x%uuc?^VIb}UBw@9oqYg%%dR_ff$YkyGgzdMHl(mejDK0$aaM2!+aT>T zx~7~f{@eb)8~>jT?oMD^!-9_x9g5XHZTawC$H_w+Kqd4YrhSGks0};u*8qKzjbSy# zkU^W7Gkn!@@T+W#oPBfEWsFl!*&o#sai-{jf{b^+(jtHy!`cV>klt%u%GXD=Vi_JK z(fV-UBPCrr3PD9WgzyfjAe8hPB~J`U%d+*;`)2`E3KZZ1cR!VE(Mz%+KzVqqmR_W; zmyRQDI_ew74TK}@OG9Hne#BJ>-J3nf!{-4vljKh}j3VNnWu81H5lG{olI^qP&`gkF z%aIdH{kInFyg6di46+t)ATGheo)gR2Anv_-$rZ7nxEEivh7;^m1*Dck~)txaYJPTMsgG+67#fS_TtRjP6 z7|mn~qRe*LU7A^*DNKE?Q&6-Nj#q}F!J|6AY*&WZ5I2bSg#Ydl7knj$=?*83_>`22 zf<@jU7qCu%PBVK}ulND|#&`W~*dtE$Z}lr{)ethw0~e+R$bx24CPVyEsx`R5g9!P! z{c-$AjMJ!Y%^nlz=x32M?2Mjn?i`5b^mmW@!*TAoT)uVEZxm>_iJ63M%lF-;ht1H3 zQS-{DQ)F((l=pNxILRPJ9}HCjD!oVKe}*XD2`?6hT%`t|^xew0!%AM}ZQDw6t&Lo2 zo2WlpyC-JLRL@>T zCZBVS2QsWWNd}2aLK~HgProB2Hr(u{oy(MC`6-(Eq;AHgjX?Y19T{d0lv{T7$_p2; zC%XA+a$>w5&SNOXquM>7y`Y1wMWjAsn+8it{6(OcZ)(C0d3clsB26%J-Q0@8Mu zVz?R4Au_bn0Twc%BD(nP7lA8>X41pPFcgTvtY_;^~V}}W1lQgAju3(YQ zc88=Yy)P$BAkRr~zS52<#Q3$mU5c%t7&rniv2T!XOS3!WG+L+WnYcelY%w(m@8nQ?W#}b$ZAdj@+azuMR-A$Y#tjN|?x&l3$?As&UU$ zIfZoG{0*L5v^$4=;}_D$7)Jg2`1F28JqF2Kl1Lq8ZCf%^Te|*frfr!b-lx;Z;Xp_o zRUGf8{9OcY)iMvJDUHwcGa7kl|Iq{0#6>M17wi=QJp{ zu&LVWG^|?deSF>P;~Wtqgp{C>{%4IURxQBL{kS+*2$8gWlT&Bao$Lq#0i^DO`ve`? zP;Argu>@OH0(riKXN~R9{YhH!9Il;uSlT+ZuxPz#_aLe?SyMyiEct%axQ(oyxcKwL z1L-WR)!-KnB)t6rS0vnRfeMUfUjrmCPrfgiqvaWS;9-M~@x(!Ir>bxk`2sEYQ$h#K zd59*H&G2W*;E-zd^aEY>l3%u!&?!^j0`s_l<`=1Vt=9MB_h$=vVP}(A@OW>Yq2Yz> zoT=A{56>s=OE|_+c}tCFF1daV)M_kbLx_^>bzs-urp3V-V>+R%^R&UERokCQG*!yx z=-Ru?L(o6;iewH4-Ch@6(&%gL1f`^Zzyy}oLS{YoXT$+=@O}-t zGaUPo#1}6b+q>oaQRio6yQUlM6V!tA^7iwY2Va8N)~6){YlRUyBm8T#B^Er0h*^O* z-REf~A&`J1$k}@xoqX^tA8%c@IE>kLE z|2jFlP|tN@&f|K4lSg2SIL-$L$k`qRj+m_DfY zw7=~4gXA3K1gv29UGKZOOHRLDM=txpM|7p{*W1qn;_sXKCW4#I@6G8qGs&8d0aD}`IGUBfpFl_m&F>fg)<6@>T|_J~_9dwzCI{hyo221!im;5osb9G~ z-Whz;POwuFDT$C!Qb-B4LA(};?$_qM`qH*+X+hm~|5rfeq`zB6a_lX#hV@Lpde*YQ zZ_;S(MZ22v5RyT?%M3nL`9}q6$Vh^fvBQK^)Qv&Kh~J#>^+1AMXN0$wDo1OA!7?7! z-hMjt`#k+7CsyE=r(;WVyM^Hh-t5Q*UTu$k+3X6y#&m*;VPC9M2GdzF8r#u}N>QrY z&(L7`K$8lM;p9mD-4IP#yTLx!;*xT?Z{!3o^VQkdQ!)nrL%MW)it8n1U*xLx`1ekN z=lySN8i`25EL&3}9xBb1_`5zqrJB#4nyEe{oscYo&pDjqgpG{kGCCyp7E!l6SUqz@zNs z_GtVnO+s`XcG81qA!LD;3=-3NX*j&eu?~qf$xbOAizSWoic5R?3k$T74z>(944;%; z$zQV#pu6x;d)^gmX(^QOI{@Ou#8}q)`X1~w>=c){aW?p|q{ulzpoI?(xJ%JL7Fz{t zO7Sq!--`}d#-nGfw8d7vkQ)a-Z^mlLd{`=}0*T^L5Qo0w6C= zF#|SkOW&!zy%RG_uM_^09!B>8UH3!u+X#KCY#O$`q!bzP{?pp{-t=pYqrz))`J1n= z9~6Hs-4c#Bfx2%|OYBS?k;!X>u=B8u2PM&G%=Xg1l4E#h2$Z)P|E(`15uWQ;??tyy zy_JK%>!eI$URl%bddoOkd<*_`6`VNIu0^~rp2X{Zaf6J+U>+3~%E!Jcfzqy!GS@=% z8j*>zK)UFR+XEAW05^7Nq69Ys2%(o#ClAGrd>(rFfoBTCkZ+S9q|>wvZUWA1^biLyeN5mF6+|% zYDx0$sb+9f?~1Fb`l2UpL-?clk=pFtT(&hK;2g35(a4at1h~B~SWQ=7F7xEJ@zr6b z-$^~Gc&t!w1{r47Q}0^%$)%H2d#1wih(>{GhG_DZ>_7dYE2N<=azGeCdr}b%^ep6r zj22G-h8-$ir^q~EO&f!AxH7d>{_%>C(lWvS+sW4zs2f=&dcmE;?=s1&sqw0g6om{<=1^DD+mR1Y+e zn$xU&H(!o9bw(L51R5AE)o>=0aS)u7 z$};~S0Ion$zqM6qUVt-RvP>9?DYI2M+@Sk>G~&Y~h&{3&5}GNe$faFN=hn|voggz% zJUcYj;Ue30#S%>?e^Kf3T!9+ulFqkEqq8dJ)XD>Htb@Q_ou?ZBjzV&hWzM-Hy{3wV zWF_+5S5dG)7hD40hJ@o{|5l|9S4{ zGC-pqCoOe9N=IMyMIzbF|_t90@sO?#zFrLGTe16dFM*ZECMz zNoEy-rU$2FdX?1HO5_TH~;2d-b+pFg*e zJpZB(q5OQ9N#06z-j+~9nlHre-}RgV%07F#yJHps( z!&`b*JSwL?%nF>Gu6_r1SD54q5Q()#7 zkcDF;A3sQ8t+}ir+*7aXb*<&OYjuuHN@^XK653_N$7_Ah6xVE9;bt>rm$tGKxdN^s z=-7?`nH^&vQ*FWr3}kAW0u8wNjtOX0J@P$OXzaUH*MMdpHIW=3!Z@`}^SUmN$%I-1 z6MYH{9IF^OCyQ}BURkQ$%53?1UGI4-FA5!U`D$AaWjh+{e_Af<3}ZQ=@x&C#)YNB& z9XS#HV@32K9P)T>WGQQ?=h|TCL)NvyuvJ{+gn$0?pPqdWch3x1{|&Y2ksr907WD4m z;YgUvcsdYCTo^;DHg+zYYP6#jjNwp(Ll(uV7@0;XJ`OvP@H<)-*nVVt>(J2e&@kp5 z`)1Q?we}U<`ebr&-YUS*#z-fDsKIbjx#oMH+ElmS%}>*r#Db^Kh) zN)O|!RqOcm!Ln}u=XJ{E{g$g#HR4wvPLEDrA0O)w5nSD2lmqw@L;o=CQRV z19R93*oZ0ev2qL_amRnG?&)K8D%zPJ!112l!^JW&X=4p_%z5I3LX$uw?B{~?y819~ zwLZKH$y+hQweIb1k)7^NcMCVjY$s*vFF{!+r*J`OH3606Mz55iHIGzG<3x4Ds1r|E zCz9fKHjFn7k3Xfq3z_l;Tp4B=F1`#_8HUxjE-Gk=&eF{LFiO-Mn?utu6g(UX83}2P zWHPsd5u-6U@lfAK;R`|CMeaaYlRTpxOD7#l83+iE6$?g=-9uVpwnL8Iz4ltICr^F> z3nMe|OK@okV{k8W+yQcv@c(=AM2lS~)|kz_Rw>Kuzzc@cG~(~E%pRHb`eehdxSoc= z96eW{(hh*PYvcKS99oZ#EfOPi1S=s*cQ6#6N5&mw4Bpv@Wdj} z6PN>h*Xodc(0j=w1aS@ZUry^dP5muGZN)$gFP@;mG*_-(Ad4EGnvUT9Oss-6^u)2v1l%Gz?iwrVLqWjG@%2Qx}=4Kl8KlKJ!0MYC7q|5 zPgnlT@B~o$K)`Lk3IJ<{?wnU{S;tkB%ytZt+N)%1sgTL|U`626 z_61Yn<4gr%w;~Pa8l|#f7+hw4e(r5Mu-miBJ`7te8n;tpH&w2tYGPo~gq2>PSPhq2 zwQ*)UA7{HCr+jSq(?{vgPNG<6NR?*PaEq8v;TX~0!Vn8G+tn-gvtpwpAOR0A6fR6H zTN5X-kemi;TQVhr83Sf!2mZecitJ7{5Mv1DwATcZisFMnjJL4_L$g6(p=LXsSeT!? z+i-e4BHv3!L2YcPtJPJ-OioE3dE0)r35+v})o>W&Cc~bnfX-Ood~)rF`Xru6k&Gvn z0vV3@R0Kvhigye+26GChox5#os+#Xq_tW=4YwjRcAJ61I2!feeEf`KqmWfa&?+;XZ zNdplAs)SBq94t~K&rEq!o*tDfDX)<74|wgok-vsb4OEl@&+AlOV|g)11j3ce3-&kn zGI#V7D3%(pQZk^!izL#g8+z1QuXa?#r*xQxb36fsVuTK@@60>ke@fSR*4EHCq>rvK zWy3@Qxix?lHRWhgLn?Tlyo{i8w#IoR*&ZWL17@#Y)CqR=AH_gd+P@AD(i4dih#XBJT8un$84%T zbbs@vET%9}4cX`RCi20D=&4_HZHsBFiH~A2+*xqr7iP=?`W;QlhSX<91z&eDVd4Nd z%_)yYks|J7In$bN7DxEjV7uLQU@BVdFehs`Emp`HwNl1671&`*JGvJuO~LJJzS8>x z9P+>Hy(QXF2|EutVa&DR6n?e`*rhvPz@rFrRHwU87ZM>`JnOpE%6aZ|ahN~w5EWqh zm^H*pncLm~+_jOY@UY-`X3SFqF)l5H9fSTx3K%VX)f}bErNB(Pi1gOixiQvzp66)V zNcZJl_t{==$9wi2Iez=YJ3?N)`n%Dd7FG$3E(|94Kz?*%`oC2Db}qSd9K4T z-k@5Np^@R<9fA%l0Ny#}Rp(oS2*FGir^&sY<8$UCPO2rYrG`gnF$^%tnt+x<63XtDNJ{qyW(|KRAar$_IP&yL@{ z{p-&shx_M8hgEic?(^5P^ZoOm&j|VJ!9Vs-&-35*Pfp1Dqf_0UvqS!Bk3aI)o-Mi4 z-RX9^FFW0*q_?}b``zBNr{0T~yH8(scV0dx-*&s*F8TTV;IB4v&0ihbW2WM-y`J|{ z?~{yVSQ_DgT6|8A_7DF>2(e)3H)rSjr|0_j{*Onk8hS?v>22fiPYs7cNH=Tu#dBrX z=G-}Ij5vTX(cvy><2%5K9914s9$fo4Y8^=_W4@0$VleHQLz7li-`{yXZ^!O#GiARpAiozp zb%eHx@@q0aOZd%2oR9uiz0#d-w$=}WEcL!KWXXzQVd_|`w|=T;E1j93M6^LvHr!d& zvmFV46ZT&^zXLFN5HsUblB=FtznH})bgX5#RLk0Tk-cxjsio}DOJs*mBpdNh)*eAi zKPc?kX1JDmMJ$FQK$i^x-c#`TSj8OdbY@y$L`l*HOvsyAXYJZp1&YN*9NqH<1n@7+%%zp(3q1dXap=7jNbJp zuK6$_$&c@U@-QNf<+Of${}Vxz4$u$kg)MM|1Ig$Glc*-iOf(*wOK>qFGtMr-X54Uk z`p9YSQ#e84L_u%5zWGiP; z9t3bfQ51Mm%>a0r86S9Jf^QfjuUyn5sCAN^dG=$kyG45FkI>uEm}gtv@t%3)IL?%R z8hResrt%ss*Zl~1cc2=BWaRwp3|k$L2I0q;356ejPv_%VrHqF2@#IMwc@f1DXGVHG zVEq~OH6pklx=)^XX*@o-7>R8NH$SxiH0A*qz|LMX8GTp=A}D8x-C|GsC4d%(dH;#*%+((nY?)rZw#ZY&Cj0m7ljQqsKI1 zDnO&BVj=06;ngJu1Wb@rrm-${wM5|=0k^*4*d9PmoChs3D=}r(t^kb1@>8u@dNcoJ zWyUWo0FR1-eV@b5rK*tDSu#NHNE1c@#%np~!JJ%bDx`b7j`_K6eG2wZDluksW~$+~ zm8lq93a(|@j%~Ki^eLK{Fo`3^`~e+akSyE+lj?sv7Y?mfrYm{!1TzsAwhA1)ZWW^CaUel1WHlMf@4ZxCW|U~5y&EgJJ?eXu&E&SDWo z`LX7kdGe&ZnAV2if9PdhjsZ`evBBaQ5`_8Y%7Og!se=rH(Qg&|%PHx4J#W`&^X%C$1jgIZkeUmx z%*!Udv=)KyYRH(CRvdyu!z@&v^{e)r4Aqc7LCdWU0vcYp zMtRoX&JAV^P7&x^J7a-}^eA$72)oYiNI55%VV;luZO!~LdlQYkXDk3Bx#gIlf~8cz zTx(WyVF(UW8Ye-`;kAy9%M;4$G(^6`-o$6b2djIdBnTiv5}B|d(z9ao8S6l*d3P=>wee!r}xi38Auvp`s98O-sBD_=RyhZ?^Mhp6qcO(cN;Pn zEC4q8XGf>+j}MMMzTJOw)JF*+jdZ`!fA{(@qhp(P13PNGj3vhVmy#ruvsH+Nv4lje zjqS(${r27Y(U}*2GKqw91GQ03OVa1sb05k)P^oyEEu+XT4mVIJF(%~@yT_xDz z+AAk5eg2Z=C_$UbLQ%D!@Zy6;Pjmc%29Cw(9Fm0rW9L2Gl zMoDKvTqGo&pVO-3aQ}S&`~5TXnZnm{BX$CEvuLjpvS}So*pz1ejzF=}JQ}VY|AOqyE)5Ii)YX{wmzz9} zW@Bi5WcE}4YqTW3Q3rqd%U`5HB2U%I{L zPj`3zLb^BYxXF`fZuBqR8~0TN?hAQJE56qv#M-M)gt*uv?O)rGWF2#QZ)pH9zkpJ`ySiZ=k6b8|6^8%)1&>vH%H#o zzr8+|p8q?$h4cSucjxQ=U(0hKqB()gaOg-?xC^GCzb#}%YAc&wFvgS~CYtw@MqiKm zFX}1nf0MlEHp#%U{r}==iU04tc>Z<&uj6T$N9(4^vxa#xQ=LM~Yn?-io_tm;9{!G@ z*b9UP?Ru#1rA@?gEO{{Cq^pIYN0g1hc|F*hIO0LDn?%ZYJm|JP@Ax;9N% zw*Q}YcMAM}ulHj2>;7NI^RMa+Y7D0GNt=YsayB6iuxY-iWHzsuPy8(TBVG~=gh->E z*yO(}?22n{2kscbbtt3+ux^u^PQWzpzE|LWA6NcIV{X(4Z)fo~ZrsO`{om_8dr{Q? z_nv*#|E=YrdCmWj#%wI)e2*N5BT3V6F0FjToED9u^v|C6!t1s0;?Kl++$XR3KvFq( zgYb-mM1KtojSmsb(1^^2c{Q7v*ihtzoaYkzqiJarh`9~agF%YC)B6Mf0-_gQ^lSWc%*hBOc`S!=>pq|=Mmc@ z0j^(bmS5%jM%S;;EkCvN{}!)+mg;|=m+ybOFTT?Mbv%zAkpdlj^oShCB#WdBHe(0J z+Xsgv7QzIdiKG}ZrL@fU=n?tf>Vii$e878+IITyITJGPLNMX3huVm!GJhl7Zo?2@A zV-_;ii=%5$gC+a_`SYD#QU2T6dG>YxujBdi&+R8<#;1D_`&J8e`uu-2)zdPZus!l* z`}5~kOBZXMGDzw`i4r5Uo3>GIF-|yUT5kRMr}cIuZA2!|!63*$;^`LJWW(pfn6xk0 zyiM9aynELsZ9I0`WFz1zChhO{Puu$c|JmN$B%RNnTQHnI|LoYvIUw19kB;p#hypam(jHxKWB29CbRs4)^fq>-C*I;HPgGj zP1?9y?qmgV@en3HBJ2<1=}v8*26Fh?jB0pJgDg-i-zwtEDy?FTT&rfj7tB47Kqo@@ zb|ENu^Ys89k{mr8ifJT57RKpXuurk1Z#2@rrUMqJHu2sge_s5eYeNQvHuH+GgaNa=J==}btjj%E+>PQ| zKt<(EbJJ^Pag$t;kYl>JUN^r@4MK+^CL3rpl}*}au_%co591MOm&3HBmG;QrRNI~T zQg;r0FVdNBF4%mFd;_~y&wqJQiX-|42^yi*f~^KBXv zvea@cA`yu3{3lIr^Aj==DoZll{2aTz-IzPo?q@e<$KLvO zck}I5vDvP<)f#WKLYL)Dw&E6RvcVQ?saxAk>tQvpr(57OoU`!u7!7AjFXJ=TEdMo; z|A#c95LxG%8h~Z;|Fh!#&ra{z)35UXTApjj|M7&8n94DWbEzPWD`?$b%^{H{N9O)0 zJLLE%Jx5I%U3YU8Ke}zW1s9a+IK^N;JAc~)(mQa+`BPTgv#r<;YFlvG!jYZw=qtY*Lw2gJQq+I(kMXOC>qm1j2|m9 zxiS0D?R@v!=93Tq|IfcY`TY5tHrdEc54j?- zIE%s1)u^6yJAgimuN~j*Sq`w%X0aDxA(Mo|KEMu`|AI-mZzEg4>a-| zQ-$HSEhalb{|eN~X4zcL-6yzK=q8Ct4-MtKR_kX)$7~PP)-x0BRD_V>q1z>UuSz<# ztdKGntDf#SU>-D?>KftOPoQFqXgu*^k!CsVcH5+lS*y|?Z|Rh^NgFaWKou<7>2}-M z`BWNV@2*DJTVaH~bcCg$n0;$vb$D5fz0ycruu?s2#fp@tU^9Qkp%2tkYd4mL&;gGi zg%<|J-bjZSI@%$&rbk}u0f>=PTAy)_OOAvCdrMPp3{Hfo$76B{u1xVnic5RK=zh&8 z2}Bk%zq0;LD8vG^%JteKW!aQwy4~Vb!8Oe9f`@QzQ=SD^b4^3PqJByBf2@8s0q