From 9a2c47904fbba97f2ca85cbc515dcc42964acd40 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 14 Jun 2021 16:03:41 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- deprecated/nzbhydra/6.1.0/CONFIG.md | 8 + deprecated/nzbhydra/6.1.0/Chart.lock | 6 + deprecated/nzbhydra/6.1.0/Chart.yaml | 20 + deprecated/nzbhydra/6.1.0/README.md | 53 + deprecated/nzbhydra/6.1.0/app-readme.md | 3 + .../nzbhydra/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes deprecated/nzbhydra/6.1.0/ix_values.yaml | 51 + deprecated/nzbhydra/6.1.0/questions.yaml | 647 +++++++++ .../nzbhydra/6.1.0/templates/common.yaml | 1 + deprecated/nzbhydra/6.1.0/test_values.yaml | 62 + deprecated/nzbhydra/6.1.0/values.yaml | 0 develop/prototype-gui/1.2.0/CONFIG.md | 8 + develop/prototype-gui/1.2.0/Chart.lock | 6 + develop/prototype-gui/1.2.0/Chart.yaml | 22 + develop/prototype-gui/1.2.0/README.md | 49 + develop/prototype-gui/1.2.0/app-readme.md | 3 + .../1.2.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes develop/prototype-gui/1.2.0/ix_values.yaml | 25 + develop/prototype-gui/1.2.0/questions.yaml | 651 +++++++++ .../prototype-gui/1.2.0/templates/common.yaml | 1 + develop/prototype-gui/1.2.0/test_values.yaml | 39 + develop/prototype-gui/1.2.0/values.yaml | 0 incubator/airsonic/1.1.0/CONFIG.md | 8 + incubator/airsonic/1.1.0/Chart.lock | 6 + incubator/airsonic/1.1.0/Chart.yaml | 22 + incubator/airsonic/1.1.0/README.md | 55 + incubator/airsonic/1.1.0/app-readme.md | 1 + .../airsonic/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/airsonic/1.1.0/ix_values.yaml | 19 + incubator/airsonic/1.1.0/questions.yaml | 555 ++++++++ .../airsonic/1.1.0/templates/common.yaml | 1 + incubator/airsonic/1.1.0/test_values.yaml | 60 + incubator/airsonic/1.1.0/values.yaml | 0 incubator/appdaemon/3.1.0/CONFIG.md | 8 + incubator/appdaemon/3.1.0/Chart.lock | 6 + incubator/appdaemon/3.1.0/Chart.yaml | 29 + incubator/appdaemon/3.1.0/README.md | 53 + incubator/appdaemon/3.1.0/app-readme.md | 3 + .../appdaemon/3.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/appdaemon/3.1.0/ix_values.yaml | 16 + incubator/appdaemon/3.1.0/questions.yaml | 485 +++++++ .../appdaemon/3.1.0/templates/common.yaml | 1 + incubator/appdaemon/3.1.0/test_values.yaml | 41 + incubator/appdaemon/3.1.0/values.yaml | 0 incubator/bazarr/6.1.0/CONFIG.md | 8 + incubator/bazarr/6.1.0/Chart.lock | 6 + incubator/bazarr/6.1.0/Chart.yaml | 32 + incubator/bazarr/6.1.0/README.md | 54 + incubator/bazarr/6.1.0/app-readme.md | 3 + .../bazarr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/bazarr/6.1.0/ix_values.yaml | 15 + incubator/bazarr/6.1.0/questions.yaml | 647 +++++++++ incubator/bazarr/6.1.0/templates/common.yaml | 1 + incubator/bazarr/6.1.0/test_values.yaml | 26 + incubator/bazarr/6.1.0/values.yaml | 0 incubator/calibre-web/6.1.0/CONFIG.md | 8 + incubator/calibre-web/6.1.0/Chart.lock | 6 + incubator/calibre-web/6.1.0/Chart.yaml | 26 + incubator/calibre-web/6.1.0/README.md | 54 + incubator/calibre-web/6.1.0/app-readme.md | 3 + .../calibre-web/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/calibre-web/6.1.0/ix_values.yaml | 16 + incubator/calibre-web/6.1.0/questions.yaml | 607 +++++++++ .../calibre-web/6.1.0/templates/common.yaml | 1 + incubator/calibre-web/6.1.0/test_values.yaml | 28 + incubator/calibre-web/6.1.0/values.yaml | 0 incubator/deluge/6.1.0/CONFIG.md | 8 + incubator/deluge/6.1.0/Chart.lock | 6 + incubator/deluge/6.1.0/Chart.yaml | 24 + incubator/deluge/6.1.0/README.md | 53 + incubator/deluge/6.1.0/app-readme.md | 3 + .../deluge/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/deluge/6.1.0/ix_values.yaml | 16 + incubator/deluge/6.1.0/questions.yaml | 724 +++++++++++ incubator/deluge/6.1.0/templates/common.yaml | 1 + incubator/deluge/6.1.0/test_values.yaml | 33 + incubator/deluge/6.1.0/values.yaml | 0 incubator/fireflyiii/4.1.0/CONFIG.md | 8 + incubator/fireflyiii/4.1.0/Chart.lock | 9 + incubator/fireflyiii/4.1.0/Chart.yaml | 30 + incubator/fireflyiii/4.1.0/README.md | 54 + incubator/fireflyiii/4.1.0/app-readme.md | 3 + .../fireflyiii/4.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes .../4.1.0/charts/postgresql-10.4.9.tgz | Bin 0 -> 48739 bytes incubator/fireflyiii/4.1.0/ix_values.yaml | 51 + incubator/fireflyiii/4.1.0/questions.yaml | 827 ++++++++++++ .../fireflyiii/4.1.0/templates/common.yaml | 5 + .../fireflyiii/4.1.0/templates/secrets.yaml | 19 + incubator/fireflyiii/4.1.0/test_values.yaml | 82 ++ incubator/fireflyiii/4.1.0/values.yaml | 0 incubator/freshrss/6.1.0/CONFIG.md | 8 + incubator/freshrss/6.1.0/Chart.lock | 6 + incubator/freshrss/6.1.0/Chart.yaml | 24 + incubator/freshrss/6.1.0/README.md | 54 + incubator/freshrss/6.1.0/app-readme.md | 3 + .../freshrss/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/freshrss/6.1.0/ix_values.yaml | 16 + incubator/freshrss/6.1.0/questions.yaml | 607 +++++++++ .../freshrss/6.1.0/templates/common.yaml | 1 + incubator/freshrss/6.1.0/test_values.yaml | 26 + incubator/freshrss/6.1.0/values.yaml | 0 incubator/gaps/6.1.0/CONFIG.md | 8 + incubator/gaps/6.1.0/Chart.lock | 6 + incubator/gaps/6.1.0/Chart.yaml | 25 + incubator/gaps/6.1.0/README.md | 53 + incubator/gaps/6.1.0/app-readme.md | 3 + incubator/gaps/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/gaps/6.1.0/ix_values.yaml | 15 + incubator/gaps/6.1.0/questions.yaml | 646 +++++++++ incubator/gaps/6.1.0/templates/common.yaml | 1 + incubator/gaps/6.1.0/test_values.yaml | 24 + incubator/gaps/6.1.0/values.yaml | 0 incubator/grocy/6.1.0/CONFIG.md | 8 + incubator/grocy/6.1.0/Chart.lock | 6 + incubator/grocy/6.1.0/Chart.yaml | 23 + incubator/grocy/6.1.0/README.md | 53 + incubator/grocy/6.1.0/app-readme.md | 3 + incubator/grocy/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/grocy/6.1.0/ix_values.yaml | 16 + incubator/grocy/6.1.0/questions.yaml | 606 +++++++++ incubator/grocy/6.1.0/templates/common.yaml | 1 + incubator/grocy/6.1.0/test_values.yaml | 26 + incubator/grocy/6.1.0/values.yaml | 0 incubator/haste-server/1.1.0/CONFIG.md | 8 + incubator/haste-server/1.1.0/Chart.lock | 6 + incubator/haste-server/1.1.0/Chart.yaml | 24 + incubator/haste-server/1.1.0/README.md | 54 + incubator/haste-server/1.1.0/app-readme.md | 1 + .../1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/haste-server/1.1.0/ix_values.yaml | 19 + incubator/haste-server/1.1.0/questions.yaml | 553 ++++++++ .../haste-server/1.1.0/templates/common.yaml | 1 + incubator/haste-server/1.1.0/test_values.yaml | 45 + incubator/haste-server/1.1.0/values.yaml | 0 incubator/heimdall/6.1.0/CONFIG.md | 8 + incubator/heimdall/6.1.0/Chart.lock | 6 + incubator/heimdall/6.1.0/Chart.yaml | 21 + incubator/heimdall/6.1.0/README.md | 49 + incubator/heimdall/6.1.0/app-readme.md | 3 + .../heimdall/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/heimdall/6.1.0/ix_values.yaml | 16 + incubator/heimdall/6.1.0/questions.yaml | 607 +++++++++ .../heimdall/6.1.0/templates/common.yaml | 1 + incubator/heimdall/6.1.0/test_values.yaml | 30 + incubator/heimdall/6.1.0/values.yaml | 0 incubator/lazylibrarian/6.1.0/CONFIG.md | 8 + incubator/lazylibrarian/6.1.0/Chart.lock | 6 + incubator/lazylibrarian/6.1.0/Chart.yaml | 27 + incubator/lazylibrarian/6.1.0/README.md | 54 + incubator/lazylibrarian/6.1.0/app-readme.md | 3 + .../6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/lazylibrarian/6.1.0/ix_values.yaml | 16 + incubator/lazylibrarian/6.1.0/questions.yaml | 607 +++++++++ .../lazylibrarian/6.1.0/templates/common.yaml | 1 + .../lazylibrarian/6.1.0/test_values.yaml | 26 + incubator/lazylibrarian/6.1.0/values.yaml | 0 incubator/lychee/6.1.0/CONFIG.md | 8 + incubator/lychee/6.1.0/Chart.lock | 6 + incubator/lychee/6.1.0/Chart.yaml | 26 + incubator/lychee/6.1.0/README.md | 54 + incubator/lychee/6.1.0/app-readme.md | 3 + .../lychee/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/lychee/6.1.0/ix_values.yaml | 16 + incubator/lychee/6.1.0/questions.yaml | 607 +++++++++ incubator/lychee/6.1.0/templates/common.yaml | 1 + incubator/lychee/6.1.0/test_values.yaml | 26 + incubator/lychee/6.1.0/values.yaml | 0 incubator/mealie/1.1.0/CONFIG.md | 8 + incubator/mealie/1.1.0/Chart.lock | 6 + incubator/mealie/1.1.0/Chart.yaml | 22 + incubator/mealie/1.1.0/README.md | 53 + incubator/mealie/1.1.0/app-readme.md | 1 + .../mealie/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/mealie/1.1.0/ix_values.yaml | 19 + incubator/mealie/1.1.0/questions.yaml | 548 ++++++++ incubator/mealie/1.1.0/templates/common.yaml | 1 + incubator/mealie/1.1.0/test_values.yaml | 43 + incubator/mealie/1.1.0/values.yaml | 0 incubator/mosquitto/1.1.0/CONFIG.md | 8 + incubator/mosquitto/1.1.0/Chart.lock | 6 + incubator/mosquitto/1.1.0/Chart.yaml | 24 + incubator/mosquitto/1.1.0/README.md | 53 + incubator/mosquitto/1.1.0/app-readme.md | 3 + .../mosquitto/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/mosquitto/1.1.0/ix_values.yaml | 18 + incubator/mosquitto/1.1.0/questions.yaml | 779 +++++++++++ .../mosquitto/1.1.0/templates/common.yaml | 17 + .../mosquitto/1.1.0/templates/configmap.yaml | 22 + incubator/mosquitto/1.1.0/test_values.yaml | 40 + incubator/mosquitto/1.1.0/values.yaml | 0 incubator/navidrome/6.1.0/CONFIG.md | 8 + incubator/navidrome/6.1.0/Chart.lock | 6 + incubator/navidrome/6.1.0/Chart.yaml | 25 + incubator/navidrome/6.1.0/README.md | 54 + incubator/navidrome/6.1.0/app-readme.md | 3 + .../navidrome/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/navidrome/6.1.0/ix_values.yaml | 15 + incubator/navidrome/6.1.0/questions.yaml | 647 +++++++++ .../navidrome/6.1.0/templates/common.yaml | 1 + incubator/navidrome/6.1.0/test_values.yaml | 28 + incubator/navidrome/6.1.0/values.yaml | 0 incubator/node-red/6.1.0/CONFIG.md | 8 + incubator/node-red/6.1.0/Chart.lock | 6 + incubator/node-red/6.1.0/Chart.yaml | 23 + incubator/node-red/6.1.0/README.md | 53 + incubator/node-red/6.1.0/app-readme.md | 3 + .../node-red/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/node-red/6.1.0/ix_values.yaml | 15 + incubator/node-red/6.1.0/questions.yaml | 647 +++++++++ .../node-red/6.1.0/templates/common.yaml | 1 + incubator/node-red/6.1.0/test_values.yaml | 30 + incubator/node-red/6.1.0/values.yaml | 0 incubator/nzbget/6.1.0/CONFIG.md | 8 + incubator/nzbget/6.1.0/Chart.lock | 6 + incubator/nzbget/6.1.0/Chart.yaml | 23 + incubator/nzbget/6.1.0/README.md | 53 + incubator/nzbget/6.1.0/app-readme.md | 3 + .../nzbget/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/nzbget/6.1.0/ix_values.yaml | 25 + incubator/nzbget/6.1.0/questions.yaml | 647 +++++++++ incubator/nzbget/6.1.0/templates/common.yaml | 1 + incubator/nzbget/6.1.0/test_values.yaml | 31 + incubator/nzbget/6.1.0/values.yaml | 0 incubator/organizr/6.1.0/CONFIG.md | 8 + incubator/organizr/6.1.0/Chart.lock | 6 + incubator/organizr/6.1.0/Chart.yaml | 23 + incubator/organizr/6.1.0/README.md | 54 + incubator/organizr/6.1.0/app-readme.md | 3 + .../organizr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/organizr/6.1.0/ix_values.yaml | 16 + incubator/organizr/6.1.0/questions.yaml | 717 ++++++++++ .../organizr/6.1.0/templates/common.yaml | 1 + incubator/organizr/6.1.0/test_values.yaml | 26 + incubator/organizr/6.1.0/values.yaml | 0 incubator/podgrab/4.1.0/CONFIG.md | 8 + incubator/podgrab/4.1.0/Chart.lock | 6 + incubator/podgrab/4.1.0/Chart.yaml | 27 + incubator/podgrab/4.1.0/README.md | 54 + incubator/podgrab/4.1.0/app-readme.md | 3 + .../podgrab/4.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/podgrab/4.1.0/ix_values.yaml | 26 + incubator/podgrab/4.1.0/questions.yaml | 655 ++++++++++ incubator/podgrab/4.1.0/templates/common.yaml | 1 + incubator/podgrab/4.1.0/test_values.yaml | 57 + incubator/podgrab/4.1.0/values.yaml | 0 incubator/prowlarr/1.1.0/CONFIG.md | 8 + incubator/prowlarr/1.1.0/Chart.lock | 6 + incubator/prowlarr/1.1.0/Chart.yaml | 24 + incubator/prowlarr/1.1.0/README.md | 54 + incubator/prowlarr/1.1.0/app-readme.md | 1 + .../prowlarr/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/prowlarr/1.1.0/ix_values.yaml | 19 + incubator/prowlarr/1.1.0/questions.yaml | 555 ++++++++ .../prowlarr/1.1.0/templates/common.yaml | 1 + incubator/prowlarr/1.1.0/test_values.yaml | 40 + incubator/prowlarr/1.1.0/values.yaml | 0 incubator/qbittorrent/6.1.0/CONFIG.md | 8 + incubator/qbittorrent/6.1.0/Chart.lock | 6 + incubator/qbittorrent/6.1.0/Chart.yaml | 22 + incubator/qbittorrent/6.1.0/README.md | 49 + incubator/qbittorrent/6.1.0/app-readme.md | 3 + .../qbittorrent/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/qbittorrent/6.1.0/ix_values.yaml | 15 + incubator/qbittorrent/6.1.0/questions.yaml | 794 +++++++++++ .../6.1.0/templates/_configmap.tpl | 32 + .../qbittorrent/6.1.0/templates/common.yaml | 6 + incubator/qbittorrent/6.1.0/test_values.yaml | 52 + incubator/qbittorrent/6.1.0/values.yaml | 0 incubator/readarr/6.1.0/CONFIG.md | 8 + incubator/readarr/6.1.0/Chart.lock | 6 + incubator/readarr/6.1.0/Chart.yaml | 30 + incubator/readarr/6.1.0/README.md | 54 + incubator/readarr/6.1.0/app-readme.md | 3 + .../readarr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/readarr/6.1.0/ix_values.yaml | 37 + incubator/readarr/6.1.0/questions.yaml | 647 +++++++++ incubator/readarr/6.1.0/templates/common.yaml | 1 + incubator/readarr/6.1.0/test_values.yaml | 47 + incubator/readarr/6.1.0/values.yaml | 0 incubator/reg/1.1.0/CONFIG.md | 8 + incubator/reg/1.1.0/Chart.lock | 6 + incubator/reg/1.1.0/Chart.yaml | 22 + incubator/reg/1.1.0/README.md | 54 + incubator/reg/1.1.0/app-readme.md | 1 + incubator/reg/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/reg/1.1.0/ci/ct-values.yaml | 2 + incubator/reg/1.1.0/ix_values.yaml | 19 + incubator/reg/1.1.0/questions.yaml | 543 ++++++++ incubator/reg/1.1.0/templates/common.yaml | 1 + incubator/reg/1.1.0/test_values.yaml | 35 + incubator/reg/1.1.0/values.yaml | 0 incubator/sabnzbd/6.1.0/CONFIG.md | 8 + incubator/sabnzbd/6.1.0/Chart.lock | 6 + incubator/sabnzbd/6.1.0/Chart.yaml | 23 + incubator/sabnzbd/6.1.0/README.md | 53 + incubator/sabnzbd/6.1.0/app-readme.md | 3 + .../sabnzbd/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/sabnzbd/6.1.0/ix_values.yaml | 15 + incubator/sabnzbd/6.1.0/questions.yaml | 654 ++++++++++ incubator/sabnzbd/6.1.0/templates/common.yaml | 1 + incubator/sabnzbd/6.1.0/test_values.yaml | 26 + incubator/sabnzbd/6.1.0/values.yaml | 0 incubator/thelounge/1.1.0/CONFIG.md | 8 + incubator/thelounge/1.1.0/Chart.lock | 6 + incubator/thelounge/1.1.0/Chart.yaml | 24 + incubator/thelounge/1.1.0/README.md | 53 + incubator/thelounge/1.1.0/app-readme.md | 1 + .../thelounge/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/thelounge/1.1.0/ix_values.yaml | 19 + incubator/thelounge/1.1.0/questions.yaml | 548 ++++++++ .../thelounge/1.1.0/templates/common.yaml | 1 + incubator/thelounge/1.1.0/test_values.yaml | 44 + incubator/thelounge/1.1.0/values.yaml | 0 incubator/tvheadend/7.1.0/CONFIG.md | 8 + incubator/tvheadend/7.1.0/Chart.lock | 6 + incubator/tvheadend/7.1.0/Chart.yaml | 25 + incubator/tvheadend/7.1.0/README.md | 53 + incubator/tvheadend/7.1.0/app-readme.md | 3 + .../tvheadend/7.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/tvheadend/7.1.0/ix_values.yaml | 15 + incubator/tvheadend/7.1.0/questions.yaml | 703 ++++++++++ .../tvheadend/7.1.0/templates/common.yaml | 1 + incubator/tvheadend/7.1.0/test_values.yaml | 36 + incubator/tvheadend/7.1.0/values.yaml | 0 incubator/unifi/6.1.0/CONFIG.md | 8 + incubator/unifi/6.1.0/Chart.lock | 6 + incubator/unifi/6.1.0/Chart.yaml | 24 + incubator/unifi/6.1.0/README.md | 54 + incubator/unifi/6.1.0/app-readme.md | 3 + incubator/unifi/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/unifi/6.1.0/ix_values.yaml | 19 + incubator/unifi/6.1.0/questions.yaml | 802 ++++++++++++ incubator/unifi/6.1.0/templates/common.yaml | 1 + incubator/unifi/6.1.0/test_values.yaml | 48 + incubator/unifi/6.1.0/values.yaml | 0 incubator/unpackerr/1.1.0/CONFIG.md | 8 + incubator/unpackerr/1.1.0/Chart.lock | 6 + incubator/unpackerr/1.1.0/Chart.yaml | 29 + incubator/unpackerr/1.1.0/README.md | 54 + incubator/unpackerr/1.1.0/app-readme.md | 3 + .../unpackerr/1.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes incubator/unpackerr/1.1.0/ix_values.yaml | 25 + incubator/unpackerr/1.1.0/questions.yaml | 541 ++++++++ .../unpackerr/1.1.0/templates/common.yaml | 1 + incubator/unpackerr/1.1.0/test_values.yaml | 45 + incubator/unpackerr/1.1.0/values.yaml | 0 stable/collabora-online/6.1.0/CONFIG.md | 8 + stable/collabora-online/6.1.0/Chart.lock | 6 + stable/collabora-online/6.1.0/Chart.yaml | 27 + stable/collabora-online/6.1.0/README.md | 54 + stable/collabora-online/6.1.0/app-readme.md | 3 + .../6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/collabora-online/6.1.0/ix_values.yaml | 14 + stable/collabora-online/6.1.0/questions.yaml | 510 ++++++++ .../6.1.0/templates/common.yaml | 1 + .../collabora-online/6.1.0/test_values.yaml | 22 + stable/collabora-online/6.1.0/values.yaml | 0 stable/deepstack-cpu/4.1.0/CONFIG.md | 8 + stable/deepstack-cpu/4.1.0/Chart.lock | 6 + stable/deepstack-cpu/4.1.0/Chart.yaml | 28 + stable/deepstack-cpu/4.1.0/README.md | 55 + stable/deepstack-cpu/4.1.0/app-readme.md | 3 + .../4.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/deepstack-cpu/4.1.0/ix_values.yaml | 19 + stable/deepstack-cpu/4.1.0/questions.yaml | 660 ++++++++++ .../deepstack-cpu/4.1.0/templates/common.yaml | 1 + stable/deepstack-cpu/4.1.0/test_values.yaml | 39 + stable/deepstack-cpu/4.1.0/values.yaml | 0 stable/emby/6.1.0/CONFIG.md | 8 + stable/emby/6.1.0/Chart.lock | 6 + stable/emby/6.1.0/Chart.yaml | 28 + stable/emby/6.1.0/README.md | 54 + stable/emby/6.1.0/app-readme.md | 3 + stable/emby/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/emby/6.1.0/ix_values.yaml | 22 + stable/emby/6.1.0/questions.yaml | 655 ++++++++++ stable/emby/6.1.0/templates/common.yaml | 1 + stable/emby/6.1.0/test_values.yaml | 29 + stable/emby/6.1.0/values.yaml | 0 stable/esphome/6.1.0/CONFIG.md | 8 + stable/esphome/6.1.0/Chart.lock | 6 + stable/esphome/6.1.0/Chart.yaml | 27 + stable/esphome/6.1.0/README.md | 54 + stable/esphome/6.1.0/app-readme.md | 3 + stable/esphome/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/esphome/6.1.0/ix_values.yaml | 15 + stable/esphome/6.1.0/questions.yaml | 750 +++++++++++ stable/esphome/6.1.0/templates/common.yaml | 1 + stable/esphome/6.1.0/test_values.yaml | 30 + stable/esphome/6.1.0/values.yaml | 0 stable/handbrake/6.1.0/CONFIG.md | 8 + stable/handbrake/6.1.0/Chart.lock | 6 + stable/handbrake/6.1.0/Chart.yaml | 30 + stable/handbrake/6.1.0/README.md | 55 + stable/handbrake/6.1.0/app-readme.md | 3 + .../handbrake/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/handbrake/6.1.0/ix_values.yaml | 20 + stable/handbrake/6.1.0/questions.yaml | 816 ++++++++++++ stable/handbrake/6.1.0/templates/common.yaml | 1 + stable/handbrake/6.1.0/test_values.yaml | 51 + stable/handbrake/6.1.0/values.yaml | 0 stable/home-assistant/6.1.0/CONFIG.md | 8 + stable/home-assistant/6.1.0/Chart.lock | 6 + stable/home-assistant/6.1.0/Chart.yaml | 28 + stable/home-assistant/6.1.0/README.md | 54 + stable/home-assistant/6.1.0/app-readme.md | 3 + .../6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/home-assistant/6.1.0/ix_values.yaml | 15 + stable/home-assistant/6.1.0/questions.yaml | 662 ++++++++++ .../6.1.0/templates/common.yaml | 1 + .../6.1.0/templates/secret.yaml | 15 + stable/home-assistant/6.1.0/test_values.yaml | 83 ++ stable/home-assistant/6.1.0/values.yaml | 0 stable/jackett/6.1.0/CONFIG.md | 8 + stable/jackett/6.1.0/Chart.lock | 6 + stable/jackett/6.1.0/Chart.yaml | 27 + stable/jackett/6.1.0/README.md | 53 + stable/jackett/6.1.0/app-readme.md | 3 + stable/jackett/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/jackett/6.1.0/ix_values.yaml | 25 + stable/jackett/6.1.0/questions.yaml | 646 +++++++++ stable/jackett/6.1.0/templates/common.yaml | 1 + stable/jackett/6.1.0/test_values.yaml | 39 + stable/jackett/6.1.0/values.yaml | 0 stable/jellyfin/6.1.0/CONFIG.md | 8 + stable/jellyfin/6.1.0/Chart.lock | 6 + stable/jellyfin/6.1.0/Chart.yaml | 27 + stable/jellyfin/6.1.0/README.md | 53 + stable/jellyfin/6.1.0/app-readme.md | 3 + stable/jellyfin/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/jellyfin/6.1.0/ix_values.yaml | 22 + stable/jellyfin/6.1.0/questions.yaml | 655 ++++++++++ stable/jellyfin/6.1.0/templates/common.yaml | 1 + stable/jellyfin/6.1.0/test_values.yaml | 29 + stable/jellyfin/6.1.0/values.yaml | 0 stable/kms/6.1.0/CONFIG.md | 8 + stable/kms/6.1.0/Chart.lock | 6 + stable/kms/6.1.0/Chart.yaml | 25 + stable/kms/6.1.0/README.md | 53 + stable/kms/6.1.0/app-readme.md | 3 + stable/kms/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/kms/6.1.0/ix_values.yaml | 16 + stable/kms/6.1.0/questions.yaml | 394 ++++++ stable/kms/6.1.0/templates/common.yaml | 1 + stable/kms/6.1.0/test_values.yaml | 16 + stable/kms/6.1.0/values.yaml | 0 stable/lidarr/6.1.0/CONFIG.md | 8 + stable/lidarr/6.1.0/Chart.lock | 6 + stable/lidarr/6.1.0/Chart.yaml | 27 + stable/lidarr/6.1.0/README.md | 53 + stable/lidarr/6.1.0/app-readme.md | 3 + stable/lidarr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/lidarr/6.1.0/ix_values.yaml | 37 + stable/lidarr/6.1.0/questions.yaml | 646 +++++++++ stable/lidarr/6.1.0/templates/common.yaml | 1 + stable/lidarr/6.1.0/test_values.yaml | 47 + stable/lidarr/6.1.0/values.yaml | 0 stable/ombi/6.1.0/CONFIG.md | 8 + stable/ombi/6.1.0/Chart.lock | 6 + stable/ombi/6.1.0/Chart.yaml | 30 + stable/ombi/6.1.0/README.md | 53 + stable/ombi/6.1.0/app-readme.md | 3 + stable/ombi/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/ombi/6.1.0/ix_values.yaml | 15 + stable/ombi/6.1.0/questions.yaml | 646 +++++++++ stable/ombi/6.1.0/templates/common.yaml | 1 + stable/ombi/6.1.0/test_values.yaml | 40 + stable/ombi/6.1.0/values.yaml | 0 stable/plex/5.1.0/CONFIG.md | 8 + stable/plex/5.1.0/Chart.lock | 6 + stable/plex/5.1.0/Chart.yaml | 25 + stable/plex/5.1.0/README.md | 49 + stable/plex/5.1.0/app-readme.md | 3 + stable/plex/5.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/plex/5.1.0/ix_values.yaml | 22 + stable/plex/5.1.0/questions.yaml | 673 ++++++++++ stable/plex/5.1.0/templates/common.yaml | 1 + stable/plex/5.1.0/test_values.yaml | 29 + stable/plex/5.1.0/values.yaml | 0 stable/radarr/6.1.0/CONFIG.md | 8 + stable/radarr/6.1.0/Chart.lock | 6 + stable/radarr/6.1.0/Chart.yaml | 27 + stable/radarr/6.1.0/README.md | 53 + stable/radarr/6.1.0/app-readme.md | 3 + stable/radarr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/radarr/6.1.0/ix_values.yaml | 37 + stable/radarr/6.1.0/questions.yaml | 646 +++++++++ stable/radarr/6.1.0/templates/common.yaml | 1 + stable/radarr/6.1.0/test_values.yaml | 47 + stable/radarr/6.1.0/values.yaml | 0 stable/sonarr/6.1.0/CONFIG.md | 8 + stable/sonarr/6.1.0/Chart.lock | 6 + stable/sonarr/6.1.0/Chart.yaml | 27 + stable/sonarr/6.1.0/README.md | 53 + stable/sonarr/6.1.0/app-readme.md | 3 + stable/sonarr/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/sonarr/6.1.0/ix_values.yaml | 37 + stable/sonarr/6.1.0/questions.yaml | 646 +++++++++ stable/sonarr/6.1.0/templates/common.yaml | 1 + stable/sonarr/6.1.0/test_values.yaml | 47 + stable/sonarr/6.1.0/values.yaml | 0 stable/syncthing/6.1.0/CONFIG.md | 8 + stable/syncthing/6.1.0/Chart.lock | 6 + stable/syncthing/6.1.0/Chart.yaml | 27 + stable/syncthing/6.1.0/README.md | 55 + stable/syncthing/6.1.0/app-readme.md | 3 + .../syncthing/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/syncthing/6.1.0/ix_values.yaml | 15 + stable/syncthing/6.1.0/questions.yaml | 908 +++++++++++++ stable/syncthing/6.1.0/templates/common.yaml | 1 + stable/syncthing/6.1.0/test_values.yaml | 38 + stable/syncthing/6.1.0/values.yaml | 0 stable/tautulli/6.1.0/CONFIG.md | 8 + stable/tautulli/6.1.0/Chart.lock | 6 + stable/tautulli/6.1.0/Chart.yaml | 26 + stable/tautulli/6.1.0/README.md | 53 + stable/tautulli/6.1.0/app-readme.md | 3 + stable/tautulli/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/tautulli/6.1.0/ix_values.yaml | 15 + stable/tautulli/6.1.0/questions.yaml | 646 +++++++++ stable/tautulli/6.1.0/templates/common.yaml | 1 + stable/tautulli/6.1.0/test_values.yaml | 26 + stable/tautulli/6.1.0/values.yaml | 0 stable/traefik/6.1.0/CONFIG.md | 8 + stable/traefik/6.1.0/Chart.lock | 6 + stable/traefik/6.1.0/Chart.yaml | 28 + stable/traefik/6.1.0/LICENSE | 202 +++ stable/traefik/6.1.0/README.md | 55 + stable/traefik/6.1.0/app-readme.md | 3 + stable/traefik/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/traefik/6.1.0/crds/ingressroute.yaml | 12 + .../traefik/6.1.0/crds/ingressroutetcp.yaml | 12 + .../traefik/6.1.0/crds/ingressrouteudp.yaml | 13 + stable/traefik/6.1.0/crds/middlewares.yaml | 12 + .../traefik/6.1.0/crds/serverstransports.yaml | 12 + stable/traefik/6.1.0/crds/tlsoptions.yaml | 12 + stable/traefik/6.1.0/crds/tlsstores.yaml | 13 + .../traefik/6.1.0/crds/traefikservices.yaml | 12 + stable/traefik/6.1.0/ix_values.yaml | 316 +++++ stable/traefik/6.1.0/questions.yaml | 385 ++++++ stable/traefik/6.1.0/templates/_helpers.tpl | 62 + .../traefik/6.1.0/templates/_podtemplate.tpl | 265 ++++ .../6.1.0/templates/custom/common.yaml | 0 .../6.1.0/templates/custom/portal.yaml | 44 + stable/traefik/6.1.0/templates/daemonset.yaml | 40 + .../dashboard-hook-ingressroute.yaml | 28 + .../traefik/6.1.0/templates/deployment.yaml | 47 + stable/traefik/6.1.0/templates/gateway.yaml | 33 + .../traefik/6.1.0/templates/gatewayclass.yaml | 9 + stable/traefik/6.1.0/templates/hpa.yaml | 20 + .../traefik/6.1.0/templates/ingressclass.yaml | 23 + .../6.1.0/templates/poddisruptionbudget.yaml | 22 + .../6.1.0/templates/rbac/clusterrole.yaml | 112 ++ .../templates/rbac/clusterrolebinding.yaml | 19 + .../templates/rbac/podsecuritypolicy.yaml | 68 + stable/traefik/6.1.0/templates/rbac/role.yaml | 61 + .../6.1.0/templates/rbac/rolebinding.yaml | 19 + .../6.1.0/templates/rbac/serviceaccount.yaml | 15 + stable/traefik/6.1.0/templates/service.yaml | 112 ++ stable/traefik/6.1.0/templates/tlsoption.yaml | 14 + stable/traefik/6.1.0/test_values.yaml | 406 ++++++ stable/traefik/6.1.0/values.yaml | 0 stable/transmission/6.1.0/CONFIG.md | 8 + stable/transmission/6.1.0/Chart.lock | 6 + stable/transmission/6.1.0/Chart.yaml | 28 + stable/transmission/6.1.0/README.md | 54 + stable/transmission/6.1.0/app-readme.md | 3 + .../6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/transmission/6.1.0/ix_values.yaml | 50 + stable/transmission/6.1.0/questions.yaml | 1134 ++++++++++++++++ .../transmission/6.1.0/templates/common.yaml | 2 + stable/transmission/6.1.0/test_values.yaml | 106 ++ stable/transmission/6.1.0/values.yaml | 0 stable/truecommand/6.1.0/CONFIG.md | 8 + stable/truecommand/6.1.0/Chart.lock | 6 + stable/truecommand/6.1.0/Chart.yaml | 25 + stable/truecommand/6.1.0/README.md | 53 + stable/truecommand/6.1.0/app-readme.md | 3 + .../truecommand/6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/truecommand/6.1.0/ix_values.yaml | 15 + stable/truecommand/6.1.0/questions.yaml | 607 +++++++++ .../truecommand/6.1.0/templates/common.yaml | 1 + stable/truecommand/6.1.0/test_values.yaml | 26 + stable/truecommand/6.1.0/values.yaml | 0 stable/vaultwarden/3.1.0/CONFIG.md | 8 + stable/vaultwarden/3.1.0/Chart.lock | 9 + stable/vaultwarden/3.1.0/Chart.yaml | 34 + stable/vaultwarden/3.1.0/README.md | 54 + stable/vaultwarden/3.1.0/app-readme.md | 3 + .../vaultwarden/3.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes .../3.1.0/charts/postgresql-10.4.9.tgz | Bin 0 -> 48739 bytes stable/vaultwarden/3.1.0/ix_values.yaml | 54 + stable/vaultwarden/3.1.0/questions.yaml | 1158 +++++++++++++++++ .../3.1.0/templates/_configmap.tpl | 116 ++ .../vaultwarden/3.1.0/templates/_secrets.tpl | 59 + .../vaultwarden/3.1.0/templates/_validate.tpl | 17 + .../vaultwarden/3.1.0/templates/common.yaml | 11 + stable/vaultwarden/3.1.0/test_values.yaml | 172 +++ stable/vaultwarden/3.1.0/values.yaml | 0 stable/zwavejs2mqtt/6.1.0/CONFIG.md | 8 + stable/zwavejs2mqtt/6.1.0/Chart.lock | 6 + stable/zwavejs2mqtt/6.1.0/Chart.yaml | 30 + stable/zwavejs2mqtt/6.1.0/README.md | 54 + stable/zwavejs2mqtt/6.1.0/app-readme.md | 3 + .../6.1.0/charts/common-6.3.1.tgz | Bin 0 -> 22880 bytes stable/zwavejs2mqtt/6.1.0/ix_values.yaml | 63 + stable/zwavejs2mqtt/6.1.0/questions.yaml | 777 +++++++++++ .../zwavejs2mqtt/6.1.0/templates/common.yaml | 1 + stable/zwavejs2mqtt/6.1.0/test_values.yaml | 103 ++ stable/zwavejs2mqtt/6.1.0/values.yaml | 0 610 files changed, 45212 insertions(+) create mode 100644 deprecated/nzbhydra/6.1.0/CONFIG.md create mode 100644 deprecated/nzbhydra/6.1.0/Chart.lock create mode 100644 deprecated/nzbhydra/6.1.0/Chart.yaml create mode 100644 deprecated/nzbhydra/6.1.0/README.md create mode 100644 deprecated/nzbhydra/6.1.0/app-readme.md create mode 100644 deprecated/nzbhydra/6.1.0/charts/common-6.3.1.tgz create mode 100644 deprecated/nzbhydra/6.1.0/ix_values.yaml create mode 100644 deprecated/nzbhydra/6.1.0/questions.yaml create mode 100644 deprecated/nzbhydra/6.1.0/templates/common.yaml create mode 100644 deprecated/nzbhydra/6.1.0/test_values.yaml create mode 100644 deprecated/nzbhydra/6.1.0/values.yaml create mode 100644 develop/prototype-gui/1.2.0/CONFIG.md create mode 100644 develop/prototype-gui/1.2.0/Chart.lock create mode 100644 develop/prototype-gui/1.2.0/Chart.yaml create mode 100644 develop/prototype-gui/1.2.0/README.md create mode 100644 develop/prototype-gui/1.2.0/app-readme.md create mode 100644 develop/prototype-gui/1.2.0/charts/common-6.3.1.tgz create mode 100644 develop/prototype-gui/1.2.0/ix_values.yaml create mode 100644 develop/prototype-gui/1.2.0/questions.yaml create mode 100644 develop/prototype-gui/1.2.0/templates/common.yaml create mode 100644 develop/prototype-gui/1.2.0/test_values.yaml create mode 100644 develop/prototype-gui/1.2.0/values.yaml create mode 100644 incubator/airsonic/1.1.0/CONFIG.md create mode 100644 incubator/airsonic/1.1.0/Chart.lock create mode 100644 incubator/airsonic/1.1.0/Chart.yaml create mode 100644 incubator/airsonic/1.1.0/README.md create mode 100644 incubator/airsonic/1.1.0/app-readme.md create mode 100644 incubator/airsonic/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/airsonic/1.1.0/ix_values.yaml create mode 100644 incubator/airsonic/1.1.0/questions.yaml create mode 100644 incubator/airsonic/1.1.0/templates/common.yaml create mode 100644 incubator/airsonic/1.1.0/test_values.yaml create mode 100644 incubator/airsonic/1.1.0/values.yaml create mode 100644 incubator/appdaemon/3.1.0/CONFIG.md create mode 100644 incubator/appdaemon/3.1.0/Chart.lock create mode 100644 incubator/appdaemon/3.1.0/Chart.yaml create mode 100644 incubator/appdaemon/3.1.0/README.md create mode 100644 incubator/appdaemon/3.1.0/app-readme.md create mode 100644 incubator/appdaemon/3.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/appdaemon/3.1.0/ix_values.yaml create mode 100644 incubator/appdaemon/3.1.0/questions.yaml create mode 100644 incubator/appdaemon/3.1.0/templates/common.yaml create mode 100644 incubator/appdaemon/3.1.0/test_values.yaml create mode 100644 incubator/appdaemon/3.1.0/values.yaml create mode 100644 incubator/bazarr/6.1.0/CONFIG.md create mode 100644 incubator/bazarr/6.1.0/Chart.lock create mode 100644 incubator/bazarr/6.1.0/Chart.yaml create mode 100644 incubator/bazarr/6.1.0/README.md create mode 100644 incubator/bazarr/6.1.0/app-readme.md create mode 100644 incubator/bazarr/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/bazarr/6.1.0/ix_values.yaml create mode 100644 incubator/bazarr/6.1.0/questions.yaml create mode 100644 incubator/bazarr/6.1.0/templates/common.yaml create mode 100644 incubator/bazarr/6.1.0/test_values.yaml create mode 100644 incubator/bazarr/6.1.0/values.yaml create mode 100644 incubator/calibre-web/6.1.0/CONFIG.md create mode 100644 incubator/calibre-web/6.1.0/Chart.lock create mode 100644 incubator/calibre-web/6.1.0/Chart.yaml create mode 100644 incubator/calibre-web/6.1.0/README.md create mode 100644 incubator/calibre-web/6.1.0/app-readme.md create mode 100644 incubator/calibre-web/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/calibre-web/6.1.0/ix_values.yaml create mode 100644 incubator/calibre-web/6.1.0/questions.yaml create mode 100644 incubator/calibre-web/6.1.0/templates/common.yaml create mode 100644 incubator/calibre-web/6.1.0/test_values.yaml create mode 100644 incubator/calibre-web/6.1.0/values.yaml create mode 100644 incubator/deluge/6.1.0/CONFIG.md create mode 100644 incubator/deluge/6.1.0/Chart.lock create mode 100644 incubator/deluge/6.1.0/Chart.yaml create mode 100644 incubator/deluge/6.1.0/README.md create mode 100644 incubator/deluge/6.1.0/app-readme.md create mode 100644 incubator/deluge/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/deluge/6.1.0/ix_values.yaml create mode 100644 incubator/deluge/6.1.0/questions.yaml create mode 100644 incubator/deluge/6.1.0/templates/common.yaml create mode 100644 incubator/deluge/6.1.0/test_values.yaml create mode 100644 incubator/deluge/6.1.0/values.yaml create mode 100644 incubator/fireflyiii/4.1.0/CONFIG.md create mode 100644 incubator/fireflyiii/4.1.0/Chart.lock create mode 100644 incubator/fireflyiii/4.1.0/Chart.yaml create mode 100644 incubator/fireflyiii/4.1.0/README.md create mode 100644 incubator/fireflyiii/4.1.0/app-readme.md create mode 100644 incubator/fireflyiii/4.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/fireflyiii/4.1.0/charts/postgresql-10.4.9.tgz create mode 100644 incubator/fireflyiii/4.1.0/ix_values.yaml create mode 100644 incubator/fireflyiii/4.1.0/questions.yaml create mode 100644 incubator/fireflyiii/4.1.0/templates/common.yaml create mode 100644 incubator/fireflyiii/4.1.0/templates/secrets.yaml create mode 100644 incubator/fireflyiii/4.1.0/test_values.yaml create mode 100644 incubator/fireflyiii/4.1.0/values.yaml create mode 100644 incubator/freshrss/6.1.0/CONFIG.md create mode 100644 incubator/freshrss/6.1.0/Chart.lock create mode 100644 incubator/freshrss/6.1.0/Chart.yaml create mode 100644 incubator/freshrss/6.1.0/README.md create mode 100644 incubator/freshrss/6.1.0/app-readme.md create mode 100644 incubator/freshrss/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/freshrss/6.1.0/ix_values.yaml create mode 100644 incubator/freshrss/6.1.0/questions.yaml create mode 100644 incubator/freshrss/6.1.0/templates/common.yaml create mode 100644 incubator/freshrss/6.1.0/test_values.yaml create mode 100644 incubator/freshrss/6.1.0/values.yaml create mode 100644 incubator/gaps/6.1.0/CONFIG.md create mode 100644 incubator/gaps/6.1.0/Chart.lock create mode 100644 incubator/gaps/6.1.0/Chart.yaml create mode 100644 incubator/gaps/6.1.0/README.md create mode 100644 incubator/gaps/6.1.0/app-readme.md create mode 100644 incubator/gaps/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/gaps/6.1.0/ix_values.yaml create mode 100644 incubator/gaps/6.1.0/questions.yaml create mode 100644 incubator/gaps/6.1.0/templates/common.yaml create mode 100644 incubator/gaps/6.1.0/test_values.yaml create mode 100644 incubator/gaps/6.1.0/values.yaml create mode 100644 incubator/grocy/6.1.0/CONFIG.md create mode 100644 incubator/grocy/6.1.0/Chart.lock create mode 100644 incubator/grocy/6.1.0/Chart.yaml create mode 100644 incubator/grocy/6.1.0/README.md create mode 100644 incubator/grocy/6.1.0/app-readme.md create mode 100644 incubator/grocy/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/grocy/6.1.0/ix_values.yaml create mode 100644 incubator/grocy/6.1.0/questions.yaml create mode 100644 incubator/grocy/6.1.0/templates/common.yaml create mode 100644 incubator/grocy/6.1.0/test_values.yaml create mode 100644 incubator/grocy/6.1.0/values.yaml create mode 100644 incubator/haste-server/1.1.0/CONFIG.md create mode 100644 incubator/haste-server/1.1.0/Chart.lock create mode 100644 incubator/haste-server/1.1.0/Chart.yaml create mode 100644 incubator/haste-server/1.1.0/README.md create mode 100644 incubator/haste-server/1.1.0/app-readme.md create mode 100644 incubator/haste-server/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/haste-server/1.1.0/ix_values.yaml create mode 100644 incubator/haste-server/1.1.0/questions.yaml create mode 100644 incubator/haste-server/1.1.0/templates/common.yaml create mode 100644 incubator/haste-server/1.1.0/test_values.yaml create mode 100644 incubator/haste-server/1.1.0/values.yaml create mode 100644 incubator/heimdall/6.1.0/CONFIG.md create mode 100644 incubator/heimdall/6.1.0/Chart.lock create mode 100644 incubator/heimdall/6.1.0/Chart.yaml create mode 100644 incubator/heimdall/6.1.0/README.md create mode 100644 incubator/heimdall/6.1.0/app-readme.md create mode 100644 incubator/heimdall/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/heimdall/6.1.0/ix_values.yaml create mode 100644 incubator/heimdall/6.1.0/questions.yaml create mode 100644 incubator/heimdall/6.1.0/templates/common.yaml create mode 100644 incubator/heimdall/6.1.0/test_values.yaml create mode 100644 incubator/heimdall/6.1.0/values.yaml create mode 100644 incubator/lazylibrarian/6.1.0/CONFIG.md create mode 100644 incubator/lazylibrarian/6.1.0/Chart.lock create mode 100644 incubator/lazylibrarian/6.1.0/Chart.yaml create mode 100644 incubator/lazylibrarian/6.1.0/README.md create mode 100644 incubator/lazylibrarian/6.1.0/app-readme.md create mode 100644 incubator/lazylibrarian/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/lazylibrarian/6.1.0/ix_values.yaml create mode 100644 incubator/lazylibrarian/6.1.0/questions.yaml create mode 100644 incubator/lazylibrarian/6.1.0/templates/common.yaml create mode 100644 incubator/lazylibrarian/6.1.0/test_values.yaml create mode 100644 incubator/lazylibrarian/6.1.0/values.yaml create mode 100644 incubator/lychee/6.1.0/CONFIG.md create mode 100644 incubator/lychee/6.1.0/Chart.lock create mode 100644 incubator/lychee/6.1.0/Chart.yaml create mode 100644 incubator/lychee/6.1.0/README.md create mode 100644 incubator/lychee/6.1.0/app-readme.md create mode 100644 incubator/lychee/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/lychee/6.1.0/ix_values.yaml create mode 100644 incubator/lychee/6.1.0/questions.yaml create mode 100644 incubator/lychee/6.1.0/templates/common.yaml create mode 100644 incubator/lychee/6.1.0/test_values.yaml create mode 100644 incubator/lychee/6.1.0/values.yaml create mode 100644 incubator/mealie/1.1.0/CONFIG.md create mode 100644 incubator/mealie/1.1.0/Chart.lock create mode 100644 incubator/mealie/1.1.0/Chart.yaml create mode 100644 incubator/mealie/1.1.0/README.md create mode 100644 incubator/mealie/1.1.0/app-readme.md create mode 100644 incubator/mealie/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/mealie/1.1.0/ix_values.yaml create mode 100644 incubator/mealie/1.1.0/questions.yaml create mode 100644 incubator/mealie/1.1.0/templates/common.yaml create mode 100644 incubator/mealie/1.1.0/test_values.yaml create mode 100644 incubator/mealie/1.1.0/values.yaml create mode 100644 incubator/mosquitto/1.1.0/CONFIG.md create mode 100644 incubator/mosquitto/1.1.0/Chart.lock create mode 100644 incubator/mosquitto/1.1.0/Chart.yaml create mode 100644 incubator/mosquitto/1.1.0/README.md create mode 100644 incubator/mosquitto/1.1.0/app-readme.md create mode 100644 incubator/mosquitto/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/mosquitto/1.1.0/ix_values.yaml create mode 100644 incubator/mosquitto/1.1.0/questions.yaml create mode 100644 incubator/mosquitto/1.1.0/templates/common.yaml create mode 100644 incubator/mosquitto/1.1.0/templates/configmap.yaml create mode 100644 incubator/mosquitto/1.1.0/test_values.yaml create mode 100644 incubator/mosquitto/1.1.0/values.yaml create mode 100644 incubator/navidrome/6.1.0/CONFIG.md create mode 100644 incubator/navidrome/6.1.0/Chart.lock create mode 100644 incubator/navidrome/6.1.0/Chart.yaml create mode 100644 incubator/navidrome/6.1.0/README.md create mode 100644 incubator/navidrome/6.1.0/app-readme.md create mode 100644 incubator/navidrome/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/navidrome/6.1.0/ix_values.yaml create mode 100644 incubator/navidrome/6.1.0/questions.yaml create mode 100644 incubator/navidrome/6.1.0/templates/common.yaml create mode 100644 incubator/navidrome/6.1.0/test_values.yaml create mode 100644 incubator/navidrome/6.1.0/values.yaml create mode 100644 incubator/node-red/6.1.0/CONFIG.md create mode 100644 incubator/node-red/6.1.0/Chart.lock create mode 100644 incubator/node-red/6.1.0/Chart.yaml create mode 100644 incubator/node-red/6.1.0/README.md create mode 100644 incubator/node-red/6.1.0/app-readme.md create mode 100644 incubator/node-red/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/node-red/6.1.0/ix_values.yaml create mode 100644 incubator/node-red/6.1.0/questions.yaml create mode 100644 incubator/node-red/6.1.0/templates/common.yaml create mode 100644 incubator/node-red/6.1.0/test_values.yaml create mode 100644 incubator/node-red/6.1.0/values.yaml create mode 100644 incubator/nzbget/6.1.0/CONFIG.md create mode 100644 incubator/nzbget/6.1.0/Chart.lock create mode 100644 incubator/nzbget/6.1.0/Chart.yaml create mode 100644 incubator/nzbget/6.1.0/README.md create mode 100644 incubator/nzbget/6.1.0/app-readme.md create mode 100644 incubator/nzbget/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/nzbget/6.1.0/ix_values.yaml create mode 100644 incubator/nzbget/6.1.0/questions.yaml create mode 100644 incubator/nzbget/6.1.0/templates/common.yaml create mode 100644 incubator/nzbget/6.1.0/test_values.yaml create mode 100644 incubator/nzbget/6.1.0/values.yaml create mode 100644 incubator/organizr/6.1.0/CONFIG.md create mode 100644 incubator/organizr/6.1.0/Chart.lock create mode 100644 incubator/organizr/6.1.0/Chart.yaml create mode 100644 incubator/organizr/6.1.0/README.md create mode 100644 incubator/organizr/6.1.0/app-readme.md create mode 100644 incubator/organizr/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/organizr/6.1.0/ix_values.yaml create mode 100644 incubator/organizr/6.1.0/questions.yaml create mode 100644 incubator/organizr/6.1.0/templates/common.yaml create mode 100644 incubator/organizr/6.1.0/test_values.yaml create mode 100644 incubator/organizr/6.1.0/values.yaml create mode 100644 incubator/podgrab/4.1.0/CONFIG.md create mode 100644 incubator/podgrab/4.1.0/Chart.lock create mode 100644 incubator/podgrab/4.1.0/Chart.yaml create mode 100644 incubator/podgrab/4.1.0/README.md create mode 100644 incubator/podgrab/4.1.0/app-readme.md create mode 100644 incubator/podgrab/4.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/podgrab/4.1.0/ix_values.yaml create mode 100644 incubator/podgrab/4.1.0/questions.yaml create mode 100644 incubator/podgrab/4.1.0/templates/common.yaml create mode 100644 incubator/podgrab/4.1.0/test_values.yaml create mode 100644 incubator/podgrab/4.1.0/values.yaml create mode 100644 incubator/prowlarr/1.1.0/CONFIG.md create mode 100644 incubator/prowlarr/1.1.0/Chart.lock create mode 100644 incubator/prowlarr/1.1.0/Chart.yaml create mode 100644 incubator/prowlarr/1.1.0/README.md create mode 100644 incubator/prowlarr/1.1.0/app-readme.md create mode 100644 incubator/prowlarr/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/prowlarr/1.1.0/ix_values.yaml create mode 100644 incubator/prowlarr/1.1.0/questions.yaml create mode 100644 incubator/prowlarr/1.1.0/templates/common.yaml create mode 100644 incubator/prowlarr/1.1.0/test_values.yaml create mode 100644 incubator/prowlarr/1.1.0/values.yaml create mode 100644 incubator/qbittorrent/6.1.0/CONFIG.md create mode 100644 incubator/qbittorrent/6.1.0/Chart.lock create mode 100644 incubator/qbittorrent/6.1.0/Chart.yaml create mode 100644 incubator/qbittorrent/6.1.0/README.md create mode 100644 incubator/qbittorrent/6.1.0/app-readme.md create mode 100644 incubator/qbittorrent/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/qbittorrent/6.1.0/ix_values.yaml create mode 100644 incubator/qbittorrent/6.1.0/questions.yaml create mode 100644 incubator/qbittorrent/6.1.0/templates/_configmap.tpl create mode 100644 incubator/qbittorrent/6.1.0/templates/common.yaml create mode 100644 incubator/qbittorrent/6.1.0/test_values.yaml create mode 100644 incubator/qbittorrent/6.1.0/values.yaml create mode 100644 incubator/readarr/6.1.0/CONFIG.md create mode 100644 incubator/readarr/6.1.0/Chart.lock create mode 100644 incubator/readarr/6.1.0/Chart.yaml create mode 100644 incubator/readarr/6.1.0/README.md create mode 100644 incubator/readarr/6.1.0/app-readme.md create mode 100644 incubator/readarr/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/readarr/6.1.0/ix_values.yaml create mode 100644 incubator/readarr/6.1.0/questions.yaml create mode 100644 incubator/readarr/6.1.0/templates/common.yaml create mode 100644 incubator/readarr/6.1.0/test_values.yaml create mode 100644 incubator/readarr/6.1.0/values.yaml create mode 100644 incubator/reg/1.1.0/CONFIG.md create mode 100644 incubator/reg/1.1.0/Chart.lock create mode 100644 incubator/reg/1.1.0/Chart.yaml create mode 100644 incubator/reg/1.1.0/README.md create mode 100644 incubator/reg/1.1.0/app-readme.md create mode 100644 incubator/reg/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/reg/1.1.0/ci/ct-values.yaml create mode 100644 incubator/reg/1.1.0/ix_values.yaml create mode 100644 incubator/reg/1.1.0/questions.yaml create mode 100644 incubator/reg/1.1.0/templates/common.yaml create mode 100644 incubator/reg/1.1.0/test_values.yaml create mode 100644 incubator/reg/1.1.0/values.yaml create mode 100644 incubator/sabnzbd/6.1.0/CONFIG.md create mode 100644 incubator/sabnzbd/6.1.0/Chart.lock create mode 100644 incubator/sabnzbd/6.1.0/Chart.yaml create mode 100644 incubator/sabnzbd/6.1.0/README.md create mode 100644 incubator/sabnzbd/6.1.0/app-readme.md create mode 100644 incubator/sabnzbd/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/sabnzbd/6.1.0/ix_values.yaml create mode 100644 incubator/sabnzbd/6.1.0/questions.yaml create mode 100644 incubator/sabnzbd/6.1.0/templates/common.yaml create mode 100644 incubator/sabnzbd/6.1.0/test_values.yaml create mode 100644 incubator/sabnzbd/6.1.0/values.yaml create mode 100644 incubator/thelounge/1.1.0/CONFIG.md create mode 100644 incubator/thelounge/1.1.0/Chart.lock create mode 100644 incubator/thelounge/1.1.0/Chart.yaml create mode 100644 incubator/thelounge/1.1.0/README.md create mode 100644 incubator/thelounge/1.1.0/app-readme.md create mode 100644 incubator/thelounge/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/thelounge/1.1.0/ix_values.yaml create mode 100644 incubator/thelounge/1.1.0/questions.yaml create mode 100644 incubator/thelounge/1.1.0/templates/common.yaml create mode 100644 incubator/thelounge/1.1.0/test_values.yaml create mode 100644 incubator/thelounge/1.1.0/values.yaml create mode 100644 incubator/tvheadend/7.1.0/CONFIG.md create mode 100644 incubator/tvheadend/7.1.0/Chart.lock create mode 100644 incubator/tvheadend/7.1.0/Chart.yaml create mode 100644 incubator/tvheadend/7.1.0/README.md create mode 100644 incubator/tvheadend/7.1.0/app-readme.md create mode 100644 incubator/tvheadend/7.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/tvheadend/7.1.0/ix_values.yaml create mode 100644 incubator/tvheadend/7.1.0/questions.yaml create mode 100644 incubator/tvheadend/7.1.0/templates/common.yaml create mode 100644 incubator/tvheadend/7.1.0/test_values.yaml create mode 100644 incubator/tvheadend/7.1.0/values.yaml create mode 100644 incubator/unifi/6.1.0/CONFIG.md create mode 100644 incubator/unifi/6.1.0/Chart.lock create mode 100644 incubator/unifi/6.1.0/Chart.yaml create mode 100644 incubator/unifi/6.1.0/README.md create mode 100644 incubator/unifi/6.1.0/app-readme.md create mode 100644 incubator/unifi/6.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/unifi/6.1.0/ix_values.yaml create mode 100644 incubator/unifi/6.1.0/questions.yaml create mode 100644 incubator/unifi/6.1.0/templates/common.yaml create mode 100644 incubator/unifi/6.1.0/test_values.yaml create mode 100644 incubator/unifi/6.1.0/values.yaml create mode 100644 incubator/unpackerr/1.1.0/CONFIG.md create mode 100644 incubator/unpackerr/1.1.0/Chart.lock create mode 100644 incubator/unpackerr/1.1.0/Chart.yaml create mode 100644 incubator/unpackerr/1.1.0/README.md create mode 100644 incubator/unpackerr/1.1.0/app-readme.md create mode 100644 incubator/unpackerr/1.1.0/charts/common-6.3.1.tgz create mode 100644 incubator/unpackerr/1.1.0/ix_values.yaml create mode 100644 incubator/unpackerr/1.1.0/questions.yaml create mode 100644 incubator/unpackerr/1.1.0/templates/common.yaml create mode 100644 incubator/unpackerr/1.1.0/test_values.yaml create mode 100644 incubator/unpackerr/1.1.0/values.yaml create mode 100644 stable/collabora-online/6.1.0/CONFIG.md create mode 100644 stable/collabora-online/6.1.0/Chart.lock create mode 100644 stable/collabora-online/6.1.0/Chart.yaml create mode 100644 stable/collabora-online/6.1.0/README.md create mode 100644 stable/collabora-online/6.1.0/app-readme.md create mode 100644 stable/collabora-online/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/collabora-online/6.1.0/ix_values.yaml create mode 100644 stable/collabora-online/6.1.0/questions.yaml create mode 100644 stable/collabora-online/6.1.0/templates/common.yaml create mode 100644 stable/collabora-online/6.1.0/test_values.yaml create mode 100644 stable/collabora-online/6.1.0/values.yaml create mode 100644 stable/deepstack-cpu/4.1.0/CONFIG.md create mode 100644 stable/deepstack-cpu/4.1.0/Chart.lock create mode 100644 stable/deepstack-cpu/4.1.0/Chart.yaml create mode 100644 stable/deepstack-cpu/4.1.0/README.md create mode 100644 stable/deepstack-cpu/4.1.0/app-readme.md create mode 100644 stable/deepstack-cpu/4.1.0/charts/common-6.3.1.tgz create mode 100644 stable/deepstack-cpu/4.1.0/ix_values.yaml create mode 100644 stable/deepstack-cpu/4.1.0/questions.yaml create mode 100644 stable/deepstack-cpu/4.1.0/templates/common.yaml create mode 100644 stable/deepstack-cpu/4.1.0/test_values.yaml create mode 100644 stable/deepstack-cpu/4.1.0/values.yaml create mode 100644 stable/emby/6.1.0/CONFIG.md create mode 100644 stable/emby/6.1.0/Chart.lock create mode 100644 stable/emby/6.1.0/Chart.yaml create mode 100644 stable/emby/6.1.0/README.md create mode 100644 stable/emby/6.1.0/app-readme.md create mode 100644 stable/emby/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/emby/6.1.0/ix_values.yaml create mode 100644 stable/emby/6.1.0/questions.yaml create mode 100644 stable/emby/6.1.0/templates/common.yaml create mode 100644 stable/emby/6.1.0/test_values.yaml create mode 100644 stable/emby/6.1.0/values.yaml create mode 100644 stable/esphome/6.1.0/CONFIG.md create mode 100644 stable/esphome/6.1.0/Chart.lock create mode 100644 stable/esphome/6.1.0/Chart.yaml create mode 100644 stable/esphome/6.1.0/README.md create mode 100644 stable/esphome/6.1.0/app-readme.md create mode 100644 stable/esphome/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/esphome/6.1.0/ix_values.yaml create mode 100644 stable/esphome/6.1.0/questions.yaml create mode 100644 stable/esphome/6.1.0/templates/common.yaml create mode 100644 stable/esphome/6.1.0/test_values.yaml create mode 100644 stable/esphome/6.1.0/values.yaml create mode 100644 stable/handbrake/6.1.0/CONFIG.md create mode 100644 stable/handbrake/6.1.0/Chart.lock create mode 100644 stable/handbrake/6.1.0/Chart.yaml create mode 100644 stable/handbrake/6.1.0/README.md create mode 100644 stable/handbrake/6.1.0/app-readme.md create mode 100644 stable/handbrake/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/handbrake/6.1.0/ix_values.yaml create mode 100644 stable/handbrake/6.1.0/questions.yaml create mode 100644 stable/handbrake/6.1.0/templates/common.yaml create mode 100644 stable/handbrake/6.1.0/test_values.yaml create mode 100644 stable/handbrake/6.1.0/values.yaml create mode 100644 stable/home-assistant/6.1.0/CONFIG.md create mode 100644 stable/home-assistant/6.1.0/Chart.lock create mode 100644 stable/home-assistant/6.1.0/Chart.yaml create mode 100644 stable/home-assistant/6.1.0/README.md create mode 100644 stable/home-assistant/6.1.0/app-readme.md create mode 100644 stable/home-assistant/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/home-assistant/6.1.0/ix_values.yaml create mode 100644 stable/home-assistant/6.1.0/questions.yaml create mode 100644 stable/home-assistant/6.1.0/templates/common.yaml create mode 100644 stable/home-assistant/6.1.0/templates/secret.yaml create mode 100644 stable/home-assistant/6.1.0/test_values.yaml create mode 100644 stable/home-assistant/6.1.0/values.yaml create mode 100644 stable/jackett/6.1.0/CONFIG.md create mode 100644 stable/jackett/6.1.0/Chart.lock create mode 100644 stable/jackett/6.1.0/Chart.yaml create mode 100644 stable/jackett/6.1.0/README.md create mode 100644 stable/jackett/6.1.0/app-readme.md create mode 100644 stable/jackett/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/jackett/6.1.0/ix_values.yaml create mode 100644 stable/jackett/6.1.0/questions.yaml create mode 100644 stable/jackett/6.1.0/templates/common.yaml create mode 100644 stable/jackett/6.1.0/test_values.yaml create mode 100644 stable/jackett/6.1.0/values.yaml create mode 100644 stable/jellyfin/6.1.0/CONFIG.md create mode 100644 stable/jellyfin/6.1.0/Chart.lock create mode 100644 stable/jellyfin/6.1.0/Chart.yaml create mode 100644 stable/jellyfin/6.1.0/README.md create mode 100644 stable/jellyfin/6.1.0/app-readme.md create mode 100644 stable/jellyfin/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/jellyfin/6.1.0/ix_values.yaml create mode 100644 stable/jellyfin/6.1.0/questions.yaml create mode 100644 stable/jellyfin/6.1.0/templates/common.yaml create mode 100644 stable/jellyfin/6.1.0/test_values.yaml create mode 100644 stable/jellyfin/6.1.0/values.yaml create mode 100644 stable/kms/6.1.0/CONFIG.md create mode 100644 stable/kms/6.1.0/Chart.lock create mode 100644 stable/kms/6.1.0/Chart.yaml create mode 100644 stable/kms/6.1.0/README.md create mode 100644 stable/kms/6.1.0/app-readme.md create mode 100644 stable/kms/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/kms/6.1.0/ix_values.yaml create mode 100644 stable/kms/6.1.0/questions.yaml create mode 100644 stable/kms/6.1.0/templates/common.yaml create mode 100644 stable/kms/6.1.0/test_values.yaml create mode 100644 stable/kms/6.1.0/values.yaml create mode 100644 stable/lidarr/6.1.0/CONFIG.md create mode 100644 stable/lidarr/6.1.0/Chart.lock create mode 100644 stable/lidarr/6.1.0/Chart.yaml create mode 100644 stable/lidarr/6.1.0/README.md create mode 100644 stable/lidarr/6.1.0/app-readme.md create mode 100644 stable/lidarr/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/lidarr/6.1.0/ix_values.yaml create mode 100644 stable/lidarr/6.1.0/questions.yaml create mode 100644 stable/lidarr/6.1.0/templates/common.yaml create mode 100644 stable/lidarr/6.1.0/test_values.yaml create mode 100644 stable/lidarr/6.1.0/values.yaml create mode 100644 stable/ombi/6.1.0/CONFIG.md create mode 100644 stable/ombi/6.1.0/Chart.lock create mode 100644 stable/ombi/6.1.0/Chart.yaml create mode 100644 stable/ombi/6.1.0/README.md create mode 100644 stable/ombi/6.1.0/app-readme.md create mode 100644 stable/ombi/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/ombi/6.1.0/ix_values.yaml create mode 100644 stable/ombi/6.1.0/questions.yaml create mode 100644 stable/ombi/6.1.0/templates/common.yaml create mode 100644 stable/ombi/6.1.0/test_values.yaml create mode 100644 stable/ombi/6.1.0/values.yaml create mode 100644 stable/plex/5.1.0/CONFIG.md create mode 100644 stable/plex/5.1.0/Chart.lock create mode 100644 stable/plex/5.1.0/Chart.yaml create mode 100644 stable/plex/5.1.0/README.md create mode 100644 stable/plex/5.1.0/app-readme.md create mode 100644 stable/plex/5.1.0/charts/common-6.3.1.tgz create mode 100644 stable/plex/5.1.0/ix_values.yaml create mode 100644 stable/plex/5.1.0/questions.yaml create mode 100644 stable/plex/5.1.0/templates/common.yaml create mode 100644 stable/plex/5.1.0/test_values.yaml create mode 100644 stable/plex/5.1.0/values.yaml create mode 100644 stable/radarr/6.1.0/CONFIG.md create mode 100644 stable/radarr/6.1.0/Chart.lock create mode 100644 stable/radarr/6.1.0/Chart.yaml create mode 100644 stable/radarr/6.1.0/README.md create mode 100644 stable/radarr/6.1.0/app-readme.md create mode 100644 stable/radarr/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/radarr/6.1.0/ix_values.yaml create mode 100644 stable/radarr/6.1.0/questions.yaml create mode 100644 stable/radarr/6.1.0/templates/common.yaml create mode 100644 stable/radarr/6.1.0/test_values.yaml create mode 100644 stable/radarr/6.1.0/values.yaml create mode 100644 stable/sonarr/6.1.0/CONFIG.md create mode 100644 stable/sonarr/6.1.0/Chart.lock create mode 100644 stable/sonarr/6.1.0/Chart.yaml create mode 100644 stable/sonarr/6.1.0/README.md create mode 100644 stable/sonarr/6.1.0/app-readme.md create mode 100644 stable/sonarr/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/sonarr/6.1.0/ix_values.yaml create mode 100644 stable/sonarr/6.1.0/questions.yaml create mode 100644 stable/sonarr/6.1.0/templates/common.yaml create mode 100644 stable/sonarr/6.1.0/test_values.yaml create mode 100644 stable/sonarr/6.1.0/values.yaml create mode 100644 stable/syncthing/6.1.0/CONFIG.md create mode 100644 stable/syncthing/6.1.0/Chart.lock create mode 100644 stable/syncthing/6.1.0/Chart.yaml create mode 100644 stable/syncthing/6.1.0/README.md create mode 100644 stable/syncthing/6.1.0/app-readme.md create mode 100644 stable/syncthing/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/syncthing/6.1.0/ix_values.yaml create mode 100644 stable/syncthing/6.1.0/questions.yaml create mode 100644 stable/syncthing/6.1.0/templates/common.yaml create mode 100644 stable/syncthing/6.1.0/test_values.yaml create mode 100644 stable/syncthing/6.1.0/values.yaml create mode 100644 stable/tautulli/6.1.0/CONFIG.md create mode 100644 stable/tautulli/6.1.0/Chart.lock create mode 100644 stable/tautulli/6.1.0/Chart.yaml create mode 100644 stable/tautulli/6.1.0/README.md create mode 100644 stable/tautulli/6.1.0/app-readme.md create mode 100644 stable/tautulli/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/tautulli/6.1.0/ix_values.yaml create mode 100644 stable/tautulli/6.1.0/questions.yaml create mode 100644 stable/tautulli/6.1.0/templates/common.yaml create mode 100644 stable/tautulli/6.1.0/test_values.yaml create mode 100644 stable/tautulli/6.1.0/values.yaml create mode 100644 stable/traefik/6.1.0/CONFIG.md create mode 100644 stable/traefik/6.1.0/Chart.lock create mode 100644 stable/traefik/6.1.0/Chart.yaml create mode 100644 stable/traefik/6.1.0/LICENSE create mode 100644 stable/traefik/6.1.0/README.md create mode 100644 stable/traefik/6.1.0/app-readme.md create mode 100644 stable/traefik/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/traefik/6.1.0/crds/ingressroute.yaml create mode 100644 stable/traefik/6.1.0/crds/ingressroutetcp.yaml create mode 100644 stable/traefik/6.1.0/crds/ingressrouteudp.yaml create mode 100644 stable/traefik/6.1.0/crds/middlewares.yaml create mode 100644 stable/traefik/6.1.0/crds/serverstransports.yaml create mode 100644 stable/traefik/6.1.0/crds/tlsoptions.yaml create mode 100644 stable/traefik/6.1.0/crds/tlsstores.yaml create mode 100644 stable/traefik/6.1.0/crds/traefikservices.yaml create mode 100644 stable/traefik/6.1.0/ix_values.yaml create mode 100644 stable/traefik/6.1.0/questions.yaml create mode 100644 stable/traefik/6.1.0/templates/_helpers.tpl create mode 100644 stable/traefik/6.1.0/templates/_podtemplate.tpl create mode 100644 stable/traefik/6.1.0/templates/custom/common.yaml create mode 100644 stable/traefik/6.1.0/templates/custom/portal.yaml create mode 100644 stable/traefik/6.1.0/templates/daemonset.yaml create mode 100644 stable/traefik/6.1.0/templates/dashboard-hook-ingressroute.yaml create mode 100644 stable/traefik/6.1.0/templates/deployment.yaml create mode 100644 stable/traefik/6.1.0/templates/gateway.yaml create mode 100644 stable/traefik/6.1.0/templates/gatewayclass.yaml create mode 100644 stable/traefik/6.1.0/templates/hpa.yaml create mode 100644 stable/traefik/6.1.0/templates/ingressclass.yaml create mode 100644 stable/traefik/6.1.0/templates/poddisruptionbudget.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/clusterrole.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/clusterrolebinding.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/podsecuritypolicy.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/role.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/rolebinding.yaml create mode 100644 stable/traefik/6.1.0/templates/rbac/serviceaccount.yaml create mode 100644 stable/traefik/6.1.0/templates/service.yaml create mode 100644 stable/traefik/6.1.0/templates/tlsoption.yaml create mode 100644 stable/traefik/6.1.0/test_values.yaml create mode 100644 stable/traefik/6.1.0/values.yaml create mode 100644 stable/transmission/6.1.0/CONFIG.md create mode 100644 stable/transmission/6.1.0/Chart.lock create mode 100644 stable/transmission/6.1.0/Chart.yaml create mode 100644 stable/transmission/6.1.0/README.md create mode 100644 stable/transmission/6.1.0/app-readme.md create mode 100644 stable/transmission/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/transmission/6.1.0/ix_values.yaml create mode 100644 stable/transmission/6.1.0/questions.yaml create mode 100644 stable/transmission/6.1.0/templates/common.yaml create mode 100644 stable/transmission/6.1.0/test_values.yaml create mode 100644 stable/transmission/6.1.0/values.yaml create mode 100644 stable/truecommand/6.1.0/CONFIG.md create mode 100644 stable/truecommand/6.1.0/Chart.lock create mode 100644 stable/truecommand/6.1.0/Chart.yaml create mode 100644 stable/truecommand/6.1.0/README.md create mode 100644 stable/truecommand/6.1.0/app-readme.md create mode 100644 stable/truecommand/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/truecommand/6.1.0/ix_values.yaml create mode 100644 stable/truecommand/6.1.0/questions.yaml create mode 100644 stable/truecommand/6.1.0/templates/common.yaml create mode 100644 stable/truecommand/6.1.0/test_values.yaml create mode 100644 stable/truecommand/6.1.0/values.yaml create mode 100644 stable/vaultwarden/3.1.0/CONFIG.md create mode 100644 stable/vaultwarden/3.1.0/Chart.lock create mode 100644 stable/vaultwarden/3.1.0/Chart.yaml create mode 100644 stable/vaultwarden/3.1.0/README.md create mode 100644 stable/vaultwarden/3.1.0/app-readme.md create mode 100644 stable/vaultwarden/3.1.0/charts/common-6.3.1.tgz create mode 100644 stable/vaultwarden/3.1.0/charts/postgresql-10.4.9.tgz create mode 100644 stable/vaultwarden/3.1.0/ix_values.yaml create mode 100644 stable/vaultwarden/3.1.0/questions.yaml create mode 100644 stable/vaultwarden/3.1.0/templates/_configmap.tpl create mode 100644 stable/vaultwarden/3.1.0/templates/_secrets.tpl create mode 100644 stable/vaultwarden/3.1.0/templates/_validate.tpl create mode 100644 stable/vaultwarden/3.1.0/templates/common.yaml create mode 100644 stable/vaultwarden/3.1.0/test_values.yaml create mode 100644 stable/vaultwarden/3.1.0/values.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/CONFIG.md create mode 100644 stable/zwavejs2mqtt/6.1.0/Chart.lock create mode 100644 stable/zwavejs2mqtt/6.1.0/Chart.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/README.md create mode 100644 stable/zwavejs2mqtt/6.1.0/app-readme.md create mode 100644 stable/zwavejs2mqtt/6.1.0/charts/common-6.3.1.tgz create mode 100644 stable/zwavejs2mqtt/6.1.0/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/questions.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/test_values.yaml create mode 100644 stable/zwavejs2mqtt/6.1.0/values.yaml diff --git a/deprecated/nzbhydra/6.1.0/CONFIG.md b/deprecated/nzbhydra/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/deprecated/nzbhydra/6.1.0/Chart.lock new file mode 100644 index 00000000000..3a8032e3c43 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:55.394042037Z" diff --git a/deprecated/nzbhydra/6.1.0/Chart.yaml b/deprecated/nzbhydra/6.1.0/Chart.yaml new file mode 100644 index 00000000000..0ac03f63055 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: true +description: Usenet meta search +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbhydra +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png +keywords: +- nzbhydra +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: [] +name: nzbhydra +sources: +- https://github.com/theotherp/nzbhydra2 +type: application +version: 6.1.0 diff --git a/deprecated/nzbhydra/6.1.0/README.md b/deprecated/nzbhydra/6.1.0/README.md new file mode 100644 index 00000000000..ffc475ca9a5 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/deprecated/nzbhydra/6.1.0/app-readme.md new file mode 100644 index 00000000000..2012c83a622 --- /dev/null +++ b/deprecated/nzbhydra/6.1.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.1.0/charts/common-6.3.1.tgz b/deprecated/nzbhydra/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/deprecated/nzbhydra/6.1.0/ix_values.yaml b/deprecated/nzbhydra/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..057c2c67a5d --- /dev/null +++ b/deprecated/nzbhydra/6.1.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.14.2 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/deprecated/nzbhydra/6.1.0/questions.yaml b/deprecated/nzbhydra/6.1.0/questions.yaml new file mode 100644 index 00000000000..457413fcda2 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/deprecated/nzbhydra/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/deprecated/nzbhydra/6.1.0/test_values.yaml b/deprecated/nzbhydra/6.1.0/test_values.yaml new file mode 100644 index 00000000000..5c988926a65 --- /dev/null +++ b/deprecated/nzbhydra/6.1.0/test_values.yaml @@ -0,0 +1,62 @@ +# Default values for nzbhydra. + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.14.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5076 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: emptyDir diff --git a/deprecated/nzbhydra/6.1.0/values.yaml b/deprecated/nzbhydra/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/develop/prototype-gui/1.2.0/CONFIG.md b/develop/prototype-gui/1.2.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/develop/prototype-gui/1.2.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.2.0/Chart.lock b/develop/prototype-gui/1.2.0/Chart.lock new file mode 100644 index 00000000000..2e5d62e2a04 --- /dev/null +++ b/develop/prototype-gui/1.2.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:54.425763184Z" diff --git a/develop/prototype-gui/1.2.0/Chart.yaml b/develop/prototype-gui/1.2.0/Chart.yaml new file mode 100644 index 00000000000..aa46a807e01 --- /dev/null +++ b/develop/prototype-gui/1.2.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: App to test GUI prototypes +home: https://github.com/truecharts/apps/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.2.0 diff --git a/develop/prototype-gui/1.2.0/README.md b/develop/prototype-gui/1.2.0/README.md new file mode 100644 index 00000000000..f2720a7e164 --- /dev/null +++ b/develop/prototype-gui/1.2.0/README.md @@ -0,0 +1,49 @@ +# Introduction + +![Version: 1.1.3](https://img.shields.io/badge/Version-1.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +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.1.1 | + +## 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.2.0/app-readme.md b/develop/prototype-gui/1.2.0/app-readme.md new file mode 100644 index 00000000000..f1bf7dc8109 --- /dev/null +++ b/develop/prototype-gui/1.2.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.2.0/charts/common-6.3.1.tgz b/develop/prototype-gui/1.2.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/develop/prototype-gui/1.2.0/ix_values.yaml b/develop/prototype-gui/1.2.0/ix_values.yaml new file mode 100644 index 00000000000..1061fbbd45d --- /dev/null +++ b/develop/prototype-gui/1.2.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.2.0/questions.yaml b/develop/prototype-gui/1.2.0/questions.yaml new file mode 100644 index 00000000000..c8fc843abaf --- /dev/null +++ b/develop/prototype-gui/1.2.0/questions.yaml @@ -0,0 +1,651 @@ +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: "Custom 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.2.0/templates/common.yaml b/develop/prototype-gui/1.2.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/develop/prototype-gui/1.2.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/develop/prototype-gui/1.2.0/test_values.yaml b/develop/prototype-gui/1.2.0/test_values.yaml new file mode 100644 index 00000000000..90d1059965f --- /dev/null +++ b/develop/prototype-gui/1.2.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.263 + +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.2.0/values.yaml b/develop/prototype-gui/1.2.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/airsonic/1.1.0/CONFIG.md b/incubator/airsonic/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/airsonic/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/airsonic/1.1.0/Chart.lock new file mode 100644 index 00000000000..25e419b3974 --- /dev/null +++ b/incubator/airsonic/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:20.65277293Z" diff --git a/incubator/airsonic/1.1.0/Chart.yaml b/incubator/airsonic/1.1.0/Chart.yaml new file mode 100644 index 00000000000..b0f442c0f90 --- /dev/null +++ b/incubator/airsonic/1.1.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: Airsonic is a Free and Open Source community driven media server +home: https://github.com/truecharts/apps/tree/master/charts/incubator/airsonic +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/airsonic-logo.png +keywords: +- airsonic +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: airsonic +sources: +- https://github.com/airsonic/airsonic +- https://github.com/linuxserver/docker-airsonic +- https://github.com/k8s-at-home/charts/tree/master/charts/airsonic +version: 1.1.0 diff --git a/incubator/airsonic/1.1.0/README.md b/incubator/airsonic/1.1.0/README.md new file mode 100644 index 00000000000..b5636359ece --- /dev/null +++ b/incubator/airsonic/1.1.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/airsonic/1.1.0/app-readme.md new file mode 100644 index 00000000000..02ff47fc823 --- /dev/null +++ b/incubator/airsonic/1.1.0/app-readme.md @@ -0,0 +1 @@ +Airsonic is a Free and Open Source community driven media server diff --git a/incubator/airsonic/1.1.0/charts/common-6.3.1.tgz b/incubator/airsonic/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/airsonic/1.1.0/ix_values.yaml b/incubator/airsonic/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..8771a6489cf --- /dev/null +++ b/incubator/airsonic/1.1.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.1.0/questions.yaml b/incubator/airsonic/1.1.0/questions.yaml new file mode 100644 index 00000000000..a2b64349ee6 --- /dev/null +++ b/incubator/airsonic/1.1.0/questions.yaml @@ -0,0 +1,555 @@ +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: 36053 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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/airsonic/1.1.0/templates/common.yaml b/incubator/airsonic/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/airsonic/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/airsonic/1.1.0/test_values.yaml b/incubator/airsonic/1.1.0/test_values.yaml new file mode 100644 index 00000000000..a704a092be3 --- /dev/null +++ b/incubator/airsonic/1.1.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.1.0/values.yaml b/incubator/airsonic/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/appdaemon/3.1.0/CONFIG.md b/incubator/appdaemon/3.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/appdaemon/3.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/appdaemon/3.1.0/Chart.lock new file mode 100644 index 00000000000..17d201a1ec2 --- /dev/null +++ b/incubator/appdaemon/3.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:21.640769414Z" diff --git a/incubator/appdaemon/3.1.0/Chart.yaml b/incubator/appdaemon/3.1.0/Chart.yaml new file mode 100644 index 00000000000..7c3a83d53df --- /dev/null +++ b/incubator/appdaemon/3.1.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: v4.0.8 +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: AppDaemon is a loosely coupled, multithreaded, sandboxed python execution + environment for writing automation apps for Home Assistant home automation software. + It also provides a configurable dashboard (HADashboard) suitable for wall mounted + tablets. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/appdaemon +icon: https://github.com/hassio-addons/addon-appdaemon/blob/main/appdaemon/icon.png?raw=true +keywords: +- appdaemon +- homeautomation +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: appdaemon +sources: +- https://github.com/AppDaemon/appdaemon +type: application +version: 3.1.0 diff --git a/incubator/appdaemon/3.1.0/README.md b/incubator/appdaemon/3.1.0/README.md new file mode 100644 index 00000000000..41a64b4902f --- /dev/null +++ b/incubator/appdaemon/3.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 3.0.2](https://img.shields.io/badge/Version-3.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/appdaemon/3.1.0/app-readme.md new file mode 100644 index 00000000000..083a4a25f67 --- /dev/null +++ b/incubator/appdaemon/3.1.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.1.0/charts/common-6.3.1.tgz b/incubator/appdaemon/3.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/appdaemon/3.1.0/ix_values.yaml b/incubator/appdaemon/3.1.0/ix_values.yaml new file mode 100644 index 00000000000..ef02d27c01d --- /dev/null +++ b/incubator/appdaemon/3.1.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.1.0/questions.yaml b/incubator/appdaemon/3.1.0/questions.yaml new file mode 100644 index 00000000000..d5503b9e260 --- /dev/null +++ b/incubator/appdaemon/3.1.0/questions.yaml @@ -0,0 +1,485 @@ +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: "" + required: true + - variable: LATITUDE + label: "Latitude" + description: "Latitude of your home assistant instance" + schema: + type: int + default: 0 + required: true + - variable: LONGITUDE + label: "Longitude" + description: "Longitude of your home assistant instance" + schema: + type: int + default: 0 + 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: 36052 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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.1.0/templates/common.yaml b/incubator/appdaemon/3.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/appdaemon/3.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/appdaemon/3.1.0/test_values.yaml b/incubator/appdaemon/3.1.0/test_values.yaml new file mode 100644 index 00000000000..5038768a3f7 --- /dev/null +++ b/incubator/appdaemon/3.1.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://0.0.0.0: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.1.0/values.yaml b/incubator/appdaemon/3.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/bazarr/6.1.0/CONFIG.md b/incubator/bazarr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/bazarr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/bazarr/6.1.0/Chart.lock new file mode 100644 index 00000000000..0b47ad5778c --- /dev/null +++ b/incubator/bazarr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:22.609682071Z" diff --git a/incubator/bazarr/6.1.0/Chart.yaml b/incubator/bazarr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..13052702ae2 --- /dev/null +++ b/incubator/bazarr/6.1.0/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Bazarr is a companion application to Bazarr and Radarr. It manages and + downloads subtitles based on your requirements +home: https://github.com/truecharts/apps/tree/master/charts/incubator/bazarr +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png +keywords: +- bazarr +- radarr +- bazarr +- subtitles +- usenet +- torrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: bazarr +sources: +- https://github.com/Bazarr/Bazarr +- https://hub.docker.com/r/linuxserver/bazarr +type: application +version: 6.1.0 diff --git a/incubator/bazarr/6.1.0/README.md b/incubator/bazarr/6.1.0/README.md new file mode 100644 index 00000000000..0cb96452964 --- /dev/null +++ b/incubator/bazarr/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/bazarr/6.1.0/app-readme.md new file mode 100644 index 00000000000..d983e4cb852 --- /dev/null +++ b/incubator/bazarr/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/bazarr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/bazarr/6.1.0/ix_values.yaml b/incubator/bazarr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..a24f5dba0c4 --- /dev/null +++ b/incubator/bazarr/6.1.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.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/bazarr/6.1.0/questions.yaml b/incubator/bazarr/6.1.0/questions.yaml new file mode 100644 index 00000000000..a0e10cb3215 --- /dev/null +++ b/incubator/bazarr/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/bazarr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/bazarr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/bazarr/6.1.0/test_values.yaml b/incubator/bazarr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..4b2e3faafc5 --- /dev/null +++ b/incubator/bazarr/6.1.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.5 + +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.1.0/values.yaml b/incubator/bazarr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/calibre-web/6.1.0/CONFIG.md b/incubator/calibre-web/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/calibre-web/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/calibre-web/6.1.0/Chart.lock new file mode 100644 index 00000000000..b4f8fc5404c --- /dev/null +++ b/incubator/calibre-web/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:23.517272704Z" diff --git a/incubator/calibre-web/6.1.0/Chart.yaml b/incubator/calibre-web/6.1.0/Chart.yaml new file mode 100644 index 00000000000..2b23817dbdc --- /dev/null +++ b/incubator/calibre-web/6.1.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Calibre-Web is a web app providing a clean interface for browsing, reading + and downloading eBooks using an existing Calibre database. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/calibre-web +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png +keywords: +- calibre-web +- calibre +- ebook +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: calibre-web +sources: +- https://hub.docker.com/r/linuxserver/calibre-web/ +- https://github.com/janeczku/calibre-web +type: application +version: 6.1.0 diff --git a/incubator/calibre-web/6.1.0/README.md b/incubator/calibre-web/6.1.0/README.md new file mode 100644 index 00000000000..890e6f4951d --- /dev/null +++ b/incubator/calibre-web/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/calibre-web/6.1.0/app-readme.md new file mode 100644 index 00000000000..e5b39d2720c --- /dev/null +++ b/incubator/calibre-web/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/calibre-web/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/calibre-web/6.1.0/ix_values.yaml b/incubator/calibre-web/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..1f6e24d1545 --- /dev/null +++ b/incubator/calibre-web/6.1.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.1.0/questions.yaml b/incubator/calibre-web/6.1.0/questions.yaml new file mode 100644 index 00000000000..4262a29ccb7 --- /dev/null +++ b/incubator/calibre-web/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/calibre-web/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/calibre-web/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/calibre-web/6.1.0/test_values.yaml b/incubator/calibre-web/6.1.0/test_values.yaml new file mode 100644 index 00000000000..240957f08b5 --- /dev/null +++ b/incubator/calibre-web/6.1.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.1.0/values.yaml b/incubator/calibre-web/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/deluge/6.1.0/CONFIG.md b/incubator/deluge/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/deluge/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/deluge/6.1.0/Chart.lock new file mode 100644 index 00000000000..92873a80437 --- /dev/null +++ b/incubator/deluge/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:24.477113224Z" diff --git a/incubator/deluge/6.1.0/Chart.yaml b/incubator/deluge/6.1.0/Chart.yaml new file mode 100644 index 00000000000..c0cb3cb9084 --- /dev/null +++ b/incubator/deluge/6.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Deluge App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/incubator/deluge +icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200 +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: deluge +sources: +- https://github.com/deluge-torrent/deluge +type: application +version: 6.1.0 diff --git a/incubator/deluge/6.1.0/README.md b/incubator/deluge/6.1.0/README.md new file mode 100644 index 00000000000..b1db5abd8fd --- /dev/null +++ b/incubator/deluge/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/deluge/6.1.0/app-readme.md new file mode 100644 index 00000000000..0bce0f81e82 --- /dev/null +++ b/incubator/deluge/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/deluge/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/deluge/6.1.0/ix_values.yaml b/incubator/deluge/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..14051dceb23 --- /dev/null +++ b/incubator/deluge/6.1.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.1.0/questions.yaml b/incubator/deluge/6.1.0/questions.yaml new file mode 100644 index 00000000000..a3466d75f73 --- /dev/null +++ b/incubator/deluge/6.1.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: + ## 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/deluge/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/deluge/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/deluge/6.1.0/test_values.yaml b/incubator/deluge/6.1.0/test_values.yaml new file mode 100644 index 00000000000..3c8f28d1d26 --- /dev/null +++ b/incubator/deluge/6.1.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.1.0/values.yaml b/incubator/deluge/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/fireflyiii/4.1.0/CONFIG.md b/incubator/fireflyiii/4.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/fireflyiii/4.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/fireflyiii/4.1.0/Chart.lock new file mode 100644 index 00000000000..5f2bd4266c8 --- /dev/null +++ b/incubator/fireflyiii/4.1.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.9 +digest: sha256:6f9b3342e87127a57224436d86c355fff149ddd1456a20340ddf9c86adda86f6 +generated: "2021-06-14T16:02:28.182618873Z" diff --git a/incubator/fireflyiii/4.1.0/Chart.yaml b/incubator/fireflyiii/4.1.0/Chart.yaml new file mode 100644 index 00000000000..9b52466febb --- /dev/null +++ b/incubator/fireflyiii/4.1.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.9 +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.1.0 diff --git a/incubator/fireflyiii/4.1.0/README.md b/incubator/fireflyiii/4.1.0/README.md new file mode 100644 index 00000000000..93a5ccd4a15 --- /dev/null +++ b/incubator/fireflyiii/4.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 4.0.2](https://img.shields.io/badge/Version-4.0.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.4.9 | +| https://truecharts.org/ | common | 6.1.1 | + +## 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.1.0/app-readme.md b/incubator/fireflyiii/4.1.0/app-readme.md new file mode 100644 index 00000000000..15307675f18 --- /dev/null +++ b/incubator/fireflyiii/4.1.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.1.0/charts/common-6.3.1.tgz b/incubator/fireflyiii/4.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/fireflyiii/4.1.0/charts/postgresql-10.4.9.tgz b/incubator/fireflyiii/4.1.0/charts/postgresql-10.4.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cc65122b86d87f51c1a4fb223e55d0195726b004 GIT binary patch literal 48739 zcmV)cK&ZbTiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{dmA^hAbNi0Ur|eE)>2la9)2afn{!r{6h~hqnMahJGn?#) zGc*nUZM|t{XJ_a2%a`ikot>Thzq>DA?ETyB%bi!R_jdO7Uhe$c&hCpBuiyL|?5r7& z(iC%n*uU-ExvhNXo=8GrNCgsvhP>AT@Q}b`%4R({L;?*F$1N0*kC<^n!ya7kwNMl# zKX-S#yL;W8mX9MG`Z)9m=Dk)2LNvua@aS|(!xjL;5#>ZEuoEF7-rL^xB(w4EkcbdX zN!O#(ZS!{v;5uob`?>qM1`jqwzR0{DyzJZ%ANygxsDdpg*J8zLsMKAuJs#0du)0{$#;$jOidM9ct%zRctT zg+5|F?|5_?1q6j2?zSdW_SJT4OvEG}y4^87-4+bv?J42{v*c4c`C7!2owHzEvLMc} z;M-gv?-O^bY?JBO`PoqgI(vINpZ8w8>_*|Z^$E{zDD%~jI8CKLTAhSOtq$mK3`YU+ z6bV}$@Pb%k+?pa13PeK86f`_VB#~ zOe)C#fO?U20q?%@U;gm=#hW)jz8Q{QjE3Is zs~0alf7BY|5HlpO--Gtv&fack=T&F#)y2+>-p;Gu-fs8x4?nzkvHQdBkN>y*FEWAe zn4I~4je;2Sdr$!9&;M6%UhVGY=l|;$ubcV*5b4=7co)zi3gA$!mq4ayj3Gh{O|ig? zx1K$Net;3jTM$x#K}?VUF(DjoNDu(M#*7hP=Ho);Eg+#6#6Ahf;7Xb;sXC0vIA+)f zK_TY4{#c`;I8ioy5HlvVHgt_hfQCU*q5|2T&N;_p!UfZso670OK`_7`!$NkbrJ+cL zH|75xeEHgX29O2OgXzrveTJquE#ZLdsa$}LQ}|ar(_fQXTu_F__#i->ORxjycT4ux z=u3`bYdUCzsw~6sD3!!g_0ejMlEP(*<+ea$zAgK#K=qVNw_P)J3C&6R68#iFpmCz{ zcYHh~DD3R+blBcb3*gx^7)013qZy!-JbfAvZ>B#V;t`4i!R2s2-w$rkj6Vl5GCdS% z41~k;013>+^DV#u$H1{r#g9j4RP-6n)Fv+(~5n#mhS;5dXxtliAaWsNYG{@NL->-MLQ0 z$TbqUV@G@2_V$_TZ^F4UV;<+)?x>LvEXH!sW;BKy8V5cE zVXDBC#-WHP3DvNj$KgKzz%lEM_&Y}9NH$*t-U7g(l(N31wh?vmOO@OxmmGEz#wR!k zR4FY!GLqxRAJmrxvSaPiW1aHDuxM6>X#8wTE69)4CCL5Dkfg^2IkHHSXd#f{c-hIA z5ix@U8VdZ`h}<(Oa8Gs4o6wuk^0mt-1?9{5HWMBzdxJ!&_=Vt-=Cr6bssxI!~sLO5#XuL{RW1H&hLq2JH4oP>}U~ zIsK<3#J<#u*#8{M`ML!$m*PhX8x;Dy2Uo<0PJGo<|GtA;@L~ZSzYT5ZjP|ZHc#V+6 z7aL52nS?ru19gJ-KEmN(LPi2^Cd8Y-1aaV=r;o(^nVi9%!h-l5HY6c;Brr)$6a@4J z`<8-KTc9pqW+9 zI^<7DNVvePW6su`i8ze|L81V6l6JJ}_AG5!&Lq7e^{HQ+K6jq|mM|&{e-^6!5^5z2 zg;WVz0A^v4B7SFA;df9y$?pftjapq0}hoNV6it$e#iJOt_E|!9V~5wJS9>^+C@*C6|1{B~Y$Jpqyh;JM;2Y z^}0f6sHU_&2r4p~S(azo5856mORQCaczJ$ky$SVQpoNJfTIabUdOI^lV@JERA8_Il>Yk#V}67tVA zJl=!dR7K{q(3>zC(wHk*O$1D-k9$DFEuf>(7BD=e0$-vi3TDZ#8%Bf{UIFz`P_h#! zIj~kl{;~Udo5i6ZQ{2(4*117JcOs_2vv(g3I=}6obWV;w9-T;;mm+tdaO=TyIvSY` z)z6GhwLTF~hgz?^a{GA&J|3xM2@UBr-qK58ro5O?Zq5hPnm0k$I71TmZb5VQ`-`KV z+!%Q39!jb?|DK_43nctO3L_=E*>;|%FyTN;RFKrQd6JL2Qj*(6Pjy4i5G!q6v_LT? zN%w{hC?$GfI=gi8%mhjH>q@*QoC6y%$3EOh_2DWVJ}Gx3T32>4O}<@i7G~BmHyqo; zfDY{?)A`Z<;ptI#>Oa#HI~;dV$6ohzl!8mc&WJEBIxG%hLvGT-+S&W*W#}uCb+{W6&*Vkna(P?Qy7o* zvMJxiWbS`cj5DKBH5v);X^qiYD5N4T3)?KMn)lK#3e>4u3mky@GawEKMkK&MLM|}! z<&2k&saC>k!f2>&Sg#QyQnt39$#J)M{!D@r;SMOhfP5gvpGQ=C=UpJG($jsy?g7ax zD@qIw3F|@GQJ%y?VYYAgk8;o8`{v-KY!KA(?a!0}{*0zkfP0z&1VcyRwfZ4kYz)Oq1YXPqovL+Ntq*bqk*l7=9D<>cBTsz}==j0V z{S5_@Rr0)QHBP-gIh`?jLbiZ&%8D9h zl?LSLD}rq4%T~A|3a+RegrB0I3D2f|u%Gbb{5PVo9w9 zB>BFa5;C*v=LoV2M?F(J^^RF(ct_CA5O)HKeC&5dj7~eM!44G@%sOI%LbVe4`oPTr zBr(d9^2iWNlC)=ceR{tGW?-xd$#X81f+=D%weipg9z%VSsVr-T$p;dG!p2rrjCYaT zIH?YS$0+BvL`H>^dUV9-wK|>6l$wz7#NH(-(;fx+?=;qcL#%J3l06$l<6nj-!!OC{ zw>jw0`v|?;8et@4Ep>dNH2G5e%+{l;B)=xfJ|9RDyq%SA0l|{)7s^F1lhdb66h%Nl z)U8=8CO8zf-AcirHqoIrs*1*!lOgJw!M5kFJ@Bd0RQ0ARUuxmBPm9l;@+I`{!EHy~ zo@sg_J^peV&xOjLP%e^eRY>LJ3QT9IG1!bN6?ON=z3%SoAG$l;o$bAsF!f(K3@q0$ zHH`BFtKPj_6t6-nWR2#`LKj=lvY-?3uSv3dEtgG6fj=NkS1wWyooS<}M z3z$hN_XkLTQk-B&si-sR7DRr;jfldbU^8_^(a}hC{fxA0S!4$qj=p4_&Msx{r3T*R zlOEif+gEt@KemS?+~yOTfxQWZ_8|pMr&vr#IPSK~Xj-GQm1CX3F^_YO_*&zx)h2An z#YFOJdX~(A;Z#5=w=vrT*^e6N3{vwh~gx26ca8 zxBCGd|6=koM{ueR4MVKv2)9eVUa*|X2Wgo?eV=d#gj4A-^C463eT0qdP}c*JE?PB< z#+phSW}%krk`&M!i_PR-TbDVZ;~uozPDhYH0Uc){6)PR+Vm)Zn(a5PD;A^apQZyBl zuIQhqBs|5OqcP?^z>HCIiE?4DU}a6&d_Y1B5yK<$d2TlXIzAyG?yHj7o=8>iFB)Q} z=!MBr1r_rueN{Fjl^zJlkRe9Y&dAw#=~8`N=){)kK|2~NvTInU=rftdQxH_h#oZar z46sx5*=2-GRhNtGX2RA~Gb#(pp1!2;PRNvq#W3wHVG-n^ntY`IFAnGcC|G6<)o3 zvDeBPSgAvI>SL+;n;RZG=}#!~-=YA89%gD)KC|UqJa|o8ql8mTW!?#~kX%E;vCZ3l zCLwktJ`&;7$jD;YGuZddjtqq}K)zg=6|Xz*Ps}Cs6wQ=IWUh9)a3uSv=AJsBu%zm&1G_t2{XeI8CWesD}xGDauw@q3x6PS`tJg12 zukr8kF0yQvoev%GvGPm>h_Nggi+QyZ#^ME&R z-atBDa<{EE7l|2ynJ;RKL?gYvav0 z^oR%nCx2nXS=tClaj+swSJ^yS+iI+f8nY)&H>DGCKx4TPbj*vMb2A4tWHrfTZLQV8 z?mJR?nbFtwf>LqP0|>?(8MHm}vuAKTvRA%a8QW!j5Bk5|tbaG)y>Q-8#$S4BZ^|94X(o(=U<*Q8XiC{-0pa>OgJZD;-h@)F z?IIFbX{(rZ0XD|bo*bC{-v(RBV?WSGJpk{1J=&6=;D2hfDS^CCTCuZ~)XRSfGwi3f zd-^4!UqXH<01g5~rp8XrA%6ekL1G1H)%pbD5RWLsc3P>ki6Mp|jYHouJT_Va;egB6 zk}cqLOKB12o@gsEEmX$|+IC+Or+aR!WhsNMdNGztetWT~x?$IS*?feITAjmENe79G zx^Yl9^y;o$Z%lnM8ex{$Vdt&lc_Jhfm_8Dd(rYsZ4;~Mb6DB*mQhB6hm7obOM0Whz zy;tL@Ng)j}^gk+^C58l6B}g#i@lfOS{CP{y%*-2rc1P}I^~!omeQeAqJ8+JX{~IF$ zzYo>YDkpRget1W!)E$lk)h#tzb~_^bgoLMGx7vH)l=C#>W$PQ+4!YtA8sdN_dCD51 z2h*8UCX^O!Dp^fAj(jBWK**iac$RyltG8;SIFPbYJ*ZQD#8*xs?p|UrV%C=ED)o%o(EtnwYC&xh4-#1m1>9o-2DRX=1w)2F#848l`sw`ODS&7C&jHmqX(mj%ua^10Z z;b$4V&5m?2SUWk?!CML_kir2z;aMVQ?B}EIII%_lgl9cyXGwwga0mU>k*iDFwJ6tR z%UaQR&27k_ZhuNCs@vHuX6?DH+CKmOhZ%88y}bO2QeNkv2Wy(FPPIoqb97J~^F=JJ zP2&wJ-NG#0%6uwt_LjLE)kTV|lB~>DEmq4h5zm#yd$Qp+b+p{ijTK)j*_?M6YBuO4 zM^et^_d#YM(#t&!%*pwB5vmwRsf!CWW+G`gK{3rr*i4hktlz~IJ)-`JTS5(Hp%5cf znK`E#_H$#*d6d}DIIoNBC#B#eTAMM(Id->7>5^}4gM8Xa?$A)v z&lGy_`*WW@--72!-RFNKJG+urojI7E5S5JFN9U0f&j8e4lnt8(R~uRxoGb|7#K#_D z$?Z=>eTR%0D=V#3neqi{&S=cc6Pqx38RHN%{hs^OFMDNV3Ph9%S654$lV7s!=s_}c zSEqEayZ7Q{qPAMZ(*b$!KJzU-2G!;Rnx^S93wsAef0 zACGo+SDes-w0F_fR9nAIu)0c1uR1CR zFL(8jtp3>}^!y>ZYBtj&hV|`eMVFEW)muI5HqLg8;Xh-{Q{NZ*`lJVYuU?-LljlXT z%-EUcjGB{%EfD=`k4#DKbyYODh?&EOGFy|ncT#-B= z9JH~8d8--Ho8ldxc^w4yxZc2?QXdDZJ5dzOy81P~xdKvEwj5m`vEcD2W7so`hB5ck zDopw|(R9_Ez^8J8WgbAOn@P!?iD;#v!9ud*EIQ#O|kj&7f zPnCrc5`Y*^{7Se3{G6wLCek|)RYhMhnA>zl1ZD*3>mwRs16EO6Ie4Pf*Tb--t|}Nt zo+iQJTXRACHWu1mmrOC=f*WjX?Nu3LE~^KOD9d|l%@8$_H6jVJ$_16aiuKe(mK%Me zWgQggHq~OD&`kN1kblcYInDqJGuO10Gy*kQb{`ww^B{qg8SoZy5LsgXRm=$ zajD;O>DzX#>2ZOWh@&kC$Tbe-th2f=QNJQahq%@yP~CU;wxLeaNXH=2(T#0CbAZ_9 zTc%83W|Vuz35g&mIK%;(xpr`BIdg5}c3(*qQ`;XVnKEyLNDwo8F=3cbXyEr?cSl_s zD(-f(TP@p*B0lDxxjs5Owb6N9g-t@r<sClKQ7^Eux;^(W2ZnTw3DTln3(V*0o?4e1CtpSFem|-yh>0Y zF%x7&JS3EE?*6pzjP>EP0(p>rR*yoAx+`n_Y<^aj{}s>jb$-RO@@o54Ehz&FWA5gc ztl;U(DK#qFgTYC%%nWB%Gc)!iQ$TKqjgnc@dxLDMBR5~v=lZ##?$g13(xs$7GRJ*d zi!$9i$Jh3i>IvaOxxffgAX&*g#exx!OL0z_&?e$0ui_0_UXgZ8Udv2cv)ksD-o!*q z?K5$##5ngDlGUC|c6(l0#FzsAxckE!U7%< zP_(8ezgZJ_DNBt@FVJ{fi*nfAFW;y~(Lk?tMx zQ6%(y6I4GjQ`Ydw!Q(0Vgn>)$){i*3V2BviQGv1=zI~dS&PmHfsSh<-K68eN0xWs) zmw1dFpCcz|oEB2r5$i!TzH}aZUIu9V#lZim{pCyQjIdqmJg^O2`1-YDW@Gy+Y{QG! zJ3H|2uQeNFaUAw_6;z{cHIke(T>=;zRKP$!Y2 zV0|6#bbrh`O8wzQ!Bb$)+o(ReY5WB`{sIq`+;m?InD;eidd!z}H;l%Zhd4+E>e3F> zGYK*rcS3w)r&{NlpboNrl%%$x54==^r|IG-(T>KKe&Q`eX94^fW62!t!O_Xl!3FqT zAE}c(*dHjeZ^6O-;0S*E<>*WTFz@iX6T}l>mxfw2xKIyxafq z?r4591IPF}AqxpX!EIY@Y>pci<>@5nNuWefD7(w@;34xE*ReR@5hD2j6qNaml5n0^;d1Bx5)Ia~1ZO?de> zylNv}u@wg>9t}Je+~kZ^(^Vb2YRb>hR2?nr6LRPDSj9rAdU_={ORD~%s-|>^Z|%r` z#Z-*{px!~E?msvU*VM*>_%APCzud{ie|WX?riuUcAn8jBp#7a5^L7u~=I%<4e#dYE zW#euA=d<>fEG{?uvaF7{rSl>t_mF~M-tNH{H3{2A4|~Zs2MSl7)fE(-Peh?>c2 zF~=9FNaz|=6V z3Ih@fJkCqB1OsIgl7OfsD<{PFaaf$aN=a&)y+w|dBP1rexumDtmU2sscHtTFT^5>E zMy`q``4LsI98&ABEReidUQ67PMXQTFGksu!rQ)RWex(M>XM5C=|NnaL+X^>Ql-b?z z?X&k6M}w~TEY{P;eEolS=Vh7xztiad50SqA-b8nUp?asS?1643B*5uD7zl?UHZk0^ zA=&rew_2`iME&Ymo8@31t_jj+RGE7M=L%GQG&cms6+-H9>F`XSmTG$*xg{r|zV0!m zhsy8}YTrS0zkErq$hwKyiu}N@y{`2!s{Kpqr`Ox+?X_dT)%xnNOG9cRe}6Fe?fv=TPv32Piig+}fdXmVh<7@v zjZ{_VE4hXzmji}(IuztiRW7_gwZC+IB#?8_o;U+cT&jO#fh_4*}rIzINOk2f7zq0Fw+W!K5SSCkg@!; zGGG%n+zV@3{iKfKA!S|Ybj(0NrvnlHGk{J<`M#}vSKIlZ zsA{k;p5CZ3KICL!(S5$*)VT!|;(;z}3%H$$YAhX6;N8o>=!ZQ65_&ji=S;Xg%q|!m zYvbb8hS9$5LDr%*oqfu5HRIda_{7dht;z|jtzu)rt?|6|N$q-REzD-#OO}(w&Z}*` z$+Z(oTC)k|QSIy3jNm(ae|U6x+|P--kouU{oXJ@sMg*Sn-*^7#a)Ct5yU6#MR5w(f z`SG>ASwNxx{`?|`#46462z!e8RD1SK#MgG>^`-XMZ(2oxjLO$&E1qR>wJk{+6V`o#1a994vjA;9-orJYHd{qWdiDY@a#(v}R z^L}DRxj@cZwve6cj3~Q7%&*5A{My^D%^!|x<&!eDm^E{`~LF zo7c_x-$SG?U$(!8YclPrw}B%PV7bKnG?irWCb$RRZ|hmO{eA1`b7b7q>hn2sgs*L7 zTB@L&t=iN*BewMX?xY2j`%P`Du2!aWYvzPWhg%RV4n27NLj6gm1LXl6+MN`bl$f0a z#Wbv(X+uYA|1(Ab84>IQiXt5nvh^F*&{cUM+mIdMFvK2;IaY5F;n&10%p6G)9Qa(B zs;fu8+RLKaqiqbeYi@IVsbcO$*xQ^>8S9HHm4dco->C+BKh-B!QZord@6_Ii7zxD) z+JEDnzsZ%uRSa}vn+e!_!1@IAf-_KCEZ0_wP}}skU2kmVnp%YE0$hegitKWZMa=Yh zmc9=vco|j0K6eDod6I6Ruv8gWrKXTsnAERxN=1G_ZjS>xL_wOZf2%`@C9$^`P&IpD zim$0R8EALzRoVsEu-my@jCFl|*oo3hQ(bFwZl{Y5pV!m<3b=PB#G&>yeyo65qj~!# zPbv6|In{YOu&AGrTh#4sqDf`Bw|w*$5M^^UshI!Yv*#-m$O zuNW0Kz5eN}RzD;2N_QlsRq}1tZNaU}Q0VUm(FC2vQ`p_9FE`5~>)VH(J{Zyt(vEZ~2zwT<5r9Db7vm zRrY<((Z*d_t`c>suWk+t;ofrp$ z8iNyae3U7k86(Q-Q@92>6~;^V4_VU?ZMtYXn+5@y+d*BXq;H`PE?R0ClqZQ9mL>aP zXG_*OTN-m!pTEpSJ`)f3v~>QI$ILA~F37NOMZGds&K+fBYOaf^EwRdj`7T8@H|*~s z>Xn8FUQE35YBgwQE8Y(g3o}QzGDVRyYizWc`Ei}+9+F51^QcQ1Y;=Dn0p{Iz0UbhH zM?B7Pc6+nDR2ng|y;-teWn)Pv--{v27jXLO6WYAmB!B64YzX6Jcr+V)xSTi30~9Z2 z&Wd_9xKq~bnC`55VpkB&EE7voEHBUN(V}FvE=ARz87?!Rrj9$54q>f9{z^2>BA0s$ zZ4H$c>`~mu$OpQHMzjOBmhVbe!&JfT8e={D8G8_oFA0}mXXb`^fsHNP!k;k}_PV+4 z59NoSDk?gS>U-zJ@X(H{2$HCDnY^saD0Ror1DRRXlnD3%PHyKp4?f}9g0jEjnJ)e% zxv6eLXX0ME*ShKcl3tgugRFO=k{pwJq*VKhV+ODyrL;-Fm%K5abwQK6L+GY%YBYU+ zht3GLX(UQwqiu_6wB1c46!zf{xV<%1N{VNTE)akRbQ+NWD=)Ox7y(Eqs0xJ`jsq!h zRG@I}0Ns-XM~DRT1y0@sBDwW4z?98`I-M^4f+FQME6ppN{nN& z-CK!xv}TAR;MEXqRMj-IU8JTg_zy}#X#aQEc8YeK_XbJX`~vXb;m7@x4@U#|xPNkd zxPNi{{;c=kp}N4cRc_UY*H})Ctp>Ic2xt<%RGI(4@d)H7bz>F);U)my1gn=L;M4HA zP~O7y3pC{pkz*kgPb#+?K8luLyK0Vb^chzoDcr0`Qh{hU^fQfVBxc!CF$*>~t3PXJ zkDHrnRZ0=;CEecwr<_vt{!U{sp~^WHFr;DvSGM?-!t=_ha|JdEsT7ieOpSGPI=eYJ-0$lur&Ku<9#IK$kvl}=mQA}vRQM==h1Q08N%gDMP^ zmFo>+-tht zeU;4^S03I~8)~aY#uEXKF-EsO@PFO z``KZxkJFqz;Bx4mpVUP4{G{|~OCgYYWxi`yN+6X@vN`sjrS`wc>1lU{rgyghUf}<0 z@5NsJ{r~H|*Do9U--k%f3(7}vc%6HxS$>4A*1%Mo>B04G>k|q6UV3ubnqq-`Bv7vf z#@}WArlggy=hywqnfg{!Mv$N z*0w>pID!pGo;t+1J*NTZVFPTIBWMnqGCsPiUJ$i3Y3%`OEw)iYsb1OczB#{#TQG?3 z!NPn0ERTKFf!Q*Ud*;wrKXCi*6P|5ZN70U{v?6IO@X5$Z?mOm*yQbXs>cN>; zBWdPkp=b85Z!J%sS}I-tbC_anzDAh&>*8VqdS>+)T0YS66X3)XRE7O`;njkKLB`V*O~LC$3tjVU$njA|^> z-KV zGNlxJ;gc=?XCVLI9sl*!Q4cc~XgRI0+*0qJk9AxlzeXD@)duJ3fpghF55Lk5ha^O7 zc9`guMvaS*m~6p!I{r|q$9?&t{158y@b#-g?mOE&7Ush(3}3&*q376rRp?iX71}!d z{BN$44HOs60rT+dW2yYN@vzo(53or7@9e(L>3?tDyx48z|3jpb zJ8AoTJ8wW~^E2_#?k=*+ZHbL|XoPgtmK{u7I%{IBrl=;Z5jAs%tz3?NYi?}PL#Mg& zpI>|HH~?69{`+P(zyE*rx{3evASovv^RmB6x)1bYkx%9j9)2Dk^t>(wJ%YD?vR*2478E5IWApOT@?5f3n z#u<8MWvEi=t1Xa~hQIpy(QFRpO8kiW14o7dIHIaox%e#-Yp*pT#{07k;=LaP^ae;c zq;cpwu}Qd*$c}hUGpbp}dH<#>d`TS_)bQY+)*CT8%{H5(iA@FCq-jZi{!WbK6vDh2 z_BjfOM?^A)++vt^L#AZt(+(7OdbL3(XHdI)*=BMo%Bo~rg|&8HW>HBOPll1-D#dTH z^6D~Z#OM@@3642%kD&-J;Lk);_~wUn_n1o8|KjtSdp-Xv-v8|EHut{|lX6qYdAXL` z`eh$H&wGB=P4$Jo3goQ{8l9n8@b7EEXXKg$cM-XJtQnG&geg|C$KMbCX@@KAEp?{%;Ww+Hlu%hm}aD*`SpG&mLmVT ziu|}A&Yr8i*a->a&(+`KC<^cthXMsEN+iz|J&n0g#WmXMIx3O&9hj1^2fM9wP5az~ z*RNi^c+~hZo+pCvOheE3;735rSf0yyVmpcPo+ije{U}@|6lFBZsLDDNXp3$$MZz0#h=pv zSMCLj@bKIx{0d5Q)_32kzm{snu4OlIQe2{l7|j@dcf2&T|Ij)t<}_v=R$udbJA!So zYs`kKNX&7rra~)Kf|nTAe>Hjg*ixnZACl0Q%G(3n|G#+gCV&6`dau#{A0*Y4|8F%r zG|RvvTn1=>&+$kS#aXXcAg)~{dfEY%_3)%U=xcvFEgmap)M^MikTC|?_dFVhqGj(Z zRNG1TsfGSOVKeW_-T>^n@e}G=F*gfIy;Lgy^{F6V*A`%r{C|^w|GWEoXQ#3MeUS8J zjtktZ3;AyK^9)_2k?iZ1?AmPWeT4puabouC+=g%9KPz4Nvoxlv{m@pi#4}zoI`+?w z4Q-LX=_!Qb$OP&wdzVo#&Pp3w*hVeT3xW{lTXo7T#-KcqQmu~KsZ{CqGm|Ox>r30h zW*%o*B#Ufy<;A$o@dZ^O|JC}7%=&xJ=l?rz_VV)o&5M_f{C|+-ntN8LUy0+v%oDy6 z9c|tMkpKqa9UE`fM|IHQ7eb4{By*K&&|C^UP&Hn#E(hB!~hC5CT zcdT~*H^=}fR~;8`8Ox?~1)B4(|CXw|=6k}rJt)5?tn-kd5<&$oPx59lv4p{)ub%ZL zmxWQ8g@1jzlTcuG?HZQaoI1QytX(j&tcQlSS-c=qOkO08^=Y|u`?Uf<)egco80CNvJP|}j!@`L-}WAP*@c@#3AaU$xU%%3`C7GHDWmAoO&O}AR@D80?FU5Nt7y$SZ?0JAga z;!A3JPPP_hRW;g0r7kl(Zg{~d8smN(1o{x)a8r?)3JZlhMMonN5;1dVVsdKl2TH|C zc_SIea;5C_CFjY}!6#uOIhu2kG*yUlUFq`#M=^`4P;_AS8Rl3hV492D&{j)I75ck7 z?sQPRCdj>D=)k=rmLc_VZ4_nUS~$8;HG<}~`6m@suV$4`cxL#C*RQ0@S9N&N#;pLo z_?FMjUE|!yG*)wd)a{6%0cLrb=VY$28*Wo~?}fl@NVF)`!Wd$`KDNXqMBVmN7^KY2JCt1rQMGSv^G3WuZV7jH79esXED zx#=Doxd`SK|3`ssSzM}3$h-#DnxgWhsOom48tJ^-Rr*A=X@0S5szOGuOu$IBM86x% z%)<&8-6$!Zy$Q9cAm!{fG*im4hAlZ+O)EKT#Nt=fV8az>A4+#%dq~1zSU*Z@HX%3(Ha%pq%DQYCNoU~?1NC>FF`Y{i?1>1!-bVhqu?s&S$s}Spb?F+I5{j64(ZPJ10*;zKI?7`QsJy(Iwl`}8@ zba>&F5Y3OjOw&(3VJ7tNBADB9Uco%`obqV&%1ozL10D@W)wrt34R3aKo&vHX68d$( zKxZoFY$PVI3!N$YZ2xwRYL-R6BWrb(kz!l>$p7L5eRe)}d59uDp`xA14k#D@YeeHv zE#LqBO(reCXT-+b%%slw!ueZ!ZWbWl&or$&1?PUqEyGK%pH;J{a}ICbyn$^WUvKlt zbV-y-*5s0gB2dA+b)dNKD+7M(@857?sKHyyBR_9hxHpzt0nKVb`&tXyQk^LuRK5=6 z`ybN9yOf2EKs#xrbmvm4SQUo46p{Kk)NMCUVGa3IE(`_tH%qE!R;$jb(lRBhS8oMH zgvZ0VRn7N&#R^u~WPR4CTNV2(hvZ8LP!aii7F!6T8LrGOmU%$o4# z35WTeUFvwIZ0nn?xay_O!e*-OcorQv)b3lv2vt)xK%8d}!wa8sw=VUd6tM9M+w+Ro z=8JDfVDVV8@c6vE-FA(Yp}nY){`>Qb%d-!sZ;$4*vcO+od!DqewPq!V zy*u2$*smmW0yDwl5D9chSQS+(7L+_4F3*qpC&vf-7sv0GVd9#xQn2k08lCus)M zhd~upYdk}69&^m=o1sbC`$g$E`1e^o$jl)etAE*m?PwtTLr6|StxWW-y&&|Gk-eV<%v`Q z*s60Y{bRiotMG7Z#aUIr?-5U_LZ9ny8W!&*mLAqMkLDc*@d=FG9Yo-No?ITC?Y})a zy1Y0UEY`hdn75%F(st=ivEC9|V{hqTcX2Yf?4KX~d~|*}I6D7$bbfho-2dh1d}U-K zhDTDpW!IP;kZ2;eTlE!2iO#{%`NbUOTyWM@Lx!7nem(m8>dllNX_X9x+%+HU%b6M0 zSj8*}_E*Ggzk&qyk0m@7EQ{><$%@#XpDc%Jy$N^n{+-eSYH1uO_KD~Qbo>kDLUp=6 zv&x1J-k+Tv9Z1ctdd3vmI!GOjFWKDT@nEGE4+-}cH=1LIr1l93ai8H4`CJptljE}^ zC036At3HlSE6eSLs?fe5Q~VbV>(ch(`1I)izCT-nXOafifNwP3m;av7aSe3)@Af|& z9$!ebYhvqwzuQJL+xq3f{>A<(SR5dMf@)++T0J;9K03R&JUu?UJUto=_TL@V<$vwq z{*;8Lm~%A7%S^h#FZ<_5hmx01-tQk?o*chD-#61{1`v-)A_W$Uh-Nh8U^F zA%FIefH_59i zuc>o~!w(#@<-7J_aC9ygs=IWpyzMo0?81wF#W+F%xyJms@FcLZV;2Yg%U_R<`uiux zACCr?$7dHu=O6b^mgrV_%lFbPfAPMlq)Uf$be=jbuBj{P-Ov<=qVO`ZvL}O!{fnbh zDNg00_x{5&+*WArK1Sq##$la~*psZw9e+lSR^bD7@cf{C~|3NPxU?c`8O?lk(#1;;6&pB#q}bKYlk zSaCa>DU!t&e@-8!q{x*RFG8gOBN!vbLgqXRF&_yuL>yaBQ$>IhGl<5Qgfoo%8FW5W zoe!2DnJXI;e<(lvR8i4ELR+R4jDp;Qfw?>U1M8VpK}~WuCU%(1KICHMLA~oNXfQqtG6af76qJo1A~G?9H3d*%Yy8T zEh(J`7*#$}$byQ>pD5@g^wP5!O15Ag439kzbAB;lm``Zn&jFM#ng=yPB#0TV11ev% z!cxe+g;oKOPh2STgyNl^wUo70^`vTr3w1dW$pR6dE%R_Pz5^XxF8E9DIb9?VGzz)E zV6T^*O*!h^X*%U#tva7_VD2!Xa**ycqjIoTol@r+Fmt(Z4U;O@+FfSVJQKcEZig0K zchoWvv$sPlD9+#BB=0F2JI?7AWw6mzp_;ny0y>2DNdB!JBXs@k@4L#}f3sv0ar9Y8 zR`w5Qm=Xs&nFlr$R}EgW^*TC!*PMYXvp1yS$RfPNfL8R}^$x51URr8=IT@mA>SP{L zq~FKC3{m+fFZ1$Z3DT`fu@$d<7O?z18j+^a#d;uEj92JD(cbf;BOl8u7v9Fr1yC)V zi;fB^u;RqW9%3Bw4h`;P+nPX~YtULCVkWv?2|ed58ubru620h1>ZOK6paY zeLnpPGd&4*m?hwR!v?SL#OqGAZS79;_4p7m8tA?2T!+royLm2us#H>@6EiUDJYKcm%P^{x1oafFP(BO z&Qd@s9xHtJ3D36RJGJOT@2BEtw?LWb+U2>_{0_$l@C>VQV4v}0+N zEOOeVX4#!X3CE|8I5Ki!+_lR%*FG`r^3O|MCQ5nJx1FdH?ah-n@MA;zd6G z%bO2Kp(su6d zE7O9#UuU0Xtu%f<|MmQQE=JUKb7`2S@$uRC_-uT9Ha8ht2+6dx9!c=S@p(fUJLi(+A}$OT-B>*4FClk z{z)8qew+Pl;o7oslS*pNLEAKPC&Y<@WE9p#BQMb%9GoBbF9wM}jD=WN zx3CO`*35lLEa!QxE5Wj=m6}ZO2;I+?FOd6uAW-PPoz-ws)W&d+2 zYLNJjm)khg^^9Z6PT7w>#ExdglzYxcmUaMTcj+;nj5q1Qyp?{GBDMR(XSS`pcn)r?Xx?5T%AoGnQ`vWcVT zV9X-Zjih)lOO9CKWVpSfEe@C!Q<2&BN4B}e)}Kc5Y3FE_?%J(h2;S}qT0A+#>;V`v zyK`O6e!N%L_nIwv{8La{vzV>$J2x_*m8{lmOOFwTJ)YTJOZ>*^dQnWr^*Dv>-Ll@* zTujG@az~LY5xUCUU!MaIpkEl3aQ7}>n+&-dAkh4ApYkKUbFokh9W*D*cUnZioP>xK z6$Nv9`F{?_EgJs6Z-Fo{?k}_dbD^9VOlY9z>_3y9MUPCGTltJ6?_wf>WxhC$qQZid zq;KF5R*4^czX;yM&F)2#`7SG~0}hZAaf?|_*tBzVq{<6wwp8zcMc{HH%;H=q(Qr?lDCr&pAHkAQ@fx{K>bn>jQQBwQ-}bkKgsyI^AtVhQ{+yuK(I{nl3sg z(6F@AYHnL=LeQy3+S=Qq0M(PL{0eFQx4vb_aye;U_gQ97pY`u#97XvSx8;01vd-NF zVaZn=@0SnU&Y#ok(>_t3QJzA5W?LnfjRheJO*gB5Nh%;3912QEHPo09ZcckWDI{|8 zKY3c37?WL@l1o~KYji~AF<;#RwHS72y6NsvIyYI|zC#qA{a_tg=`h?w|D}+i{DHol ze;NOX8No0;9#9e(L`RtV5`oq!eiEnwoCvH=&5<|8+4=On>pI?N5>C;NdJUO zg~yrRPVDex)F-k|HN?JNV5huaan&)(?Hx=fW!X8b+V7+!w6s`xZ%TX)eqo zbbtU(em#lWK&_6hmo=Zguh`jQ0HCruLN z90v5gI*l!A29?(wW6Cnw6NTIQa+JBce`oL}29!HMxJ-%XZTZJ8y8qDxy{jy*?*t!* z3$-#RJV0jsS_yFEf7$!-yZ%+=X8s)ZknnfX#DFz2+}k-<3JLom?{min(~$edch_Tz zPmQ{&JXaMD#wsI@+R|#hK--B?#Z%t+@`-r_VTKwdBSGh&Os`%vq}K zU-$N@uL^&+6ga}257*3kAz_DpX*pXI)jb(W>fSI#GH=lQty9Cb%r-gHJcI@HQg^g5 zK%~PI`CT;=G#=Q;6jFUvDx zA0ixNHj!`WtIn)I+d&_ z*f-AI*QQ)r9-!@g&{hQPz1vnbCAfqY{nW5e2%rb-teoe=4`S6hq^|ze3vSR+}Z;v+NU7Z}6e`C}QRGu8igEIipdL#WQg|i7l`3QMyjt{Ko$N(%oCp~{fqtkF7-A~2Aq#8 z;#p>(?k&Q8XF{tNxYfeZZ8xDpV%pNZu(`v_<5Fe!0q%2Qt9D)^o8|Y%$6Tq+mzGvq zZ28mQ^OIwr4OpZ?V?3qcrL{q@54)p<%d+&(r`?4#^~ldBloRaxSd^3?JP1hM*Hug# ztoUxq9W0W4fRNF6TZNhZH|@m@uY?-j%Rc~Q5ES2k*99AoZa~z``oH7{;Oss=*fT)9H$hBMjp!e4L)gJJ0(D(hxTV)_ke=7BsrA79B5qdu^BXOr~5MUxjnQ04aq99S;Pruab|M_Eq(Oz(*oxKECsO9op22n)l5gGIt4!o@t~XI_A&Z-3Vm)nu>lzmXB^#_Svu* z&-h}{zi6i&|LWjicm)23xk>FP#Ct!IEPL>L-HS%_-0^gB+T&X-v~KT!J+;I=R+tQk z%DiP25qzcc3KwEk`^@m0YVKBEcJuLmesr!bq2z%BmCu9S4FpFN)XZ>VCIdxfDe#&` zDG#3fO^_i58tWn3wD6kB{A}U_Pg0-&HiYG^o_v8I&N{I6UrN)Y9oEp_4nFv%F{(uS zHoTBUFs)+o+k5D6`-PX;q@}K|PJqaTXn*!Q#wyRC7bg59PpE(RV0 zf-ys~l=}T2)-c5nsG*!c^U;YMk80Ae`U?;U)IW3>F&qRGxGl*$IKKWysCuq$Qap3Q z9m_;wB9af^f9eOE+t``WUvgArLNg`*3rzX*{P7b{Mj64_r_HO@;wMTUTKSq~2b=TU zJs5HjV?T;h8&2_|BE}8IDrJ10M?Ea*s7^k4A19u;IFW-NIAT^HruHUeNH}`GL8t=^ zm{ZOM?z+OGa2Tim)6~}X)TM>L5&Lsv<5I2+{39BL$wPL( z5Syh9P5UfJ;}X$76%QFL3TxMYATt!3eLP=dDk>>g_RODxmYRi4SLN$Kek^yiqepeL zPQ9bnq6WfFf4H%}ii;&;9aSVe3jJKE&oS+!BwCyb3Bp+KVz_4D+LMrpb-=OuYuOEx zoS)tAtQrahg}xaq-W!rhu$MVEC>(HYR5()7T9{_h@QL5~_31CN<+Bxl-rIm3cEZeo zzAF_g!d_5x8xoT+qmLwD&2RI@*)4?o)I9%}vm@cUP)jRM!nkm~#i<(nA}&de6lYh# z-h^`g%k4THd^g<#0`@nl^5L{FW^pM}w6m&uI#NPk>X3+|zZ*%lK&}-sH>|GD=#yMj z5B3iYq~4rz1K2WLHB3cJCCf0zCvQ^hdrZ|A5Z>f|ga{Yt_12U_j;m+` zNLWvB^R=7dBo(+8|DF9lXIa`=QeDmc&IDEt9J855Jg4-jN*+wOJTysK$v#c;5k_bi zIzHCOrTto_ELpFf+LL+e=X+eq_vQs8+T6(8!sGkV8E@Ia|5}mE;NZkF-S}~h@b3V} zeEDoG-!qwSu}ZY%Uhq2x2pgg@oDCt;M;1-Df&P|qw#R2eg8aLW?^IyQ1jp((DL?D^ z?eQFMP4pczDTBA|4$nt%LYCvn9^Yjs&dVL=9QO+4jd#TlG(9A?E(iI>b1`tGzdFA2 zL4<|~Y@RRT>9#wkPyCgC`ifF$w#bK{8h$#5?h-K?l}7O17l1u3oT<=2={zzKP#}Tz z(`Z0{9}Wm|}ZvY=ByBXH4k~Up7G1EnVA6qS^A1HY%hJ z28A)7qbtfm=ynT`pXbSW1MeZ`=yZM{LM3gJh5#UNmP#~w`M}t$=I3OZ>>myczcS!z zZ(Ja6_NwJ^5KT2t^6JYapyMoNm8F{OU3j?ja;F%F40d8n9X@E^#y6Z+Frg`clMaf) zcC&L*YA$*%X9v~M(IF0z2Q(&x%wVcR%SfPE(;6)iU{UI9L>99Fh1$(HIo&NN`i-5& zge9+?9MInIpc}mcRC{8A#6mJC7!WMgM?ng&z03fQg2-k+D-_((b$Ub2-qlPxBkt97 zCO!eJvBixjCprp8YzZ};M0eml)vOklL>uv?5j(jK7ka&I{^<5*Z!8k4gb>MW3eF&= zXKq%dWhhDk5jv?o8On2D$x{-`GL|A#CUZ|`>Yoc^hHoRlJ$MKWX2{z+_|Umj>V{tA zIC7oks|wv3M*_f-Y;o3t4qhV`aEM2-+3S#G=X@a-tO`UQD2iQlbk>;QBM%9CSSjLC z^tvD6;;x@spFi7gEoV&zNFk%2)yX^MJ|BPAd4sF#Dh&<4(@N1jV-4RMD`j{z-$w6( zw|#)All)$Dg*$mVsYOuoZEr>J}T$?~T?U|+1xmfq}WPRK3eV7Pwh3~?edLAih48JJpM<65*kRKlUDUDU8LUr=^xV!f-&B;Z6m`0E`kvX#r(?06NEWiy%0IlN>-=LQ zIHOvW$~s{^i7jkM=caiK)8u7r0&?)BXLX}QOJZ3<6I!z2DzYzZdms7SH#Siw{M+(W z;`ylI6~TMkx%#^KjpiR~KzmKt^)+<0o)`OSBm(BQLg@2;Go-t?OF@^sIK+onXH|m3 zV0+VSmj^0I$H`hNQ5&r{g^_(ZO2u}vGyA$s`OAGtbu-tI0B3NH*mQ9wwvWRR@y;B} zP@c|A)??fva&{$HqwM>R+{Iovy0!0P?_nqP5 z(sjt;IG66T78$=8`rAhe*3}rQIo6wg+l`=&HgIM$kr4mnqGw)nM|3yANOO+1xOmS) z{&NV@uKHWlLNIy_Mo_ z>4{8_1gaxMv)7}f@>a%#Xx~lZ=o;Zzf+cjp9Ad$YU)Dp*qT}2N`v5;YvBA9Rs4ll~ zC!aE9v6qj$ruAqe6-eV+v^YA!ak5s}pwrTJj(!Kpp-)af2)tK`$9^9R%F|QjpW=g0 zu5u?h1>X0^nPlNeNxOgWyfyE9N&9W|rnb=ImoP5=Mcq3gl=Uz?QPUON$nnnn_e^_F z5fRLK2<^;GPOhg0t>LRI)1gEGRyaSTyNnFx5dgTus)tr*ZC{O(l_}{?rV95@y?YBr z^*gxo^`K(Bk~}e=U;gBgY3(3wfImkcoD&?yA>XB<35-})WJpZB3V>}L#6EQN>%;!h z3=RFOlof#~0$WU|%NgkirteVb%X?Of_HaWnez)fx5IlO$Y1<>UQ!t?n#l2(p z8$WrV76aCY>cj)Le@>Ce+9F-#`0|FAjh-vTk$^_U0>( z6=A;3(S#*WztO8IIs8epyzS_duWHv%+#7*TZ-2Z~>5;lAZdjXY+wmXN%0)K*<-;DT z6mI(($cR&lb+;6XivR8|X4I^Rqz--yYvl@DhX`0oqdZ;Oz+pYni-(P_^#CLT_(%qk z<*csOQSpkGx9!78+MtthUxFJlWwh>gUGUI$ke^nXwNR&M^+Xam5CWDtGfRsmRGBvubuc0~A zn9U9cclWcvm80Xj?wn}A2zKJ^5GJrs9QTzxg-}3X^%R+gUNtW{ci@VJ;oYx$H(mnVa~2RZ0*b)4x#e2<{fkjq%}{I~U&(*Jg# zqgL<^ONRJb{ykCfF4mhqwp{1xGes!~R5I}+L7Fa64cAQ#2omy<7x<UP40a`Y3z5nDpby*mquREoSQH zB0>nY$rXl9xF%wGB^6HI@Ncz1jZ<+(6j#M;)}7*W@13#crXwSH}tuL3>C&=3~#~Te#@D@+2Q-FBqSt z#&&E$Lv^$_4fi!xSicZILzBJ4{2)OM_H-=3eAMM45!GV0N#eVvkso+Oetx{cz&*1( zs^k~K2Gf7BC|IF-hSR< zf0dE`1h#coeG9ttKBhJbg3EBt`sc?zOz+5$lpu{iNZ`8Y#uJGS=Cd5qP4*`1&V*0u zQ4xkKl)2V7Mhg+Av{vQ8Zt(=dtwCk#-;Co5TJP`St`gzX&l-i2`x-WN(LBj5iVBw- zr5uWBFDJr-HAd>BCt^FIiU_%Q0`~vLQB~^IiaEUW&UUc|S-vD+bZ`pC6PoaL#M%hM zR695YV5msylyb4AN1twUS_RQ#Kf!TWkhAg_?OJlq0a%BoX+c;}#{P`dl(+Az@p${p z)7;#v`EL?~b*K0R(HuSAcz@IgL@2j%AIeL?Qs29YOOS9?WUSrDjl{Q_pWMeScxTO+ zKO_R&!ha6+xsdGsXPXNN>}e=1o6r8=^+GBip;)OT?8-l}Y@d4&J7EE*V?Mxp&hLR6 zEM}E;9ng&QdlA>Cm#GpxGbpT!BTOk+yZhZ>ctKz+`!Hud!kdzK>umbskhK(Na;xiV zuu5wEhE1O;a^~VVU;2BHwAY)lwu&J2h&~pWCNm8Hc%MJ(vDx}N2mUm~#nlqq^W}3W z;Quy}SU&7WrW!EhZ-$V`AG@5XW40TnY{p1hw}mFgKuqJ-&m^sBpmgaFaFHGm*G;{k z7IIs5yH<|(PW3r0#cC;+m8DS{Uas8coe6N`Ngv{odI}5SGgwAfS;OZ>NMKa$lawd< z?p4|VOT*mQkEjVbH9DSdi2-^gy9mxq3J169Si#A_`{TLQpA7r%DR;`J>ijo~#A@Y#@eHht77sVt{=vxpXRjbn@N>Bs91zGl(A zrt_O#ySqAaCy@6|S?2H%@bC(G5&&L+G37AN%qZ$SkGCVsto`f^jqCxBjB65bf)pKUl5(m*zfCw9smmo`d>%{;jNoded!609SaFCjuYi>{r&Tb zZ#n!WJ-vz+BO^0hG)qawoivM7o47C+0SFZS5-GL)8I>W;uog&{f7z;10x){W$w$BH z`B6lggLptm_2hLN^)@bKCMqH%z|QyWWJO~70U&!K|~9If0{5> zM#I6{M|*L;;-z=3+ZsuZxJ)@G@*QbuA1L!Mw z{@+Mmv;cy> z(KI-9nfor=voN1@R5a-?WM})}QW1gGo=_p3vgu{BqK2jZj0v&P@+Q|=|k&EB1eROz0fAq zn!rn1rxDFL09IpM%gH25N_pxfcx_TT$42_de)$O>g6D|)+yu7lWY#61DP>&NHFL$d z;~Tn4v}KewGJ846oStsM;(o@W_u_n{iB4}Ok>V3$53SWDwVqXr<`jX4S>GH?1fD z#Y)lxOzqsL^`HfsrM6Zpo&phgQ~u{H%L9LIo(*o}%8^Ecbxz7f5`2LTjMvu@UW0W= z&BcOcfsJ6}t=7Y2hv(ly8dg~)>Zx~9V#<3$jd}3K>4U7=5~s8NScTzCZt#@VyZg4u zg9htVu!~LS>k&p9Q3>%t2w)xi2MVjo20|R8&f4PESuF_(>)S^s<1R_`%h@f_=#N?47153jv#G7w z&Bj&TXZ1Gb8~K`!$&FLW>+v2ENj~YTk@IQ#s~sq1=OK28mrSoDifr1*cShLm<`U5$ zw!~m4rWXrC1u(>0K*dk}qG7z@umTFRDhc(OK|^H^h<42%4?UVsnWaO z)lCKk*LcJ~JhYx3xu9Ic1`E}FY^4o)sR3cx{nkNzg zAaT@dS2rj8NV$iN4kZKgvkOUsnPNvSk|>%MR$N8Jv1b=cCOwTti40DM@gw_ASUki| z#W8|>4nJ>Jja?)!m}ih5GKa}?o~iRU9*NhN*Ug>2f+V!*L$Vyng^H;t;St24$d_gM zRiStZ0hs@!XUE7%|KhxrXkxe!%_&8VAK0VZ1JWvDVAauG>C19VB)W5|?_xG223 zpEYRQ)T=esi|@|GE~L@poMkjftjr)931V457yh`Yul;D9@%lx<+RZA%$wlZuB1TJ# zUr2MGB<7qRv7ky9nkB(aJX}A@yaF8Y$5d6#=XS|26$cB1j|p*O49Sm}#pah;!3I2LheN4RJh%l_IMGdmYE@Sd3fBDqe?rNTu_rAg|(A)C}8K706o2 zUDCRJMNdqW&|}7M%1X&Vjof$nJfv-4L6O8`>Fn$z(9#?k>lDgLi3i;=i^)9o9n2f8 zUns^RB|;T}77zX#4Y{3wJP~^tE5e5wYP4Y(7?}sBq0XzPtpqrz1#W}nTz|vH@f8TA zNhU+5q_NFvQ7aM|qI87y7esc%adec#k?r3)dU%!&z8iG87u~CuyfE{ckPbBTFe4bE zOuQ9%HNAe_I-`pm0l=GV?gcABJPV##H*dO+jz%;q-~;k_>Ie7t0%!pOZUQQIDo#i7?h#l@M-h^ewe&8oHLl;DMs7rYugbXVA{&8@B7-n(Pn%l#T^Y5lWB)?nH*}BT zN<5N!W*k;^thve2O=mefa}4PsHqL6%?y=EFO1iSIy@Mvn4$%xmEe55aq#;PM64yKb zP6NzM$o<GE;iP)o{5tmP0YH4*%nG_@^i<0vErb|L^-ja_%0YEwOl38+mcvi0a(KQLjr?a_veQpm~{i2;FC>nEN5xQB%+zFvVK*m_g`S+{sV zlaT1<`Yn5>^ZNF|-h{aOk~Bm(*vVg7%=Pq7HS325qNI|~`B<6za2cRZLFZ=E>}l8P zYu7TT(+R!^_GnUMw>B8k5XP3eot7=K_cPkwm9pxdE1^(;2-!2{Wg}pD>``YzVy-+z zUIv9hMxR`!i&}b}lhJ`Eiq+&xW^!WfB;cmd5351F)*|hsJ8Ck znjo^bzsgHy0xgNDK#2#GA5*qQdKri(<97uX_<2j@&LVKfO(>7 zdyKb01sGB!9IHkO)J>b&I6Zfd{y2RoiMUR=Tz)Gx*`oO=Wu+!Y7#32ezkW6&zPkf= z)JWf?hjHfB`PEnC`eqkh*(ao)EuS8k6D8Ni`k*MQ*d7)0@#nh~eB@0g_ueof#SEv3 zh{uKFJYAPxyd9O(nlfJ8DXmm_AI^)tPr@{6HqF?Kxh!VeL<05gHE}t<{lsZ;AOo~0 z6m4QifOioIcJHz;Rl>8mnYUxil9Itzp6XgH?W3u18RY~;^be0S?&>3{ut_{6|r(M(#ZxLu?Ga(Ovfbf#!lQ0`b&-sso2isg=~=gG^4 z_PJR1eLpK{-Di1U0_)HmW%Eq=izduQBa)Ae7-^{n@k_*nyaussrih|{hr4kntGJx3 zG3S2@($A4*1WT)h2)g$t(urWGQXH)BT)AKT9>qxc&nm}|4i;HC?e|EEAX=SnWx)_g~ZcVtT99{+jmx{B0;Ds5Za^6!wu6~r4U zhEddzNKJhhBWkN+)dHGGE<7^;(mRW=X^!9Lf_OXxR-;@h*n<=;3N?>PY|P_UfY@YoH+4}yNSxFh4e8F7 z*$8&W;T)te6Mgce06J@)9u3nAU{{Rza4Rn^21&a{bgVmM`znT9D%MW$RoZlS~W#D zEd2&YB;^RH*wQRpuV%c@zrrG#{1bzLHo{T-)1Qbyi46~#3m!t5gQPRrq1A zrR_Rs{A=+Mm(NU}dmf3WfBh*9Le(b5o;x94l%>y+;bYB)gNu9I?eY?=$}xRR2u8w$ z7*yKo$A?ph1>h7O+H)Z3QB&E?*)tZ zNxL*UN!h7vh7;-?Gp^1YOAeLt)H+V0qCv7-#EFO~2*i@#zaM%UAKe2vqfA+Z1oT%9 zwX_a~Xo*v3kA1oX`(WJb>pl|m6Cf-E1sx{eUqC+!3(^?`J1hT@_68?%$ph4x6}hbl zOLTuWo8vw^DNZU@Q_|8p$P(Q}MI*n`l3@}pk^;#%jSb=x10`nK8LSEZ#QjrEYA6Q> z&b?vzL(ZU5YEc;-;W!W~Y}F=!niFA#oG4s~ot-#+&bOJYM`OHbj$TfcQC9xf5L)X0W^tu;|- zDfF0>BJ`3NAFjC<1FsG#E+-{E>=lw!AKxsf(Gq*Ez~4n7&4@i(jNVwU)t;woYoG#R zo2*lTF09HH@4-Rnc|5Y3s!G1mDI*Ph(L9}n)zr_>6YggxufIJP==6y!4_m()Rxm7h zYQbWI%&vhLs<`A93(|8q!EFXJ)0QHHwb__SJ)Zo@{o=?LnOuhY*Zt?ghwBuH9iCGm zC#QgM&$)|*1_TrV$+Vie5$Kr=*|?#Juls3r9zF&#f8?vim-I%WPz@pwrG21gH@kS+ zHMONn>fz4n!1I%2ufk8nxtikdI zY&47kyNMEebuC-UXrRHOha8e1*R!SY^z~XXwbB1WJ+L3lnq#ErM+QvwxW0x+kDza@ zfTHc#`!7zs-~fb`@@PKkX7GiEi$B4b17N4pV+}8EGQHrm!|WuR)51Qi129f#?Q-*= zm=pAtd{#|cownYJ7-Z0O#sZf$RUFa|e|h#OZ?8)|mq8hZWU161Ii-qhFtt$niGCH^ zt3gi(N#F}Y`NATa<^Gk>uRFbuF0B?zsZcv-`WL!O3K`3++oAKXerdhMV~DKg9*Cn9 zpZ9vJG{-ec)Q;P2CpXsFN^>6CJG~TRFi?WfENEa5r3-|er8leco#_zUa|3}#uRg9} z4NTV*o8#hZ;Dn&6vQH7+VI^1O+kxxCM;J4rOeZm%hJRpXgnB%GFVXM#W4730l^&f! zRCrKJ$pB-{x~?egQ^JW|7v$2MtSEgk`AD7JZYBT<3t~$ENUpLDFvYtipVm0jP7*iW zMe()Tbp(w@#38gABNEMJ!m%e2(?SdN$|c{APAZu|VQAYARw?zA)3tx}VEM8+X{$=4 z+e>O8zmrkRSQ&?l%TU`56k54{m6G9k|j%aVu(sy0C%+J_H@#dxf-p-b<8 zPQ`LS)2d|LvjTBbB*|V_O<9$8$rA;);5~qKq{?Ic)SC3z+BO=kBvv}CeaDkRVa^}v$~uq9$76gbaVaTxj78zKz*RAu&6 zap(N&)3d@R_JOi}RACr{aRTv@pcXtB`fGRn#Z48Tcb?1Oqwqc+eLhd)JF^VGEf-`q zEjreY>?Uy{?>NjXa4Z9q7iH!gAAEB@5|WC>7=(8obTS34hy`Zy=gP5Hl<)Sy3%8+5 z7_4>!ky-mC>b{uFn09vNLBPRVvsQ84&_!tu}q(BCQ)| zMdPaGX4K8s>rAr|E*rqWU>C#<*6J&v+9JV5$|aLnztRFh@Rv@&*s zM^{&t{A*)HU-`gaCT+!efzW4ZUS_AB`+zX~?zmMZ)!hpn`zTRWWSm?V__ZukqDIgJ z0ilPXR2IqOTuh3(2UAnbW^CERuSATdTrLp;)PckFLB|;G>e;@&xqalUDIC7No90!pU zI_vwK@-IOcN;Zf_jVnDL%`groDltbTyZaxu&io|1jlWwUX%pdD@i-^kihZ$fE%U9~ zUsnj38!+^6HYQA{_DtgZOL8}{AqP%2AVc3_e&x*aQ>vbKAIk5S(_2(*o@oO48%}F$ zU;1pKAe=<0zW1gzfnlM7PuuVP0e=qKfg&#|@q<|Q@o&hlR8d;ASJ1B_Gu)_jbHrS< zT^C(wd?Y-k^mv15#&EZJ%9r)9kBZLNKkz@HxMhRGq01r=O<)|ar4F1ZBQv^F7@1J_ zE%`d!GyQAVLeF-Q)?c*%)NB8!c=YbjiF)sxV#7~m}wRlq;51;B) z@PS$xG6-bQgDW#;eGdbP*=FD_B!)s#ffo-)Ju{;n6?YnGi7l0-{YZ~cmdr~RsGrRG zhTxUkmZao)U942Z0Da6vF#fc%1b8rQ_qjH00 zCc-f7w|X)J_K>cgphtX5cMd)bkyB4&RBuJa@ozM-d7qY;gv6lq_|-Vg&U~f$N9w=cTcAQT2wawf3b6<^(XEL zHOl0eIEz$Ad{m!uvj?zaDzQ|&*~`DN8L0Kr)+?Kpk1WNf>UCDViMKq~LAU6u%ip@C zL(=)-y~>7I#bJo5s)!A6a*|PGVEf*f(uETQ)9;ncIQcMzDszg51pUKus6f;N`6EF0 z7p6IGSiT*Ot8dbIFL8Y|Gv7aw-2ky^O>Ej}a@f9hW{BnZ(obvspQvrLdIRonAi)XK zRaNZSw68N5_hV|7tPJ;$GKG#Zk(}9!BQwRS8h<57@?Z7)gf?%ItgGA114b=NKqaTI z#shL{Z6~fAbGRD zLuK&_9_IW)oXT?8TZ%Rtw)!7B3t^^E;jSUQ+#Mr-^<5%GfBL9h+-mvZoTAA$Nl$D3 zaI!oAWmq&Y&zhVA2T>>Hu3@KYDqO;db5LR?gsbjP;u?M?_Cxr$SmuU#o`W?On;||L z>k&C9X)2Kyq~MHV$i0Y1(5_x`Co56j!iKeaBm*;a-ZOJSErp`Fr_kWVkB4WI_mMT# z2)fG@S-e}-9()kUmzn?kcy=fj?4>P%vh|Bx84#xzjtni8>Ca&dx`tu)d#8XIA1M*# zPcsroy4au3_)d9bMnq8MqF6h!J*s2*os89eVi@7-{aht$Z9bSNNJ?;7T>e+u;-uuG z%i2R}{mx|oJ5k2AX!Q~W;FkFr$u%?nJKB*6d0`gtlk?g3$$jn1*6!%{)r*|KD~5Q* z)n85{N20$%tFG005$u~hXYJMJ^+5GxLMo`E= zX@4LPgF?{2)wM7QW=}MB?`+w4!-Wk5E!T+Y1~x_5*M5fx`_tJQgT^%04w!l#R>LIw_1M zyHQSP0cBo+eZ{TifQE?m6xMc|Wsl|U?^~}nE!B34Njp+5G##;Bh*Kl4IT0#RB~SKv zTb7|er0(-Rn;$DAcOzX__DP)52=!L5@=7$mc;LSTuVpqg%CtWPe zU8rRAWM?T0YLdmfvBs7Law{<&CLg35aZ#!Zk$O4IW7R%;YAif=Pa}*W*RWlr&S)Yl zAYE#cDpYDtwQp8xQpE#!IhK<1F68W=lL0dgi$I56wOpbePyY!xMv8ohkjJp1Vt@@( zczLXuGE(&ABLI65yjlQL!duiz^pdJVbb@EYp;I8n;HE;3$LZ1>=wy2U!(*GL8Wi${ zEV`><7Q1NdF&k5yHt6Sst>*@3&*!eKz~-p~qwBR<3`BRn{XBmUnait_=g+{;ur>SQ z@w#~5GyWzt9X%C=Ov(>kMNJ{=`>gVR?3BNsO}*J6MavsZ$a{0H^KU&(ce-Qk8An(^ zaCb{h_ngaUN4}~Bs5g~lt|YF?LKn!*EBy@8f^~94R4c+U$*!~1cQZ7GGaVoB2oi{V z<&s*XvGhov6SA5VqA{It`jfxai$vQrb2rV$<8Uu20;O^)rh>6qSz>>_q49^Sk2cOc zt2l46hM{K@*_I|JswFN2tgOl;RyqLu7g^DVh?5k^7R(*d&rB7GsFGIe?t~M7Ol}=2 zzC^=pcuGFMbpUOiF}2W6!4{Q~!M}=CoNk;@LQd&j83tUro<^nHlFXLHDwzeOS26BW zH6F|P!EvvJ{xIW-3t&n)Fu`W&*UH^Ozj?W)z!YJmX3SSTJNnrza!EvCpz((uJE@}uu33xeJqrYZ77S~h z(YaBn?6a?*jI44tc)+=lP4|>J8Sgy~yv=!=?vkG&;g8sJt3U^>v`ba(Uo$Y;;OH*! z_xNR4&6NL6ob)tHH-@cWxNWZ7Ng3eql|C)S{c6#X7kqH&&k(B9|8Oy@GP6CT8i>nj zTx$@yz>2HLMbereKIq^gxQw*2V>O0ZrC(3^e9qN%^{ughF8U~2yB~X&=0m!0o3s8o zWFmOdB!Oqlw=_EHDG~dv)r0j)dn-vR%A}u);*8Z`h*_UNTU}=$ZnZ;Yz9TW4^kFh) z#rg=@{%Y)Kzxk_sdN2jO;TL3%?2YMlg7NFx;+JE{^mq{%S(*z)E{@d8OgOHTPRR^x zk*YxGMr=At8Rk?|<6S{GEMq0~Q7XYO%wx456Z|8hLX4*HV`Ck1Y<@v>#MzZ4Ur=<^ zrJxhnQ9AjlDIQbdbk)po9^}-{K&Y;z9SfdiYtE5B%uz%c4MTshI;-p9*VET~7nqll zLMfpjp$l;Fz1ciPL4BCUox+@*vECNe_AUu6qaLiVVC#EF+;#8p5IktcGNTub>`*E( z{xcTLr%D5&UEf` zYwn~FxseoKtr8@9qja0;cJ;-1ENRSSe3^{2TXxF+Nz$T}SuiQWf3XivHSsR*I-^p^ zdu6I;&kr-TwqHlGqX!>AD;3C_vgjglO1miJ$EoP8uCY~31{}KZ7RM%uS0N>fiji)- zzYy$(V1UxVop`>RtWxpUgpKgO2XFQrW>@xcR#S;8i(~G)A~LZ8vddH0r}Yaa>*iiw zggLI(xlgTiO_6`s+AeGW0u*i3%0958+Tic5a5AIR=$Cec}3O`}&f5O6R|pn~Tk*ojbZue+!hb4IR$1B0xrZ4H^wr#L680 zWhBz@M@L2iqw_i`xwN<>f}hH1FgnQ5P$j4-!pO~b~gOsHK;Q?lq z?PFCx&3D}4hUV8?_@FO$<&o;K2D27Se8-S!9$@iHr^ENKgU-_TB$O{JOtrdDkJhyA zPC;l$Y}qMBeL~wjlSE4PcwN$51LNlkWk1hh49E^6!499K?kq{*OlV}PzXqarSW(I0 zTp~XU4`>1(qk|Q~Pv!h|8PenxgUE3)&_5H?8E>N%XU*ZcBb9o%y zdQ#85f#(36xttw&j#+-~Fd{la_<`aRQbRsb;mF6o-|>`@%+;1G2y8N9I16Xu`@#8I zHs;uf@1=bBauD#85Gkp;&tJR>#!buu5yUBTTO=$c#hb`0_To!KtJWwQ#Ur-T%y&nd zNb7pI$83~X^Mk>yTDpm3UJ)L^rVEphZq7Un#1JN1=JPO^o51^V$|djOkp0j)W6oNP zVf%g*YGKdceYgR^J?p(E+qPTbrH9a}d-pukz~7+@bFPla5Iy7NmNON(%$mTd&0HaKI6D+9op1yLR=uEssLeWa$`7Z;~F^N}lS zjJI$x98lSRjc9mT zf1O5#^@9`xSCS8t4g-)Iio9nUWDQF~qlwTqX^U^*SxiAYl5&mtkU|xEmUv}SI6>rG zd;1*D3kB_3#(-C9!q1a`+IU_5{L;c>q_pDXRU5`>P#VmGJFjlQ-}skUxc$Jkb=>C% z^`if{p|qyR)P}@mFy63ZEch2{xS&n1JCD&xwWvrz)etqc?|-35?}}WL8`MD5z%hjz@eh zc$J~;!fa!*^6C7y^ZVu76HJH4gKHiy-FX~)D`N@@$cth|$ydQ?lT&c#oY1O6!Vx## z9%4BeHXiQf2Jvw>*fB>@`>7Z1j&s)rjsc*s_;SdLLJZ-!N)w?Pi0K)}$yf2O+xzHx{ET#}QK3jNP%#m)<|U ze{Ri+-Z78T*sflBownC8*2FFJ-Wdf#OK4YpeRo!k7mCKa{kKQjV(lCC=h?~r!O=IT zM<0&Qj^Drg=BJax{qv*4D!V?nd~F#|84)|1bsLJ%Q#cy`oyX{u{Wvl%Zb@sY@-*ulo^&Zw%u;G(NE_G-`L1C-#E0# zEX6mSj`vcXlZ<3o8sSW}SWb`j5C4S_veQt%oSpBVo~yt2e>iH?&^v@sXGep7YB&^x zoRG&ao(sD-=gw7Q#DNe?bs7~`@1 z+*ySzkxK3~g0161``8-wKi)=P@I)z0?%evqZkcZMukF)T_QYt_+D^=zd(6O@QH zh{~qBs%o`k7Hq-!OV_s#CJ$_4d`fc7Q|lL-D;p1$43}zIdoHr~Y&f-)9eSzRp%YF9 z^s}``P|}YU_G~v)Nxe)mpM~0GgMs%Hd_ESEf}PGp35;5jv;hZX1}gRzK^f zAH^Akj49FC1{O0xgOqp(6QEL{As8WSDsr^7oiQSlj$X${qW&Oq)j?(Tx(q52>YDi3&ORUBs0-?Y#zbc08J>l z1e8UHLX;7hQq<<&Aq&?;^bkqVBkB5#h4=Ld})w$7F2Q<*(?ws@zW*L3P^&7m2 zFg3yg2^#rCE07ej0ed}$8x(F7?M-(aq1jI$ns@HJ*nQb4tFf(tv2&z25iH@pLgtcQ zJ{CKZP7k!cNkpS%w2&aT2d+v~3P z%tOaAQ~s&hLnQSI#{$>=2zYm(8vSJ8{MqswEszG`k0D_~fBY?7k7t!KnqH45PtwSX zS}bu^q|*V`pWr|tg8QNU@$M&qv{-t1 zdFfirGd|n_1@cZrF2zpg<#$haGKp}3%3IpZaBd6p>^8=d)6a_xk#DeNO*;Wwjb2XV z*KOPAF-@2X(C7)tI35!Hbg2UZCYn^Hu`X4!MCdyLUVWpXy?~rJ4@zVfY)q_O0T_$r zms+v(X8p^`jGsve9u)=qK8Kx4RUwVDq_4drO&A4$*K*MPDY{ftNR4TALU5I+Nc*|vUMp>%^C%%|#Xqy>ZIF;Wpt%}Kqk;!)mF*tN@W5q2R z^JaCiI5phKzKXvP92EpjJisR*!be)d3XS8|t zZt#Keb~L2s!7KB!Ngu6Q7`PfTVx<*_;NU0=)o1;yr3o9EbFkLtO~$ikChgVcar*gV zCso&ZBRLK?v{vEx-4Cq~$NR059}a(dd$RxL&6WeRed)|Sa^}n^Al~ZSRHGZt>?Y zt#^R^q+k^0*2zT~3fYkQx|@gv#QRMfbz(6xJyb+!)qtla+PN@ECA0LNT?=?(6xM-r zTm76maHbJ>@{UwJhb-v;Z64&^H%{!uM{$t{P#rWJOsIKFvw8_S9+QA#Ny4dOi{GBS zKRw@nciu&5FgiFeB{P7uUq`haITDs?o5omjcA~U;sdF28FGqx5QhU+>6^6u!WN>|J zTUtd1s$OZTtn?u)!Z?;wCH{ad0+Aj%GbWLhE%x8MdH?gLqqisL|H|G6r&KYbPXRv4SG^hOpn)urKi$@zKq_K@x@#AqkC0 z7^_t=nm<@{)+cZ$+FI{T7%*>!T|f_@meZU)fDW6kq$)FRW{{jc+-E=PI8NDwXZMw> z=yd1)4n4Z7JG;w#O{dS?hm0WZrXop74D5+ZiFL2-{nPtr5A`{Ylu*l1uLHm2E-2?g zNx$C-Nn$N5Iq&Z_WG+|$Z1&EMPCpzU9DRDX|MsY-C4@B6{buj|o5PHbZP^3tsPQtE zSiirNB%z$Gf@H=LQfqDOIOgB)-k%?xdGfQ|E(2<#C|f(q{vk9O5+2UmARb6R&g{VgnM1g_Lk!Fte2S`EoK4Qw8DzB9x%~tVyIWtM1qAz z`0B#ghHy1Y$(1Q-uOSAz^H>DXF5YQZz*A7Oz7 z{kI~CW}g(qX$Tf$aig{Zb^lhqx@CSC*a~oZ zbmCZr%*XD#=(dTSnJrzm6)uasnKLTYjAKd&wlamUC1lI$kH{Ej{*FMg z(mWcj9shuGAzji5MAPBPVJW>iOPMPAUu~d(vp9n!x5oeF)-xw@@tTPs9Q|~5bXu+f zo-K&8kYp8Xun4pKk6$03zuSL%46c+Z20zYqGvsQO;enge2@T1RK=`_97}fI40;i@G zyEH76(^g^HU;guoqmS{eXU~4>HLmTSZ#qW1-EKdB`V{`#Znum7ZFlyb|E2S^{p|T} zdw2I~`!DUz^QXHn{({=8nd0n{C?5JR?Hi9(oZJH`r5*1!5VBUbBgQVesQF7X=A>nK zj%{@@wG99AOS4(1-nt}oIFen|Y;~Idi3jR|mHhcP%8!;4ac%`;%sv0l+J*D~?D^jF z_4&VxvVq^LchZct9mQN!$qm;L%1oyP$&%YRr zwZnSLL`@1-K?>%b|MuR~!ufyk;>G&@zmt;2b5Qrb3Fgp6+6Mk>!?rHBU!3!=b5Wcg z?H|59^2WjH#+ZBm@9q`O|I>D7eg5yH9I$wbAfKIf|0=v-<0#l+ydoi&O^PUWA`%mW ze2nAuRsWz$>HM3NORFRU^UnW^rzQTs^I~s({_mnJnEmUfDZl(YnW;|veX)Anxu{O@);FWT$#e;4In)d$p=dF4}0F`i|b(lo#(C&QfBY-j-rvXqtj zX`|0r8l%OgEMDSNT=O_k$8@iSA(4S~_S|y9ym?=H2fl7`<$rC0t~J6tS(K0)k1^-` zciPWh6!rg|r)&M+ofMqc{QFpvA>-37I*tY$r$J~M`8Yof9LMQDJKi&Ix1paaO?1kA z^oI61=2JIx(13C6WugQ6L)~E zAeT)JYOI#UACWG4vh(FjqoJxbP6?!< zz(}xxw)VEMd3AJiogcdK#~;>56E!t5c@73a-V{&u&_tU7^(AUvkZBV&zkmO}iJJP_ zX`;=L3W=Jp_fMPZ|NpzWwS`(=zBB-wKmKUhcGLcb?WlHym@oJ4{B+1lZB8uml0ypa&z zzGfpA+DFyF?e3!X#YJ}tMhgL?Dy zoag|N-;t*VwPTu@!`H>AhUauhLP7GqYJ6FySKT7lt6A?EYY!yQiEF-72xY$bet_po zjvo4K9J7c-GTjSb=VEB0M+>jL)2*G#qqJkxeU+u@X(BKCaD9TAt%W*j_BcRDF?$BH zGXe+jjru0Ku;iP?6@rGsb1DLyunt@33Pn_>uIse(hsU5<#3b6(rcBwiw~AF!%xNSC zs96sAmNx35zlx^2cBSDQs*AEbNI9aS4!Z%~J2jCt-=$$5OH@Fzn1yUO{ZY}PJX|9t zvb@2I6ZzGlYL4Wu4plQczYMA_eE137L0KEy@2cBLDd~#t;wYniAj~`R{pWw_TL~p6xze%YS!K zt|9-)5kV63A(6QRhQ@)h?yTjINRbosevr|8IzZkBt#vfXU){q|{OI=KR-93*ngWtf{Z7GAFy$ZIYG_8b-d2gR=ZigLF-Y#+e$lxTM#wVcu!(y(&-b4JI(y67V4XL zSIw0zlpCXQv6ae4b-cT!GE@H=i)0daF1SFpcFp2gv^Ujed~$k7Yb{X4-oal7VXFuJ z?#2UWd2zjqm%yGagbP*8@`$lswd<_fO^(y)>-~c)rr(06iubX<1ig82*Sr4pH-uFJGD{%ZB9HxJ?Qy2qK-14fdg&49VxW5O~uGm#C!7K|KuU%NNuqK28MD zJww;_II!k$*;$$9ADfep?bdg{Zaw+YG!k4Y0X zA+G>5(N$aRb~C%aOAvN$3&PG45Oz`sOQ4u@YhpEcS!B2pB<{3QJ!-{{l$T&Dukly> z#;LU%N&~-uM~Kkc_u^=%h0Hb6Lbj!c-Y5Xrz^ScR0LLYR13$B^E;b!fN24B<=n`C6 z-B+mjOJqasoS~!B)Ay%ch>-^8(R%vi5}CO7+ zY1S-hGqC$1rem=Zu)j|@xc|86LyOVjoS?`z%LKi%kxjm((XR!mom=U?nEEza<29!E z*Fq!n6qT!1M#wA3KeO8Rh;_N!vIzeNK0CL^|2=(L^#9mx?>$@lf8I%1g8y?AFFIDR zcIHCnCAh?X7_@=^G|?u~+y?yflrh;%RkoJ@kt3pOqo#hnu`EU1ZJZw=<K8{`cJ0f|Dp9{3HoO-AY)M(AErejkD?nq)i#)TDO?@05Us$WqLkhShoNgAwtsS*CJAv>zvVm1pqm*br6wjCztM!6ujXIo+X>?` z`)2-C)K8u`+DNC*R1xXH?TXj{;mAoEZE^vazTMVpoV4}MaU?x-V$(sQO~z4_jQfPA z$qP&~$UJAG+(?ci5!&>9Sx${99*0iw_Eg=8jXo4H4tX*nNrt4P>O52n=ju7nO%f6H z**KvXlZj&xyX5d@4lMzLSAJFl-W`{vJ2yAll-3Ryvk-|t6Zzzz(Wt< z?7Y4PTvW)utBuTkhn+3TLFQXGbvTHB_)qP_>_m9$U$2-!fHEHb9o z9^?WR#{I~3C(_xlCVsxgytU2wBi(d)mtCqqwP^GoQ5K>98cnWE{^!bn?XvvWS;zmr zo3aG`Kl&WoEJu+MkkW*V^#X%SV_GFw7-$RB#A@B#OnvAINuESLdcFsL((zd`7|_qC z*(!5P8ps2ks7Qwl127fL)}j&%ZN}Q4I=Li)kj|TcxlqcF9<9HMW_}|2Z!3sgL2g~_ z6V&{+iJG69*Pj$l7jBS*;S~Lz;E)a|2@sBBn5@_Mndsi3zEoo<$VF=23K_win;e!1 zxNw~nH>6`~giuHcv1yj-@ZFiJ3zBe5{4K9>Jg~MPCO@7v;C0rXW&$p(JDBJy;0?61 z*W4y*!I1D7`WlNjnuZ%Ku2ra> z8T;0%SHyfB)HL*0ku^=eny5LRrhm>-@D{pip`+XnJE`sI`&fINXdS77#^#lDRKV7X z0DgBOB%&dmkjSzXiGVEf$e60a&F46yxBNtWhe~1)M2k4UM z^rC`H2*+V@O$FAuN>d-@+tz32akO;vm$ZLH&Lpq3PMMU71m zqa%!55U^uvu1U+?kd_NFt#%1`=g6F@QkqO$HJyLJVK-AORULF+=@@UhgIjTK@=<(B zCnw(`Z`M%mQH}T($FVgObSy6vEUyra0`hrQt4Ar&^~Mu(kDKjc{%K2{I2cEqNKVN_ zCwQg1*K>qNed!2tMRv{uF&^Iu(93yUi`s z3`sPUqbBOKVGo(wLwKb@O~6+(Oz!WQ56I^5moOH!awz*)@8sjuzZ+dbx`liidVwIf zbl}Z83x%F54ug(h=`Iv%fltlfbZ39h_f{lJ*3#eFl~s_XZA83bSFvH@_b^@IriXr3 z@_tPH3zPgI%?4w$h3oSf=*~2#dQVUb-WW4_sbJP$%uI&{Hv`0R6tHo+aJn14ov4Lg zGZqpY<-7WMM0C;?hHwxdF&+1r*3U1{b&3vEj80)cwEhD~Gx*O4OoJ?jy=HE#E<_}K zqd%MHql8)uJ1Ny4wUihQ%+3N@RSU_7$$6n@U8UyR0GP{zxXTtI|Ef`G)q6)-tEnSPCfTPv5yiCipYL)lqLxqc?cKxgd z#NmckyXntY)&m>RhvKg{V!qKLp>-%9m!l<*grT_UZ852%@)Y(Ft zNgS7JT^WzfPq{#SE^b48;Zs_oe02@TkbFMXPXha4_=ZZ5gPXtn^0TuVsQJH}=t^A= zLUQzM(atj-54b$D5?PJhkrSh2FbGNI;j0dkR+_k4sCUV@1m27;tIdXT%xUbRY@Mk* zIH$sej#13XgtA09x41cxmO}-0S}ek!>YDSo(yzu6u9!uzvu)kg<+KhUa=*$#`hUqd z9+KO#|L%02m+imT`v1Er%lm)2K1ydAGtfbZMWw%yMIB#N$efH)_k5pJ>*AaWi#mfA zhRQ@8^8sK4rH|9Om-|@Zxmnca7^k38GdBuze#BR^8_iUa0tGF%vNo&acTfZ8s%#b1 zO7>=T>u96rUz)!(T|X=Lwx8ElvlrEn)y`&3;_qKsg#Ks#UDvw-=FtE4^LEkyzticg z^FQ86S&IHg0pS8+qZ96Rz;6?n{1jkO3wNh9*0}it?!Xv;Uec>Yr$^K{_|(gLC?&u(57X7T#zo*4BX0M zyK(#GUkx*icg~KY$p_4B8V2$?W?Z5_{>VD`^5xZ|&5NW@d>O*xSam=v&B(EE9uDJ$ zWh7|SV(2%)B1IfuHU9ujt*2^eC#o-BzBJJl>SIBkKSixpKztUEtqKLo>x6~@BGCj* zFxQ5f`jHuHOVGLdS6BDF4%H zW;fH3O0V`#Kdo|@vu3Q#m^qnHa;Xh7B1yS<6lDYS_^;xz(IFxlA)9YTKgHLELCXRG zCIr1goA#w81166l&WBgFS(U0RRhCZF{$;Omx(W1%X6Q}zyR2P9HG`^`S;V-hX|$Da zgy7LXL=lTxruHHzSO08Rc)h%M%&l77*YTe%lK2OSCqBVNrzU7dE_96EGA_|J9ux@8gm{}S_vM#F21 z0CV-f?UMfY#qK))_nnj_`2U|Z8X(+fi8KM9ISWIG42y@e*!~oQO#O2_oDu%-lrcGr z&R6#4>P&GIpv_b>(X>W~P2>dh+cGhQiqZS7^b76xGzw6&#eexF`1aA27~$P#&$~?> zZs_Oz(|5=3e(0jpZ1yN1lK7GYXj8G|PT;^VU%KiSRp-l>t!-qOjVO(Ms{?xIhwN~Q zI8oCiQJ}rB@PyHzyxJ!3Kn%$bAObCkCX};Cn@xjpW_<)&vo?ea8-z9i-Hyaj&@!X6 z)F>^dX2a24tS^s0Nm+pYJGLe}pL{F?jslLCxD4j$e_lL$R-pfTd(YSLU+<(WLH~_~ z4nYSN2M{lYde=^*im;YK{4Zj|lwnueVV!cw27XG7tgI1lURGGlFe7hWZt7`cjBK(t z#3CogBE#CirckGf579Ev>T#|0SCwU|ml~#KBUz^zEV8zYt7Y}jp_cc$dcL)H%nwca;wPoXH4@J>PXiu^bqua5`>>{GN7Lq>gIw>J>96#leOe?ZTvE+ zD6?NKjF}HY2y6wY6N)zf5PizdS4Z^8I|7sp>O@g1wTv-hX*RW%h!wcmoCjE@;3|Ks zHY==6VOxQP<0OV%%oj&PePg>yPg_-1*$L??40Jz%RqD!tQIVAvp)6FDZ0>Db#}qfU{;q4ceJXF zHzzln%5r;eiC6WeFTNSJp9OZo)dAM;h@IGswa+ON6>+Pvu&z>N-*nxr_ln-{rPkb~ z^p-(LSpgGM?cSe0cM@~7aUZ#v;_5nR@K2 zsJ{RbX02{vnW|u#y<-0( z>;9;Kvbol4fi%!J)B|M$-I6M(ytK=yf=v6BsDko+)u@7ID{%5%)F^P~s*?(ns#ho7 zH&xIfmbi~av3+2EzAIJI8L_tgWhIjSHn*q!M2?O!TygqI@uEfn1wS9vquDa56c>s) zV(RjGFRguWN4S>?F+<1x0~BJqfqRB-GHTk-d^MaxoWhg~u-v{ju5ex5D{Y)0asg#r zMs?i?eauH*mQNx6>x??mIk+5dU7a{Zr! zUiU@?n88%90?g{%Obh6Ybvs(X>IGg(5$JSrLpP9$o+>qgsc@UtcV*%Ey(-SZ{wgvJ z-JCHTqlpjZIy{z%jOzc}|2X5DpX!gwRlXByF{Cz-t8jv)!w8yaUAs2m;xzq=C(4?cU;9re%HU6erx^}xtzvhet*tQrWdLXB9bDSgzQPeFhmE+5Sqc#GUK7MEDYe9+daM&+7OEozr;q3RKD zfs(k)>h(xTp51-GSX?=u)loNhp_im|#a`!hwPJebjuu~^=kjCb~^i2SKe@VN1n-@+sOZBuFdFqgiFpu{F0^iha;q-9JUJ+T5@bKoDMgptPlLkqVN3)$SqjYgx_sEM zRVwt8Y!z-|vY1=ZdL3#yKLx)X+Hih(rJZB%R=}tkCVFnodhK?e%+?OPv|XM%`omXU z&r?KcB0B3nt|t7;sh_I*xS?#OJH3}mCw;5wK=D=-)3aZAr9mfSF2`GxvR1}v)L-rO z+pOETdp3LN4@Shl$Wna5dIS8><6~i0RA`>f5@~%V(Wc=G(BEI7&eN@hccPNDxB>oG z_UHO9I29~W&tFlSOYl`&`o3${@K`+5>&0GYE&ty|xsLd6g@q3;UXRhx%~p4_Gv4w;``^ zksnOceZWu6I$=Mxbuj!>tKBv{bj@g;)sEIlM_Ys+tYZUp!jsCishUDL`AK0LQ0#C5 zc9zvzj`NX8Xd{_rQvm8{Xu6`2!@hV^JPvbl&N6AQMxm1N9JLCS>T#XK-8+j1STp&b z=8dnbnYkHY0xWU$5cOse3o!lJJ*IQTc&U0UCrvGz%fE!fUb@k>LX*jkH6w}sYz8dF zGMj8_=4qclr`owRiy`Xf9?4vSF_%?#{#+lLyFD}oIi%EkA@hA&6%t@L^K&%GYKAe0 zCxiMt_H)lpQE7SI6iwNQt8?+x{I;E#qois!UB#2v%p{{N86J!WDlMYZz6eGp;GpwNmiBcOjoRH`qF*9w ztoT>)OH?5S)ueOuwrcFa^6CNIJtTE2k+n2I3l0MGxYbf@k&?w;JyO*T6;M#%DDaes zmZ3(r`_6B60ZS`!KZKrI{@)vsa7>306D$>_ zf@H3Gzty!9p?*TcKvD4+`xkgfgxA<& z6LW25zvC!qY@mn?wGs8E)>{~3RrEi$JoG*ar-((+Qh|hG!cj;g;x)X(vrlL0l51?B z13*yp;ouAfl#7Npq;d!TUxVN9`v2xT@c;IQ(QrropZ%wpL_1kWee7Q(F~~lm@x&9C zapQ^C#}|z!o*c)GC;xY21AV}pvP7Wc!z0n~V$OaezHE3jAb3aD& zS=65Y)1&>vw@2PMxcL~f&;PUCy{Coz&z)z_I_vyzcTzUcYn>O&o`yHH&lT5lps=CQ z*he4#LBetV=U+E%W-)b1cwz(@#&#r&sV{ayUG6pdpjWJBts zK9QG15gY@EZs#=`8yo2S&3_%9HX6NNPjS|bfW#yUNaRyuxOa88c1?e9&l^2!7qz|5 z-e+r+W0J9T)0Ajt5H~5B`CAPJBlfWvH69@aK1v6kq9j&)YFZ26!ZH0|$DMQ<7c>gG zNJ;Q?_!h^FF_Bnt&kAG>aD~VO>7l(r5{BAT5}veetMOE`MyUA@5{3-@%y<|yH4qyc z=s1#TBDh8ah_q%zV$LQsAOc~#=2ow#<`okz(B+8wBjn>qu|V)P0Dce?60#UYD?mB;mr-*A#r!%P_(M^%aguB9x2)FFCR5;-dvqLBk^=i9jb= zQoYk8l5|Y+AjX^p9%VaQX!G@tC#PE;Is_<@`d6A0J&|k-0?qlGGvpI4>45rJ60xoD zeh8TqBM6(IP*eR=&3DQYj&Ph>k(qOF!U^aS1eHWI8Z8&xj@Q}!w$ak_-SawLTQ^ZM zE>Y{DFoK`~3qy9P(+BoLozGW4pIA)56HG(+W&}TTk`0Q0{fp0H0)k;c2Ll33yC8lB z=?2;#3}{3pRd8M@pwul+0}`nPARM{n3LO&Ra|%)-TDV-HqtCIX{Rd)0Off77$Ocf$X6xq!TqGjMNWEeKKo0)#5L$TCFS8bB(XRfB(K| z)GS$=<=6YCP4)l(-Q4P-S&)n{4|0&GAMP5Gm<47@N^26czyh+P{*ENA0xX5ZXXBVf zB$6pSnS!X7$CElp^pcd;jp zch=Zb^xa(Lz5G46sW<>GPlp$c3RiI6b_^ zLN1M$Mt`9gCKpr-rO;LhRO_mNV+G!7lAYTT-JqQHw%uC`S#{tQV!}WWKqRqz=UD7Z_BoYajz*k!M59x$NT2XjO z;1}H`h&5X3^3d@B^|BWljp99f?dg{fYDSYI&Mpy-5C9005&SNcoCe2GLyRy88(zjy z6$dE3vD**M3w!!gXA9*SFmoD@$9OoO;kqm7<=SQ58M!N==i0@^Tnc-l|IF43aQJP!sem~3ds`)N9Li53B*YlYTIzptDL|g^DhY3IEYTkkP6AC$e8uN!($@QW55Y+k5Pp&kglHrr!NFEx>gi#roqcD!{@dAFNmfw^&GpSB5i7c(?~Y!qtjr`lD8HussU~ z%aEyrNTkk!Rz|Cvmg$qTe{!5Mrz!3W!Y9-x)_8`oX8PL+10$I}=1oJ=R4*UxXqLFB z?jk0sU(kPQnb)IirysK6&ThN&-A?<(PUqzgj%mwjEm|~cby}V0I}UN2MiPHc)rUS2 z_DH?KeG=Z~rF)0hqr3AV%+nf&2RYHh)hXBtNH?gS)oiiH3x+b7#mdP+``- z-G~t8cTR8Jtev|NU6{9b`jJNce=h@0aU5zfBgeui^{i00bI;x`s>b^X;hYAfH+T2) zFG8yR0VkS1Sk039I7PoFI8^H$DA^joC=1bx4F+HvjMQ~uQgN7MI1zEPtreo49zajm6pQy|FiNDJ*6Mk6HBEH3wUf z)U#v&jy=usH2u@%L_rie%C-M>bHjEhOeo0;p=1@1N)Eg~d z8dwk5p0Bw^vu5ZlU#5W3PusnUa023F+VlTO-LnMRTE98LWOecB>Vd7=7v+Z zM!^NxbRO$yZL8wz?lA|qBG&63Gg&T9$~a7;$wUF+8XwhPB6SS{Ck{mzF^w`kTuwuu z)S#j^h0oszseeoASA)ceC1HRx2-%gscr1%1d!gNp1MJmWMZ)P zCrRfk9B%iiZDokQzlhOrQbfLON4W5QD)gHqK{(nJVL^u8|FaaR!z=L=lTxwzfNsGJ}0Vrk(ucfUT~Y zo}pSFGM~4lO~TMUFdVqYcl%wJrH$oQN^7rKzV`U{sJMh>jw`Bb47GrB^=%?ujxSp% zD1sN=#09%&ZnJIUR;*gK}Gmw?~L|ZW`ct9OTrFl3Oh(#u{z?3C=0TMxwfx<{l_EAeO(=E}XIr~?Y ztg5&4{yFK&Rf{X4L|tcZe^_b-L>EAL?n$6f8?y!+3j zR=wfQ3qu+W&+$-k0A{fe?z2Q1*JM)zNjwB1pIYhmmbcn%Y;2&jnD`Wjh{6gA ze?-PuIQHSHtIP$Q8>^{q10gw$Nmq49qhSM~Alt64HMO$Uoe)pj+L#IyGO+AzAVfan zaU7B^3ZRuoS)<{2v(FjoG_47UoY_OWJsYq0ooGm-&y9w}!+G86ek2~c-E_RpbFb41 zNT1@U)oHi*^SwqRPQvhnh18!5D=hY4im>kfByE_6r3K~a93oaOH8=)I+-(Q~mrNkFcEx`p(Ds4oh;$!EziqS1iyv9{dQ z@fC!-Njk2t!tMPCgk>E0#B|mt-Nr_WmM+F^Bp(Bj{-x9SsSqfGDX;O5I0-RMg#jk z5#lWi$UJcOp(Yx$Aj=L^3wLgyQ-Xt^IhEu+Y=EHuo;%nX{Wn=+gqJ_iMkB^@G_T(i z6LYVhZDf$^DGk>#3!N?M=uO|qZHHdh4dg6rVF5M}tN;ML0k0O$uqn>wt&1|Wg+L#3 zX6eSnvqnkQ#>}1UcxrmTAk()vj%fsBBiEPtJq@R#`!rm@1)1unu_{|t^^rz(Kxp{& zL(a^_){#w8P&beZ>;^(9SE(x5DEL2;X}XkZEn&h6utZU+pN)SR#5Y8OM1n$SDL9M3 zVY&fAXp}yjZ6m?P1W7t3LUnM7BRG^p)mk#uJJ)Z-F%yDOXLeh{j*>3#thx0aX82>BO zfBuw2ewttP%a=xO(m@<%Gxj{s1pOn?q?=|Mw&8hB_Rr3Ket&w{$e7HDeMIawT;5YJ zCFF(}h8si_ zmbGxA@`r!kX+k-Lt~p@u-k%?xdGfQSQ$C9X3&~BwHMiS$8?d?Exkkw51!FeP&Eaw5 z;LWf%#{)%?28{da=42v$J1|+C!7o5?72f8#Y8 zPoDe?wsZ#YOTr1FCbk`4!88UphF zvv)N+Zo)wL-lwp%hbpUjk>C+}Y46=r4v7OpVwKp`HdMTQH9ro}RB29?D&fNlX^rRa z8)IAJFXV>Pq)t9v_@$D}tFrGG17T#D2#?HPk6GT2$=qbhyKdUOsr?rS@R&p}lLsOM zOmD>~E>haj9=J9RG1aK6Coj!AUp^E0R{$fs$Y)uJ8%iW8= z`ZGAd$p19c>ew|?+bwAF5MrMZs0{@9u^i%Xn8_O`N$d?q46d(o>>#V?%*F6qUoQSy zl-tuC1qMQ9{gb@;MB{N;r~8;xi_@2Jld>@m5T6&x>vhQ@!D+0)nPB~mV2J}I2QbUG z8xIl1=Lsukqj3|)aaLotf^SW(b8TrF=M1VHAL+ezhI~%~v=H(%wfAjn=>U?tHNGBj zmqSr|oI7KA7^}n8o;k$D%k5DQ5p-=L#GPb`{L7s=c-e;J)mR}|-XpX_r#kDtN5(>y zj1pJ;nQ2HqSkuKKK=j=R8kH;QZ>4)5lb#jfI2ViYp0VT)-RTN4_W+GHkUTw>I(d1l d{wG4-t!-^=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.1.0 diff --git a/incubator/freshrss/6.1.0/README.md b/incubator/freshrss/6.1.0/README.md new file mode 100644 index 00000000000..85e875c3da7 --- /dev/null +++ b/incubator/freshrss/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/freshrss/6.1.0/app-readme.md new file mode 100644 index 00000000000..7d8a844b9cc --- /dev/null +++ b/incubator/freshrss/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/freshrss/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/freshrss/6.1.0/ix_values.yaml b/incubator/freshrss/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..98641a23823 --- /dev/null +++ b/incubator/freshrss/6.1.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.1.0/questions.yaml b/incubator/freshrss/6.1.0/questions.yaml new file mode 100644 index 00000000000..fd9e3abec77 --- /dev/null +++ b/incubator/freshrss/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/freshrss/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/freshrss/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/freshrss/6.1.0/test_values.yaml b/incubator/freshrss/6.1.0/test_values.yaml new file mode 100644 index 00000000000..8cadee1dd69 --- /dev/null +++ b/incubator/freshrss/6.1.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.1.0/values.yaml b/incubator/freshrss/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/gaps/6.1.0/CONFIG.md b/incubator/gaps/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/gaps/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/gaps/6.1.0/Chart.lock new file mode 100644 index 00000000000..7bb6ece67a3 --- /dev/null +++ b/incubator/gaps/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:32.96760302Z" diff --git a/incubator/gaps/6.1.0/Chart.yaml b/incubator/gaps/6.1.0/Chart.yaml new file mode 100644 index 00000000000..ebcce568be7 --- /dev/null +++ b/incubator/gaps/6.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Gaps searches through your Plex Server or local folders for all movies, + then queries for known movies in the same collection. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/gaps +icon: https://raw.githubusercontent.com/JasonHHouse/gaps/master/images/Final-Black.png +keywords: +- gaps +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: gaps +sources: +- https://github.com/JasonHHouse/gaps +type: application +version: 6.1.0 diff --git a/incubator/gaps/6.1.0/README.md b/incubator/gaps/6.1.0/README.md new file mode 100644 index 00000000000..0d00402b9d6 --- /dev/null +++ b/incubator/gaps/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/gaps/6.1.0/app-readme.md new file mode 100644 index 00000000000..2333306b1d5 --- /dev/null +++ b/incubator/gaps/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/gaps/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/gaps/6.1.0/ix_values.yaml b/incubator/gaps/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..d11177660e5 --- /dev/null +++ b/incubator/gaps/6.1.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.1.0/questions.yaml b/incubator/gaps/6.1.0/questions.yaml new file mode 100644 index 00000000000..ff744424e18 --- /dev/null +++ b/incubator/gaps/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/gaps/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/gaps/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/gaps/6.1.0/test_values.yaml b/incubator/gaps/6.1.0/test_values.yaml new file mode 100644 index 00000000000..c7555ac8822 --- /dev/null +++ b/incubator/gaps/6.1.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.1.0/values.yaml b/incubator/gaps/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/grocy/6.1.0/CONFIG.md b/incubator/grocy/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/grocy/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/grocy/6.1.0/Chart.lock new file mode 100644 index 00000000000..07afbe7d48e --- /dev/null +++ b/incubator/grocy/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:33.996680698Z" diff --git a/incubator/grocy/6.1.0/Chart.yaml b/incubator/grocy/6.1.0/Chart.yaml new file mode 100644 index 00000000000..d79c4b132f8 --- /dev/null +++ b/incubator/grocy/6.1.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & + household management solution for your home +home: https://github.com/truecharts/apps/tree/master/charts/incubator/grocy +icon: https://github.com/grocy/grocy/raw/master/public/img/appicons/mstile-150x150.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: grocy +sources: +- https://github.com/grocy/grocy +type: application +version: 6.1.0 diff --git a/incubator/grocy/6.1.0/README.md b/incubator/grocy/6.1.0/README.md new file mode 100644 index 00000000000..4c2c8709dfa --- /dev/null +++ b/incubator/grocy/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/grocy/6.1.0/app-readme.md new file mode 100644 index 00000000000..de807b7ad25 --- /dev/null +++ b/incubator/grocy/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/grocy/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/grocy/6.1.0/ix_values.yaml b/incubator/grocy/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..f646426e755 --- /dev/null +++ b/incubator/grocy/6.1.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.0.1 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/grocy/6.1.0/questions.yaml b/incubator/grocy/6.1.0/questions.yaml new file mode 100644 index 00000000000..d56a7595712 --- /dev/null +++ b/incubator/grocy/6.1.0/questions.yaml @@ -0,0 +1,606 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/grocy/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/grocy/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/grocy/6.1.0/test_values.yaml b/incubator/grocy/6.1.0/test_values.yaml new file mode 100644 index 00000000000..66f3d07f06c --- /dev/null +++ b/incubator/grocy/6.1.0/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for grocy. + +image: + repository: linuxserver/grocy + tag: version-v3.0.1 + 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.1.0/values.yaml b/incubator/grocy/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/haste-server/1.1.0/CONFIG.md b/incubator/haste-server/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/haste-server/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/haste-server/1.1.0/Chart.lock new file mode 100644 index 00000000000..d96f117f325 --- /dev/null +++ b/incubator/haste-server/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:34.935513456Z" diff --git a/incubator/haste-server/1.1.0/Chart.yaml b/incubator/haste-server/1.1.0/Chart.yaml new file mode 100644 index 00000000000..587cd1d6358 --- /dev/null +++ b/incubator/haste-server/1.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: Simple text sharing +home: https://github.com/truecharts/apps/tree/master/charts/incubator/haste +icon: https://raw.githubusercontent.com/nicholaswilde/helm-charts/main/images/haste.png +keywords: +- haste +- hastebin +- haste-server +- pastebin +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: haste-server +sources: +- https://github.com/seejohnrun/haste-server +- https://github.com/k8s-at-home/container-images +version: 1.1.0 diff --git a/incubator/haste-server/1.1.0/README.md b/incubator/haste-server/1.1.0/README.md new file mode 100644 index 00000000000..ebd8965483e --- /dev/null +++ b/incubator/haste-server/1.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/haste-server/1.1.0/app-readme.md new file mode 100644 index 00000000000..dd4cf171e08 --- /dev/null +++ b/incubator/haste-server/1.1.0/app-readme.md @@ -0,0 +1 @@ +Simple text sharing diff --git a/incubator/haste-server/1.1.0/charts/common-6.3.1.tgz b/incubator/haste-server/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/haste-server/1.1.0/ix_values.yaml b/incubator/haste-server/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..a9ee0bcb65b --- /dev/null +++ b/incubator/haste-server/1.1.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.1.0/questions.yaml b/incubator/haste-server/1.1.0/questions.yaml new file mode 100644 index 00000000000..cad110ee40c --- /dev/null +++ b/incubator/haste-server/1.1.0/questions.yaml @@ -0,0 +1,553 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/haste-server/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/haste-server/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/haste-server/1.1.0/test_values.yaml b/incubator/haste-server/1.1.0/test_values.yaml new file mode 100644 index 00000000000..942cc592bd5 --- /dev/null +++ b/incubator/haste-server/1.1.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/haste-server + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: latest + +strategy: + type: Recreate + +# -- 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.1.0/values.yaml b/incubator/haste-server/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/heimdall/6.1.0/CONFIG.md b/incubator/heimdall/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/heimdall/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/heimdall/6.1.0/Chart.lock new file mode 100644 index 00000000000..d5636dd8213 --- /dev/null +++ b/incubator/heimdall/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:35.901054578Z" diff --git a/incubator/heimdall/6.1.0/Chart.yaml b/incubator/heimdall/6.1.0/Chart.yaml new file mode 100644 index 00000000000..d417d62619a --- /dev/null +++ b/incubator/heimdall/6.1.0/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: An Application dashboard and launcher +home: https://github.com/truecharts/apps/tree/master/charts/incubator/heimdall +icon: https://i.imgur.com/mM4tcO5.png +keywords: +- heimdall +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: heimdall +sources: null +type: application +version: 6.1.0 diff --git a/incubator/heimdall/6.1.0/README.md b/incubator/heimdall/6.1.0/README.md new file mode 100644 index 00000000000..4661f4c1ef4 --- /dev/null +++ b/incubator/heimdall/6.1.0/README.md @@ -0,0 +1,49 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/heimdall/6.1.0/app-readme.md new file mode 100644 index 00000000000..3fb24ea7f1b --- /dev/null +++ b/incubator/heimdall/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/heimdall/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/heimdall/6.1.0/ix_values.yaml b/incubator/heimdall/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..bdcc3ce0176 --- /dev/null +++ b/incubator/heimdall/6.1.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.1.0/questions.yaml b/incubator/heimdall/6.1.0/questions.yaml new file mode 100644 index 00000000000..ab9b4bbee26 --- /dev/null +++ b/incubator/heimdall/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/heimdall/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/heimdall/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/heimdall/6.1.0/test_values.yaml b/incubator/heimdall/6.1.0/test_values.yaml new file mode 100644 index 00000000000..658614359ea --- /dev/null +++ b/incubator/heimdall/6.1.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.1.0/values.yaml b/incubator/heimdall/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/lazylibrarian/6.1.0/CONFIG.md b/incubator/lazylibrarian/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/lazylibrarian/6.1.0/Chart.lock new file mode 100644 index 00000000000..299a57050fb --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:36.863162107Z" diff --git a/incubator/lazylibrarian/6.1.0/Chart.yaml b/incubator/lazylibrarian/6.1.0/Chart.yaml new file mode 100644 index 00000000000..d4e9571a477 --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Get all your books, like series with Sonarr... +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lazylibrarian +icon: https://lazylibrarian.gitlab.io/logo.svg +keywords: +- lazylibrarian +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lazylibrarian +sources: +- https://gitlab.com/LazyLibrarian/LazyLibrarian.git +- https://lazylibrarian.gitlab.io +type: application +version: 6.1.0 diff --git a/incubator/lazylibrarian/6.1.0/README.md b/incubator/lazylibrarian/6.1.0/README.md new file mode 100644 index 00000000000..0ef80386001 --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/lazylibrarian/6.1.0/app-readme.md new file mode 100644 index 00000000000..c67c1844868 --- /dev/null +++ b/incubator/lazylibrarian/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/lazylibrarian/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/lazylibrarian/6.1.0/ix_values.yaml b/incubator/lazylibrarian/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..553b98dbe3e --- /dev/null +++ b/incubator/lazylibrarian/6.1.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.1.0/questions.yaml b/incubator/lazylibrarian/6.1.0/questions.yaml new file mode 100644 index 00000000000..f063edc9c3d --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/lazylibrarian/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/lazylibrarian/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lazylibrarian/6.1.0/test_values.yaml b/incubator/lazylibrarian/6.1.0/test_values.yaml new file mode 100644 index 00000000000..6bba6ace4dc --- /dev/null +++ b/incubator/lazylibrarian/6.1.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.1.0/values.yaml b/incubator/lazylibrarian/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/lychee/6.1.0/CONFIG.md b/incubator/lychee/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/lychee/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/lychee/6.1.0/Chart.lock new file mode 100644 index 00000000000..b5dd2d48ea2 --- /dev/null +++ b/incubator/lychee/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:37.813826129Z" diff --git a/incubator/lychee/6.1.0/Chart.yaml b/incubator/lychee/6.1.0/Chart.yaml new file mode 100644 index 00000000000..ec874512cf5 --- /dev/null +++ b/incubator/lychee/6.1.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Lychee is a free photo-management tool, which runs on your server or + web-space +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lychee +icon: https://github.com/LycheeOrg/Lychee/blob/master/Banner.png?raw=true +keywords: +- lychee +- photo +- pictures +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: lychee +sources: +- https://github.com/LycheeOrg/Lychee +- https://hub.docker.com/r/lycheeorg/lychee +type: application +version: 6.1.0 diff --git a/incubator/lychee/6.1.0/README.md b/incubator/lychee/6.1.0/README.md new file mode 100644 index 00000000000..dec13ea9a0c --- /dev/null +++ b/incubator/lychee/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/lychee/6.1.0/app-readme.md new file mode 100644 index 00000000000..792e9d50ab7 --- /dev/null +++ b/incubator/lychee/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/lychee/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/lychee/6.1.0/ix_values.yaml b/incubator/lychee/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..63bb15faef3 --- /dev/null +++ b/incubator/lychee/6.1.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.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/lychee/6.1.0/questions.yaml b/incubator/lychee/6.1.0/questions.yaml new file mode 100644 index 00000000000..4846842195f --- /dev/null +++ b/incubator/lychee/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/lychee/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/lychee/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lychee/6.1.0/test_values.yaml b/incubator/lychee/6.1.0/test_values.yaml new file mode 100644 index 00000000000..fefa59b25b6 --- /dev/null +++ b/incubator/lychee/6.1.0/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for Lychee. + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.0 + +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.1.0/values.yaml b/incubator/lychee/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/mealie/1.1.0/CONFIG.md b/incubator/mealie/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/mealie/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/mealie/1.1.0/Chart.lock new file mode 100644 index 00000000000..bc9546858e3 --- /dev/null +++ b/incubator/mealie/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:38.790916597Z" diff --git a/incubator/mealie/1.1.0/Chart.yaml b/incubator/mealie/1.1.0/Chart.yaml new file mode 100644 index 00000000000..3e5c265f3cd --- /dev/null +++ b/incubator/mealie/1.1.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: Mealie is a self hosted recipe manager and meal planner with a RestAPI + backend and a reactive frontend application built in Vue for a pleasant user experience + for the whole family. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mealie +icon: https://raw.githubusercontent.com/hay-kot/mealie/gh-pages/assets/img/favicon.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: mealie +sources: +- https://github.com/hay-kot/mealie +version: 1.1.0 diff --git a/incubator/mealie/1.1.0/README.md b/incubator/mealie/1.1.0/README.md new file mode 100644 index 00000000000..7f1c31d001b --- /dev/null +++ b/incubator/mealie/1.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/mealie/1.1.0/app-readme.md new file mode 100644 index 00000000000..53470db1cd0 --- /dev/null +++ b/incubator/mealie/1.1.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.1.0/charts/common-6.3.1.tgz b/incubator/mealie/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/mealie/1.1.0/ix_values.yaml b/incubator/mealie/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..92027f7dd62 --- /dev/null +++ b/incubator/mealie/1.1.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.4.3 + # -- 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.1.0/questions.yaml b/incubator/mealie/1.1.0/questions.yaml new file mode 100644 index 00000000000..92699684fd7 --- /dev/null +++ b/incubator/mealie/1.1.0/questions.yaml @@ -0,0 +1,548 @@ +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: 36056 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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/mealie/1.1.0/templates/common.yaml b/incubator/mealie/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/mealie/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/mealie/1.1.0/test_values.yaml b/incubator/mealie/1.1.0/test_values.yaml new file mode 100644 index 00000000000..8262b72c2e7 --- /dev/null +++ b/incubator/mealie/1.1.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.4.3 + # -- 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.1.0/values.yaml b/incubator/mealie/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/mosquitto/1.1.0/CONFIG.md b/incubator/mosquitto/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/mosquitto/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/mosquitto/1.1.0/Chart.lock new file mode 100644 index 00000000000..46f52440ceb --- /dev/null +++ b/incubator/mosquitto/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:39.72089103Z" diff --git a/incubator/mosquitto/1.1.0/Chart.yaml b/incubator/mosquitto/1.1.0/Chart.yaml new file mode 100644 index 00000000000..59c9f3988a0 --- /dev/null +++ b/incubator/mosquitto/1.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +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.1.0 diff --git a/incubator/mosquitto/1.1.0/README.md b/incubator/mosquitto/1.1.0/README.md new file mode 100644 index 00000000000..70c45c2d1a7 --- /dev/null +++ b/incubator/mosquitto/1.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/mosquitto/1.1.0/app-readme.md new file mode 100644 index 00000000000..93652bac7a6 --- /dev/null +++ b/incubator/mosquitto/1.1.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.1.0/charts/common-6.3.1.tgz b/incubator/mosquitto/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/mosquitto/1.1.0/ix_values.yaml b/incubator/mosquitto/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..b638fcf296e --- /dev/null +++ b/incubator/mosquitto/1.1.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.1.0/questions.yaml b/incubator/mosquitto/1.1.0/questions.yaml new file mode 100644 index 00000000000..475a366dc05 --- /dev/null +++ b/incubator/mosquitto/1.1.0/questions.yaml @@ -0,0 +1,779 @@ +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: false + hidden: true + - variable: mqtt + label: "MQTT 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: 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: 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: "/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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/mosquitto/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..15d4d961a1c --- /dev/null +++ b/incubator/mosquitto/1.1.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.1.0/templates/configmap.yaml b/incubator/mosquitto/1.1.0/templates/configmap.yaml new file mode 100644 index 00000000000..fb79f2269f2 --- /dev/null +++ b/incubator/mosquitto/1.1.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.mqtt.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.1.0/test_values.yaml b/incubator/mosquitto/1.1.0/test_values.yaml new file mode 100644 index 00000000000..50856741426 --- /dev/null +++ b/incubator/mosquitto/1.1.0/test_values.yaml @@ -0,0 +1,40 @@ +# 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: + enabled: false + mqtt: + 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.1.0/values.yaml b/incubator/mosquitto/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/navidrome/6.1.0/CONFIG.md b/incubator/navidrome/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/navidrome/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/navidrome/6.1.0/Chart.lock new file mode 100644 index 00000000000..05e158cbd60 --- /dev/null +++ b/incubator/navidrome/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:40.681465769Z" diff --git a/incubator/navidrome/6.1.0/Chart.yaml b/incubator/navidrome/6.1.0/Chart.yaml new file mode 100644 index 00000000000..914f81ceecf --- /dev/null +++ b/incubator/navidrome/6.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Navidrome is an open source web-based music collection server and streamer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/navidrome +icon: https://raw.githubusercontent.com/navidrome/navidrome/v0.42.0/ui/src/icons/android-icon-192x192.png +keywords: +- navidrome +- music +- streaming +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: navidrome +sources: +- https://github.com/deluan/navidrome +- https://hub.docker.com/r/deluan/navidrome +type: application +version: 6.1.0 diff --git a/incubator/navidrome/6.1.0/README.md b/incubator/navidrome/6.1.0/README.md new file mode 100644 index 00000000000..ec6c445a1d0 --- /dev/null +++ b/incubator/navidrome/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/navidrome/6.1.0/app-readme.md new file mode 100644 index 00000000000..4f10b994279 --- /dev/null +++ b/incubator/navidrome/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/navidrome/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/navidrome/6.1.0/ix_values.yaml b/incubator/navidrome/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..864240f8e68 --- /dev/null +++ b/incubator/navidrome/6.1.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.43.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/navidrome/6.1.0/questions.yaml b/incubator/navidrome/6.1.0/questions.yaml new file mode 100644 index 00000000000..d2a38582d29 --- /dev/null +++ b/incubator/navidrome/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/navidrome/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/navidrome/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/navidrome/6.1.0/test_values.yaml b/incubator/navidrome/6.1.0/test_values.yaml new file mode 100644 index 00000000000..fa731fdee65 --- /dev/null +++ b/incubator/navidrome/6.1.0/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Navidrome. + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.43.0 + +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.1.0/values.yaml b/incubator/navidrome/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/node-red/6.1.0/CONFIG.md b/incubator/node-red/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/node-red/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/node-red/6.1.0/Chart.lock new file mode 100644 index 00000000000..445c4fac176 --- /dev/null +++ b/incubator/node-red/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:41.614166972Z" diff --git a/incubator/node-red/6.1.0/Chart.yaml b/incubator/node-red/6.1.0/Chart.yaml new file mode 100644 index 00000000000..2aac3e198ad --- /dev/null +++ b/incubator/node-red/6.1.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Node-RED is low-code programming for event-driven applications +home: https://github.com/truecharts/apps/tree/master/charts/incubator/node-red +icon: https://nodered.org/about/resources/media/node-red-icon-2.png +keywords: +- node-red +- nodered +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: node-red +sources: +- https://github.com/node-red/node-red-docker +type: application +version: 6.1.0 diff --git a/incubator/node-red/6.1.0/README.md b/incubator/node-red/6.1.0/README.md new file mode 100644 index 00000000000..6cad7d880c0 --- /dev/null +++ b/incubator/node-red/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/node-red/6.1.0/app-readme.md new file mode 100644 index 00000000000..6ecbe710e71 --- /dev/null +++ b/incubator/node-red/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/node-red/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/node-red/6.1.0/ix_values.yaml b/incubator/node-red/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..1a08797f274 --- /dev/null +++ b/incubator/node-red/6.1.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: 1.3.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.1.0/questions.yaml b/incubator/node-red/6.1.0/questions.yaml new file mode 100644 index 00000000000..35a175907bb --- /dev/null +++ b/incubator/node-red/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/node-red/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/node-red/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/node-red/6.1.0/test_values.yaml b/incubator/node-red/6.1.0/test_values.yaml new file mode 100644 index 00000000000..a6ddda7114e --- /dev/null +++ b/incubator/node-red/6.1.0/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for node-red. + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 1.3.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.1.0/values.yaml b/incubator/node-red/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/nzbget/6.1.0/CONFIG.md b/incubator/nzbget/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/nzbget/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/nzbget/6.1.0/Chart.lock new file mode 100644 index 00000000000..dda9dae1bcd --- /dev/null +++ b/incubator/nzbget/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:42.606419585Z" diff --git a/incubator/nzbget/6.1.0/Chart.yaml b/incubator/nzbget/6.1.0/Chart.yaml new file mode 100644 index 00000000000..3b9336b02a1 --- /dev/null +++ b/incubator/nzbget/6.1.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: NZBGet is a Usenet downloader client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbget +icon: https://avatars1.githubusercontent.com/u/3368377?s=400&v=4 +keywords: +- nzbget +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: nzbget +sources: +- https://nzbget.net/ +type: application +version: 6.1.0 diff --git a/incubator/nzbget/6.1.0/README.md b/incubator/nzbget/6.1.0/README.md new file mode 100644 index 00000000000..7678c91a27c --- /dev/null +++ b/incubator/nzbget/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/nzbget/6.1.0/app-readme.md new file mode 100644 index 00000000000..bde861cf216 --- /dev/null +++ b/incubator/nzbget/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/nzbget/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/nzbget/6.1.0/ix_values.yaml b/incubator/nzbget/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..ef8e5a4f233 --- /dev/null +++ b/incubator/nzbget/6.1.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.1.0/questions.yaml b/incubator/nzbget/6.1.0/questions.yaml new file mode 100644 index 00000000000..c4f48e3803d --- /dev/null +++ b/incubator/nzbget/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/nzbget/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/nzbget/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/nzbget/6.1.0/test_values.yaml b/incubator/nzbget/6.1.0/test_values.yaml new file mode 100644 index 00000000000..355d869f8c7 --- /dev/null +++ b/incubator/nzbget/6.1.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.1.0/values.yaml b/incubator/nzbget/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/organizr/6.1.0/CONFIG.md b/incubator/organizr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/organizr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/organizr/6.1.0/Chart.lock new file mode 100644 index 00000000000..55e288cca55 --- /dev/null +++ b/incubator/organizr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:43.854525536Z" diff --git a/incubator/organizr/6.1.0/Chart.yaml b/incubator/organizr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..5ae9ca3856a --- /dev/null +++ b/incubator/organizr/6.1.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: HTPC/Homelab Services Organizer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/organizr +icon: https://github.com/causefx/Organizr/blob/v2-master/plugins/images/organizr/logo.png?raw=true +keywords: +- organizr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: organizr +sources: +- https://github.com/causefx/Organizr +- https://hub.docker.com/r/organizr/organizr +type: application +version: 6.1.0 diff --git a/incubator/organizr/6.1.0/README.md b/incubator/organizr/6.1.0/README.md new file mode 100644 index 00000000000..49f4a123320 --- /dev/null +++ b/incubator/organizr/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/organizr/6.1.0/app-readme.md new file mode 100644 index 00000000000..0bfeec6a4ef --- /dev/null +++ b/incubator/organizr/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/organizr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/organizr/6.1.0/ix_values.yaml b/incubator/organizr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..19a9fa1ee99 --- /dev/null +++ b/incubator/organizr/6.1.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.1.0/questions.yaml b/incubator/organizr/6.1.0/questions.yaml new file mode 100644 index 00000000000..f4348d4ba38 --- /dev/null +++ b/incubator/organizr/6.1.0/questions.yaml @@ -0,0 +1,717 @@ +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 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/organizr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/organizr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/organizr/6.1.0/test_values.yaml b/incubator/organizr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..e61f52c2663 --- /dev/null +++ b/incubator/organizr/6.1.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.1.0/values.yaml b/incubator/organizr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/podgrab/4.1.0/CONFIG.md b/incubator/podgrab/4.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/podgrab/4.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/podgrab/4.1.0/Chart.lock new file mode 100644 index 00000000000..b9847cef3ee --- /dev/null +++ b/incubator/podgrab/4.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:44.835318894Z" diff --git a/incubator/podgrab/4.1.0/Chart.yaml b/incubator/podgrab/4.1.0/Chart.yaml new file mode 100644 index 00000000000..f6a4ffb116b --- /dev/null +++ b/incubator/podgrab/4.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: A self-hosted podcast manager to download episodes as soon as they become + live. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/podgrab +icon: https://truecharts.org/_static/img/podgrab-icon.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.1.0 diff --git a/incubator/podgrab/4.1.0/README.md b/incubator/podgrab/4.1.0/README.md new file mode 100644 index 00000000000..6ca72d7e442 --- /dev/null +++ b/incubator/podgrab/4.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 4.0.2](https://img.shields.io/badge/Version-4.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/podgrab/4.1.0/app-readme.md new file mode 100644 index 00000000000..6d69d3a84c9 --- /dev/null +++ b/incubator/podgrab/4.1.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.1.0/charts/common-6.3.1.tgz b/incubator/podgrab/4.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/podgrab/4.1.0/ix_values.yaml b/incubator/podgrab/4.1.0/ix_values.yaml new file mode 100644 index 00000000000..30b72ab29c1 --- /dev/null +++ b/incubator/podgrab/4.1.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.1.0/questions.yaml b/incubator/podgrab/4.1.0/questions.yaml new file mode 100644 index 00000000000..f15e60dfb0e --- /dev/null +++ b/incubator/podgrab/4.1.0/questions.yaml @@ -0,0 +1,655 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/podgrab/4.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/podgrab/4.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/podgrab/4.1.0/test_values.yaml b/incubator/podgrab/4.1.0/test_values.yaml new file mode 100644 index 00000000000..b0e9dc7d774 --- /dev/null +++ b/incubator/podgrab/4.1.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.1.0/values.yaml b/incubator/podgrab/4.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/prowlarr/1.1.0/CONFIG.md b/incubator/prowlarr/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/prowlarr/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/prowlarr/1.1.0/Chart.lock new file mode 100644 index 00000000000..61cdae80d9a --- /dev/null +++ b/incubator/prowlarr/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:45.826501277Z" diff --git a/incubator/prowlarr/1.1.0/Chart.yaml b/incubator/prowlarr/1.1.0/Chart.yaml new file mode 100644 index 00000000000..0198f9e74b9 --- /dev/null +++ b/incubator/prowlarr/1.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: Indexer manager/proxy built on the popular arr net base stack to integrate + with your various PVR apps. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/prowlarr +icon: https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/400.png +keywords: +- prowlarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: prowlarr +sources: +- https://github.com/Prowlarr/Prowlarr +- https://github.com/k8s-at-home/container-images +version: 1.1.0 diff --git a/incubator/prowlarr/1.1.0/README.md b/incubator/prowlarr/1.1.0/README.md new file mode 100644 index 00000000000..1e5135e1ec7 --- /dev/null +++ b/incubator/prowlarr/1.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/prowlarr/1.1.0/app-readme.md new file mode 100644 index 00000000000..e2143326076 --- /dev/null +++ b/incubator/prowlarr/1.1.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.1.0/charts/common-6.3.1.tgz b/incubator/prowlarr/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/prowlarr/1.1.0/ix_values.yaml b/incubator/prowlarr/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..838d0e1ae66 --- /dev/null +++ b/incubator/prowlarr/1.1.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.421 + # -- 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.1.0/questions.yaml b/incubator/prowlarr/1.1.0/questions.yaml new file mode 100644 index 00000000000..139b4bd88b0 --- /dev/null +++ b/incubator/prowlarr/1.1.0/questions.yaml @@ -0,0 +1,555 @@ +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: 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: 36057 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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/prowlarr/1.1.0/templates/common.yaml b/incubator/prowlarr/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/prowlarr/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/prowlarr/1.1.0/test_values.yaml b/incubator/prowlarr/1.1.0/test_values.yaml new file mode 100644 index 00000000000..c1253f30ede --- /dev/null +++ b/incubator/prowlarr/1.1.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/prowlarr + # -- image tag + tag: v0.1.0.421 + # -- 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: + 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.1.0/values.yaml b/incubator/prowlarr/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/qbittorrent/6.1.0/CONFIG.md b/incubator/qbittorrent/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/qbittorrent/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/qbittorrent/6.1.0/Chart.lock new file mode 100644 index 00000000000..5b282f806f0 --- /dev/null +++ b/incubator/qbittorrent/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:46.822526778Z" diff --git a/incubator/qbittorrent/6.1.0/Chart.yaml b/incubator/qbittorrent/6.1.0/Chart.yaml new file mode 100644 index 00000000000..2a987677b9e --- /dev/null +++ b/incubator/qbittorrent/6.1.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: qBittorrent is a cross-platform free and open-source BitTorrent client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/qbittorrent +icon: https://cloud.githubusercontent.com/assets/14862437/23586868/89ef2922-01c4-11e7-869c-52aafcece17f.png +keywords: +- qbittorrent +- torrrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: qbittorrent +sources: null +type: application +version: 6.1.0 diff --git a/incubator/qbittorrent/6.1.0/README.md b/incubator/qbittorrent/6.1.0/README.md new file mode 100644 index 00000000000..f90b6868a09 --- /dev/null +++ b/incubator/qbittorrent/6.1.0/README.md @@ -0,0 +1,49 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/qbittorrent/6.1.0/app-readme.md new file mode 100644 index 00000000000..5d26b483c2c --- /dev/null +++ b/incubator/qbittorrent/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/qbittorrent/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/qbittorrent/6.1.0/ix_values.yaml b/incubator/qbittorrent/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..a2b08bf404d --- /dev/null +++ b/incubator/qbittorrent/6.1.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.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/qbittorrent/6.1.0/questions.yaml b/incubator/qbittorrent/6.1.0/questions.yaml new file mode 100644 index 00000000000..50fe811a90f --- /dev/null +++ b/incubator/qbittorrent/6.1.0/questions.yaml @@ -0,0 +1,794 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/_configmap.tpl b/incubator/qbittorrent/6.1.0/templates/_configmap.tpl new file mode 100644 index 00000000000..d52c601514c --- /dev/null +++ b/incubator/qbittorrent/6.1.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.1.0/templates/common.yaml b/incubator/qbittorrent/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..bcb4715aa18 --- /dev/null +++ b/incubator/qbittorrent/6.1.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.1.0/test_values.yaml b/incubator/qbittorrent/6.1.0/test_values.yaml new file mode 100644 index 00000000000..eb3c2a84503 --- /dev/null +++ b/incubator/qbittorrent/6.1.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.5 + +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.1.0/values.yaml b/incubator/qbittorrent/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/readarr/6.1.0/CONFIG.md b/incubator/readarr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/readarr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/readarr/6.1.0/Chart.lock new file mode 100644 index 00000000000..4760465a6ac --- /dev/null +++ b/incubator/readarr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:47.775204737Z" diff --git a/incubator/readarr/6.1.0/Chart.yaml b/incubator/readarr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..eeccd6de544 --- /dev/null +++ b/incubator/readarr/6.1.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: A fork of Radarr to work with Books & AudioBooks +home: https://github.com/truecharts/apps/tree/master/charts/incubator/readarr +icon: https://github.com/Readarr/Readarr/blob/develop/Logo/1024.png?raw=true +keywords: +- readarr +- torrent +- usenet +- AudioBooks +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: readarr +sources: +- https://github.com/Readarr/Readarr +- https://readarr.com +type: application +version: 6.1.0 diff --git a/incubator/readarr/6.1.0/README.md b/incubator/readarr/6.1.0/README.md new file mode 100644 index 00000000000..75ee6838566 --- /dev/null +++ b/incubator/readarr/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/readarr/6.1.0/app-readme.md new file mode 100644 index 00000000000..ec0ebb214b7 --- /dev/null +++ b/incubator/readarr/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/readarr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/readarr/6.1.0/ix_values.yaml b/incubator/readarr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..83874ccdc61 --- /dev/null +++ b/incubator/readarr/6.1.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.715 + +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.1.0/questions.yaml b/incubator/readarr/6.1.0/questions.yaml new file mode 100644 index 00000000000..899d20b9bd7 --- /dev/null +++ b/incubator/readarr/6.1.0/questions.yaml @@ -0,0 +1,647 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/readarr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/readarr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/readarr/6.1.0/test_values.yaml b/incubator/readarr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..4c1fe918a6a --- /dev/null +++ b/incubator/readarr/6.1.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.715 + +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.1.0/values.yaml b/incubator/readarr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/reg/1.1.0/CONFIG.md b/incubator/reg/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/reg/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/reg/1.1.0/Chart.lock new file mode 100644 index 00000000000..d600661fe80 --- /dev/null +++ b/incubator/reg/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:48.743665031Z" diff --git a/incubator/reg/1.1.0/Chart.yaml b/incubator/reg/1.1.0/Chart.yaml new file mode 100644 index 00000000000..7aba204a417 --- /dev/null +++ b/incubator/reg/1.1.0/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: Docker registry v2 command line client and repo listing generator with + security checks. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/reg +icon: https://avatars.githubusercontent.com/u/37218338 +keywords: +- reg +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: reg +sources: +- https://github.com/genuinetools/reg +- https://github.com/k8s-at-home/container-images/ +version: 1.1.0 diff --git a/incubator/reg/1.1.0/README.md b/incubator/reg/1.1.0/README.md new file mode 100644 index 00000000000..d829d85b614 --- /dev/null +++ b/incubator/reg/1.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/reg/1.1.0/app-readme.md new file mode 100644 index 00000000000..579122c7ecc --- /dev/null +++ b/incubator/reg/1.1.0/app-readme.md @@ -0,0 +1 @@ +Docker registry v2 command line client and repo listing generator with diff --git a/incubator/reg/1.1.0/charts/common-6.3.1.tgz b/incubator/reg/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/reg/1.1.0/ci/ct-values.yaml b/incubator/reg/1.1.0/ci/ct-values.yaml new file mode 100644 index 00000000000..7ec97337b23 --- /dev/null +++ b/incubator/reg/1.1.0/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + EXTRA_ARGS: "server --registry r.j3ss.co" diff --git a/incubator/reg/1.1.0/ix_values.yaml b/incubator/reg/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..6ad228ab223 --- /dev/null +++ b/incubator/reg/1.1.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.1.0/questions.yaml b/incubator/reg/1.1.0/questions.yaml new file mode 100644 index 00000000000..df414b5b8d2 --- /dev/null +++ b/incubator/reg/1.1.0/questions.yaml @@ -0,0 +1,543 @@ +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: 36058 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/reg/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/reg/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/reg/1.1.0/test_values.yaml b/incubator/reg/1.1.0/test_values.yaml new file mode 100644 index 00000000000..c8102013d79 --- /dev/null +++ b/incubator/reg/1.1.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: ghcr.io/k8s-at-home/reg + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.16.1 + +# -- 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.1.0/values.yaml b/incubator/reg/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/sabnzbd/6.1.0/CONFIG.md b/incubator/sabnzbd/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/sabnzbd/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/sabnzbd/6.1.0/Chart.lock new file mode 100644 index 00000000000..815ec6e97ce --- /dev/null +++ b/incubator/sabnzbd/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:49.671418256Z" diff --git a/incubator/sabnzbd/6.1.0/Chart.yaml b/incubator/sabnzbd/6.1.0/Chart.yaml new file mode 100644 index 00000000000..61ffcefb268 --- /dev/null +++ b/incubator/sabnzbd/6.1.0/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Free and easy binary newsreader +home: https://github.com/truecharts/apps/tree/master/charts/incubator/sabnzbd +icon: https://avatars1.githubusercontent.com/u/960698?s=400&v=4 +keywords: +- sabnzbd +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: sabnzbd +sources: +- https://sabnzbd.org/ +type: application +version: 6.1.0 diff --git a/incubator/sabnzbd/6.1.0/README.md b/incubator/sabnzbd/6.1.0/README.md new file mode 100644 index 00000000000..81f60f9dec3 --- /dev/null +++ b/incubator/sabnzbd/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/sabnzbd/6.1.0/app-readme.md new file mode 100644 index 00000000000..05e7f339851 --- /dev/null +++ b/incubator/sabnzbd/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/sabnzbd/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/sabnzbd/6.1.0/ix_values.yaml b/incubator/sabnzbd/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..5304a3a7655 --- /dev/null +++ b/incubator/sabnzbd/6.1.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.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/sabnzbd/6.1.0/questions.yaml b/incubator/sabnzbd/6.1.0/questions.yaml new file mode 100644 index 00000000000..ba0e6316823 --- /dev/null +++ b/incubator/sabnzbd/6.1.0/questions.yaml @@ -0,0 +1,654 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/sabnzbd/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/sabnzbd/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/sabnzbd/6.1.0/test_values.yaml b/incubator/sabnzbd/6.1.0/test_values.yaml new file mode 100644 index 00000000000..e143275e713 --- /dev/null +++ b/incubator/sabnzbd/6.1.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.0 + +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.1.0/values.yaml b/incubator/sabnzbd/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/thelounge/1.1.0/CONFIG.md b/incubator/thelounge/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/thelounge/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/thelounge/1.1.0/Chart.lock new file mode 100644 index 00000000000..96a46b24772 --- /dev/null +++ b/incubator/thelounge/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:50.592102617Z" diff --git a/incubator/thelounge/1.1.0/Chart.yaml b/incubator/thelounge/1.1.0/Chart.yaml new file mode 100644 index 00000000000..556b35154b0 --- /dev/null +++ b/incubator/thelounge/1.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +description: The Lounge, modern web IRC client designed for self-hosting +home: https://github.com/truecharts/apps/tree/master/charts/incubator/thelounge +icon: https://avatars.githubusercontent.com/u/14336958?s=200&v=4 +keywords: +- thelounge +- IRC +- The Lounge +- docker +- thelounge-docker +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: thelounge +sources: +- https://github.com/thelounge/thelounge +version: 1.1.0 diff --git a/incubator/thelounge/1.1.0/README.md b/incubator/thelounge/1.1.0/README.md new file mode 100644 index 00000000000..45045dae076 --- /dev/null +++ b/incubator/thelounge/1.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/thelounge/1.1.0/app-readme.md new file mode 100644 index 00000000000..3bea542e86c --- /dev/null +++ b/incubator/thelounge/1.1.0/app-readme.md @@ -0,0 +1 @@ +The Lounge, modern web IRC client designed for self-hosting diff --git a/incubator/thelounge/1.1.0/charts/common-6.3.1.tgz b/incubator/thelounge/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/thelounge/1.1.0/ix_values.yaml b/incubator/thelounge/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..12e3b82367b --- /dev/null +++ b/incubator/thelounge/1.1.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.1.0/questions.yaml b/incubator/thelounge/1.1.0/questions.yaml new file mode 100644 index 00000000000..112e56a4678 --- /dev/null +++ b/incubator/thelounge/1.1.0/questions.yaml @@ -0,0 +1,548 @@ +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: 36059 + 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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/thelounge/1.1.0/templates/common.yaml b/incubator/thelounge/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/thelounge/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/thelounge/1.1.0/test_values.yaml b/incubator/thelounge/1.1.0/test_values.yaml new file mode 100644 index 00000000000..b92da5d94e9 --- /dev/null +++ b/incubator/thelounge/1.1.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.1.0/values.yaml b/incubator/thelounge/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/tvheadend/7.1.0/CONFIG.md b/incubator/tvheadend/7.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/tvheadend/7.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/tvheadend/7.1.0/Chart.lock new file mode 100644 index 00000000000..80bb6b35245 --- /dev/null +++ b/incubator/tvheadend/7.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:51.518286639Z" diff --git a/incubator/tvheadend/7.1.0/Chart.yaml b/incubator/tvheadend/7.1.0/Chart.yaml new file mode 100644 index 00000000000..6253d63c505 --- /dev/null +++ b/incubator/tvheadend/7.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: TVheadend - a TV streaming server and digital video recorder +home: https://github.com/truecharts/apps/tree/master/charts/incubator/tvheadend +icon: https://avatars.githubusercontent.com/u/1908588?s=200&v=4 +keywords: +- tvheadend +- tv +- streaming +- dvb +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: tvheadend +sources: +- https://github.com/tvheadend/tvheadend +type: application +version: 7.1.0 diff --git a/incubator/tvheadend/7.1.0/README.md b/incubator/tvheadend/7.1.0/README.md new file mode 100644 index 00000000000..ab05dc0f5d6 --- /dev/null +++ b/incubator/tvheadend/7.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 7.0.2](https://img.shields.io/badge/Version-7.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/tvheadend/7.1.0/app-readme.md new file mode 100644 index 00000000000..972a532e256 --- /dev/null +++ b/incubator/tvheadend/7.1.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.1.0/charts/common-6.3.1.tgz b/incubator/tvheadend/7.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/tvheadend/7.1.0/ix_values.yaml b/incubator/tvheadend/7.1.0/ix_values.yaml new file mode 100644 index 00000000000..9f7637469cc --- /dev/null +++ b/incubator/tvheadend/7.1.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.1.0/questions.yaml b/incubator/tvheadend/7.1.0/questions.yaml new file mode 100644 index 00000000000..c02981f9b5a --- /dev/null +++ b/incubator/tvheadend/7.1.0/questions.yaml @@ -0,0 +1,703 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/tvheadend/7.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/tvheadend/7.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/tvheadend/7.1.0/test_values.yaml b/incubator/tvheadend/7.1.0/test_values.yaml new file mode 100644 index 00000000000..2835710b41e --- /dev/null +++ b/incubator/tvheadend/7.1.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.1.0/values.yaml b/incubator/tvheadend/7.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/unifi/6.1.0/CONFIG.md b/incubator/unifi/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/unifi/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/unifi/6.1.0/Chart.lock new file mode 100644 index 00000000000..ad63da5a5ed --- /dev/null +++ b/incubator/unifi/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:52.487298356Z" diff --git a/incubator/unifi/6.1.0/Chart.yaml b/incubator/unifi/6.1.0/Chart.yaml new file mode 100644 index 00000000000..29577ad2e4f --- /dev/null +++ b/incubator/unifi/6.1.0/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Ubiquiti Network's Unifi Controller +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unifi +icon: https://dl.ubnt.com/press/logo-UniFi.png +keywords: +- ubiquiti +- unifi +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unifi +sources: +- https://github.com/jacobalberty/unifi-docker +- https://unifi-network.ui.com +type: application +version: 6.1.0 diff --git a/incubator/unifi/6.1.0/README.md b/incubator/unifi/6.1.0/README.md new file mode 100644 index 00000000000..b0b53b3eda3 --- /dev/null +++ b/incubator/unifi/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/unifi/6.1.0/app-readme.md new file mode 100644 index 00000000000..0e6732e4033 --- /dev/null +++ b/incubator/unifi/6.1.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.1.0/charts/common-6.3.1.tgz b/incubator/unifi/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/unifi/6.1.0/ix_values.yaml b/incubator/unifi/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..9fa028d1b5e --- /dev/null +++ b/incubator/unifi/6.1.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: 6.2.25 + 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.1.0/questions.yaml b/incubator/unifi/6.1.0/questions.yaml new file mode 100644 index 00000000000..fd23ba05f87 --- /dev/null +++ b/incubator/unifi/6.1.0/questions.yaml @@ -0,0 +1,802 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/unifi/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/unifi/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/unifi/6.1.0/test_values.yaml b/incubator/unifi/6.1.0/test_values.yaml new file mode 100644 index 00000000000..da696ca5e41 --- /dev/null +++ b/incubator/unifi/6.1.0/test_values.yaml @@ -0,0 +1,48 @@ +# Default values for Unifi. + +image: + repository: jacobalberty/unifi + tag: 6.2.25 + 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.1.0/values.yaml b/incubator/unifi/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/unpackerr/1.1.0/CONFIG.md b/incubator/unpackerr/1.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/unpackerr/1.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/incubator/unpackerr/1.1.0/Chart.lock new file mode 100644 index 00000000000..7052f1135f9 --- /dev/null +++ b/incubator/unpackerr/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:53.502066317Z" diff --git a/incubator/unpackerr/1.1.0/Chart.yaml b/incubator/unpackerr/1.1.0/Chart.yaml new file mode 100644 index 00000000000..671496ef0ad --- /dev/null +++ b/incubator/unpackerr/1.1.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: This application runs as a daemon on your download host. It checks for + completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may + import them +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unpackrr +icon: https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/unpackerr-logo-text.png +keywords: +- unpackerr +- sonarr +- radarr +- lidarr +- readarr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unpackerr +sources: +- https://github.com/davidnewhall/unpackerr +- https://hub.docker.com/r/golift/unpackerr +type: application +version: 1.1.0 diff --git a/incubator/unpackerr/1.1.0/README.md b/incubator/unpackerr/1.1.0/README.md new file mode 100644 index 00000000000..ac5e3b29dab --- /dev/null +++ b/incubator/unpackerr/1.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.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.1.1 | + +## 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.1.0/app-readme.md b/incubator/unpackerr/1.1.0/app-readme.md new file mode 100644 index 00000000000..92412a850ac --- /dev/null +++ b/incubator/unpackerr/1.1.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.1.0/charts/common-6.3.1.tgz b/incubator/unpackerr/1.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/incubator/unpackerr/1.1.0/ix_values.yaml b/incubator/unpackerr/1.1.0/ix_values.yaml new file mode 100644 index 00000000000..0cf106bb30c --- /dev/null +++ b/incubator/unpackerr/1.1.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: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.7.2 + +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.1.0/questions.yaml b/incubator/unpackerr/1.1.0/questions.yaml new file mode 100644 index 00000000000..bf8c9a1d8a2 --- /dev/null +++ b/incubator/unpackerr/1.1.0/questions.yaml @@ -0,0 +1,541 @@ +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: 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/incubator/unpackerr/1.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/unpackerr/1.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/unpackerr/1.1.0/test_values.yaml b/incubator/unpackerr/1.1.0/test_values.yaml new file mode 100644 index 00000000000..1b646dbeb3b --- /dev/null +++ b/incubator/unpackerr/1.1.0/test_values.yaml @@ -0,0 +1,45 @@ +# Default values for Sonarr. + +image: + repository: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.7.2 + +strategy: + type: Recreate + +service: + main: + 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.1.0/values.yaml b/incubator/unpackerr/1.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/collabora-online/6.1.0/CONFIG.md b/stable/collabora-online/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/collabora-online/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/collabora-online/6.1.0/Chart.lock new file mode 100644 index 00000000000..42c9b14cacb --- /dev/null +++ b/stable/collabora-online/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:53.286743434Z" diff --git a/stable/collabora-online/6.1.0/Chart.yaml b/stable/collabora-online/6.1.0/Chart.yaml new file mode 100644 index 00000000000..2b6915a64a7 --- /dev/null +++ b/stable/collabora-online/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: "Collabora Online Development Edition \u2013 an awesome, Online Office\ + \ suite image suitable for home use." +home: https://github.com/truecharts/apps/tree/master/charts/stable/collabora-online +icon: https://truecharts.org/_static/img/collabora-icon.png +keywords: +- collabora-online +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: collabora-online +sources: +- https://hub.docker.com/r/collabora/code +- https://www.collaboraoffice.com/code/docker/ +type: application +version: 6.1.0 diff --git a/stable/collabora-online/6.1.0/README.md b/stable/collabora-online/6.1.0/README.md new file mode 100644 index 00000000000..2081d75183d --- /dev/null +++ b/stable/collabora-online/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/collabora-online/6.1.0/app-readme.md new file mode 100644 index 00000000000..f25a2567984 --- /dev/null +++ b/stable/collabora-online/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/collabora-online/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/collabora-online/6.1.0/ix_values.yaml b/stable/collabora-online/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..1d389835183 --- /dev/null +++ b/stable/collabora-online/6.1.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.9.2 + pullPolicy: IfNotPresent +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/collabora-online/6.1.0/questions.yaml b/stable/collabora-online/6.1.0/questions.yaml new file mode 100644 index 00000000000..356aaaff40e --- /dev/null +++ b/stable/collabora-online/6.1.0/questions.yaml @@ -0,0 +1,510 @@ +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: "Domains will be using collabora" + description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' + schema: + type: string + default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld' + 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: "" + 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: 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' + # 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/collabora-online/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/collabora-online/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/collabora-online/6.1.0/test_values.yaml b/stable/collabora-online/6.1.0/test_values.yaml new file mode 100644 index 00000000000..ed35596f7a4 --- /dev/null +++ b/stable/collabora-online/6.1.0/test_values.yaml @@ -0,0 +1,22 @@ +image: + repository: collabora/code + tag: 6.4.9.2 + 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.1.0/values.yaml b/stable/collabora-online/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deepstack-cpu/4.1.0/CONFIG.md b/stable/deepstack-cpu/4.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/deepstack-cpu/4.1.0/Chart.lock new file mode 100644 index 00000000000..9742c9d0cd4 --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:54.526680439Z" diff --git a/stable/deepstack-cpu/4.1.0/Chart.yaml b/stable/deepstack-cpu/4.1.0/Chart.yaml new file mode 100644 index 00000000000..5d879f07817 --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: DeepStack AI provides AI features including Face Recognition, Object + Detection, Scene Recognition and custom AI Models +home: https://github.com/truecharts/apps/tree/master/charts/stable/deepstack-cpu +icon: https://deepquest.sfo2.digitaloceanspaces.com/deepstackcc/static/img/deepstacklogo.png +keywords: +- AI +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: deepstack-cpu +sources: +- https://github.com/johnolafenwa/DeepStack +- https://hub.docker.com/r/deepquestai/deepstack +- https://www.deepstack.cc/ +type: application +version: 4.1.0 diff --git a/stable/deepstack-cpu/4.1.0/README.md b/stable/deepstack-cpu/4.1.0/README.md new file mode 100644 index 00000000000..11052faaedd --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 4.0.2](https://img.shields.io/badge/Version-4.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/deepstack-cpu/4.1.0/app-readme.md new file mode 100644 index 00000000000..26df7a8b5db --- /dev/null +++ b/stable/deepstack-cpu/4.1.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.1.0/charts/common-6.3.1.tgz b/stable/deepstack-cpu/4.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/deepstack-cpu/4.1.0/ix_values.yaml b/stable/deepstack-cpu/4.1.0/ix_values.yaml new file mode 100644 index 00000000000..4bff0fb6e80 --- /dev/null +++ b/stable/deepstack-cpu/4.1.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.1.0/questions.yaml b/stable/deepstack-cpu/4.1.0/questions.yaml new file mode 100644 index 00000000000..eced745a3cf --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/questions.yaml @@ -0,0 +1,660 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/deepstack-cpu/4.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deepstack-cpu/4.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deepstack-cpu/4.1.0/test_values.yaml b/stable/deepstack-cpu/4.1.0/test_values.yaml new file mode 100644 index 00000000000..939cd7e6ce4 --- /dev/null +++ b/stable/deepstack-cpu/4.1.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.1.0/values.yaml b/stable/deepstack-cpu/4.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/emby/6.1.0/CONFIG.md b/stable/emby/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/emby/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/emby/6.1.0/Chart.lock new file mode 100644 index 00000000000..cf4b1875152 --- /dev/null +++ b/stable/emby/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:55.538639387Z" diff --git a/stable/emby/6.1.0/Chart.yaml b/stable/emby/6.1.0/Chart.yaml new file mode 100644 index 00000000000..18c82586f51 --- /dev/null +++ b/stable/emby/6.1.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Emby Server is a home media server +home: https://github.com/truecharts/apps/master/stable/emby +icon: https://truecharts.org/_static/img/emby-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: dan.sheridan@postman.org.uk + name: djs52 + url: truecharts.org +name: emby +sources: +- https://hub.docker.com/r/linuxserver/emby +- https://github.com/linuxserver/docker-emby.git +type: application +version: 6.1.0 diff --git a/stable/emby/6.1.0/README.md b/stable/emby/6.1.0/README.md new file mode 100644 index 00000000000..d0eb60ecf18 --- /dev/null +++ b/stable/emby/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/emby/6.1.0/app-readme.md new file mode 100644 index 00000000000..14cf8a3a658 --- /dev/null +++ b/stable/emby/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/emby/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/emby/6.1.0/ix_values.yaml b/stable/emby/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..055f931cb08 --- /dev/null +++ b/stable/emby/6.1.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.1.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.1.0/questions.yaml b/stable/emby/6.1.0/questions.yaml new file mode 100644 index 00000000000..488b5061ab1 --- /dev/null +++ b/stable/emby/6.1.0/questions.yaml @@ -0,0 +1,655 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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" + # 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.1.0/templates/common.yaml b/stable/emby/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/emby/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/emby/6.1.0/test_values.yaml b/stable/emby/6.1.0/test_values.yaml new file mode 100644 index 00000000000..d8b77253374 --- /dev/null +++ b/stable/emby/6.1.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.1.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.1.0/values.yaml b/stable/emby/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/esphome/6.1.0/CONFIG.md b/stable/esphome/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/esphome/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/esphome/6.1.0/Chart.lock new file mode 100644 index 00000000000..6ab9d47872d --- /dev/null +++ b/stable/esphome/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:56.48081972Z" diff --git a/stable/esphome/6.1.0/Chart.yaml b/stable/esphome/6.1.0/Chart.yaml new file mode 100644 index 00000000000..74dca96e3a3 --- /dev/null +++ b/stable/esphome/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful + configuration files and control them remotely through Home Automation systems. +home: https://github.com/truecharts/apps/tree/master/charts/stable/esphome +icon: https://esphome.io/_images/logo.svg +keywords: +- esphome +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: esphome +sources: +- https://github.com/esphome/esphome +- https://hub.docker.com/u/esphome +type: application +version: 6.1.0 diff --git a/stable/esphome/6.1.0/README.md b/stable/esphome/6.1.0/README.md new file mode 100644 index 00000000000..257bda3cc2e --- /dev/null +++ b/stable/esphome/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/esphome/6.1.0/app-readme.md new file mode 100644 index 00000000000..1854a47b15a --- /dev/null +++ b/stable/esphome/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/esphome/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/esphome/6.1.0/ix_values.yaml b/stable/esphome/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..74246b558c1 --- /dev/null +++ b/stable/esphome/6.1.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.18.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/esphome/6.1.0/questions.yaml b/stable/esphome/6.1.0/questions.yaml new file mode 100644 index 00000000000..9be4769c307 --- /dev/null +++ b/stable/esphome/6.1.0/questions.yaml @@ -0,0 +1,750 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/esphome/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/esphome/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/esphome/6.1.0/test_values.yaml b/stable/esphome/6.1.0/test_values.yaml new file mode 100644 index 00000000000..2bc95bc967c --- /dev/null +++ b/stable/esphome/6.1.0/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for esphome. + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 1.18.0 + +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.1.0/values.yaml b/stable/esphome/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/handbrake/6.1.0/CONFIG.md b/stable/handbrake/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/handbrake/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/handbrake/6.1.0/Chart.lock new file mode 100644 index 00000000000..39792294037 --- /dev/null +++ b/stable/handbrake/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:57.431474315Z" diff --git a/stable/handbrake/6.1.0/Chart.yaml b/stable/handbrake/6.1.0/Chart.yaml new file mode 100644 index 00000000000..0d7e0dcd74d --- /dev/null +++ b/stable/handbrake/6.1.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: HandBrake is a tool for converting video from nearly any format to a + selection of modern, widely supported codecs. +home: https://github.com/truecharts/apps/tree/master/charts/stable/handbrake +icon: https://handbrake.fr/img/logo.png +keywords: +- handbrake +- encode +- media +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: handbrake +sources: +- https://github.com/jlesage/docker-handbrake +- https://hub.docker.com/r/jlesage/handbrake/ +- https://handbrake.fr/ +type: application +version: 6.1.0 diff --git a/stable/handbrake/6.1.0/README.md b/stable/handbrake/6.1.0/README.md new file mode 100644 index 00000000000..c3c0a6a4d95 --- /dev/null +++ b/stable/handbrake/6.1.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/handbrake/6.1.0/app-readme.md new file mode 100644 index 00000000000..483e45f40d0 --- /dev/null +++ b/stable/handbrake/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/handbrake/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/handbrake/6.1.0/ix_values.yaml b/stable/handbrake/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..a47a4681e9c --- /dev/null +++ b/stable/handbrake/6.1.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.23.2 + 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.1.0/questions.yaml b/stable/handbrake/6.1.0/questions.yaml new file mode 100644 index 00000000000..05c587beafa --- /dev/null +++ b/stable/handbrake/6.1.0/questions.yaml @@ -0,0 +1,816 @@ +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: "/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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/handbrake/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/handbrake/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/handbrake/6.1.0/test_values.yaml b/stable/handbrake/6.1.0/test_values.yaml new file mode 100644 index 00000000000..9443c18f116 --- /dev/null +++ b/stable/handbrake/6.1.0/test_values.yaml @@ -0,0 +1,51 @@ +image: + repository: jlesage/handbrake + tag: v1.23.2 + 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.1.0/values.yaml b/stable/handbrake/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/home-assistant/6.1.0/CONFIG.md b/stable/home-assistant/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/home-assistant/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/home-assistant/6.1.0/Chart.lock new file mode 100644 index 00000000000..5c72773306a --- /dev/null +++ b/stable/home-assistant/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:58.33426764Z" diff --git a/stable/home-assistant/6.1.0/Chart.yaml b/stable/home-assistant/6.1.0/Chart.yaml new file mode 100644 index 00000000000..5d7d50002c3 --- /dev/null +++ b/stable/home-assistant/6.1.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: home-assistant App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/stable/home-assistant +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Home_Assistant_Logo.svg/519px-Home_Assistant_Logo.svg.png +keywords: +- home-assistant +- hass +- homeassistant +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: home-assistant +sources: +- https://github.com/home-assistant/home-assistant +- https://github.com/cdr/code-server +type: application +version: 6.1.0 diff --git a/stable/home-assistant/6.1.0/README.md b/stable/home-assistant/6.1.0/README.md new file mode 100644 index 00000000000..166504ca887 --- /dev/null +++ b/stable/home-assistant/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/home-assistant/6.1.0/app-readme.md new file mode 100644 index 00000000000..822d932e2e4 --- /dev/null +++ b/stable/home-assistant/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/home-assistant/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/home-assistant/6.1.0/ix_values.yaml b/stable/home-assistant/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..e3bf2093286 --- /dev/null +++ b/stable/home-assistant/6.1.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.6.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/home-assistant/6.1.0/questions.yaml b/stable/home-assistant/6.1.0/questions.yaml new file mode 100644 index 00000000000..81d51d3a978 --- /dev/null +++ b/stable/home-assistant/6.1.0/questions.yaml @@ -0,0 +1,662 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/home-assistant/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/home-assistant/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/home-assistant/6.1.0/templates/secret.yaml b/stable/home-assistant/6.1.0/templates/secret.yaml new file mode 100644 index 00000000000..19f769cf59b --- /dev/null +++ b/stable/home-assistant/6.1.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.1.0/test_values.yaml b/stable/home-assistant/6.1.0/test_values.yaml new file mode 100644 index 00000000000..faaf2abce15 --- /dev/null +++ b/stable/home-assistant/6.1.0/test_values.yaml @@ -0,0 +1,83 @@ +# Default values for Home Assistant + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.6.3 + +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.1.0/values.yaml b/stable/home-assistant/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jackett/6.1.0/CONFIG.md b/stable/jackett/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/jackett/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/jackett/6.1.0/Chart.lock new file mode 100644 index 00000000000..6fbdd20aa4b --- /dev/null +++ b/stable/jackett/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:01:59.357136117Z" diff --git a/stable/jackett/6.1.0/Chart.yaml b/stable/jackett/6.1.0/Chart.yaml new file mode 100644 index 00000000000..467de386bd4 --- /dev/null +++ b/stable/jackett/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/jackett +icon: https://truecharts.org/_static/img/jackett-icon.png +keywords: +- jackett +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jackett +sources: +- https://github.com/Jackett/Jackett +type: application +version: 6.1.0 diff --git a/stable/jackett/6.1.0/README.md b/stable/jackett/6.1.0/README.md new file mode 100644 index 00000000000..0f814f78701 --- /dev/null +++ b/stable/jackett/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/jackett/6.1.0/app-readme.md new file mode 100644 index 00000000000..7e8f54afb7e --- /dev/null +++ b/stable/jackett/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/jackett/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/jackett/6.1.0/ix_values.yaml b/stable/jackett/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..aec20284eb4 --- /dev/null +++ b/stable/jackett/6.1.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/stable/jackett/6.1.0/questions.yaml b/stable/jackett/6.1.0/questions.yaml new file mode 100644 index 00000000000..c987a31f514 --- /dev/null +++ b/stable/jackett/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/jackett/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jackett/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jackett/6.1.0/test_values.yaml b/stable/jackett/6.1.0/test_values.yaml new file mode 100644 index 00000000000..90d1059965f --- /dev/null +++ b/stable/jackett/6.1.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.263 + +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.1.0/values.yaml b/stable/jackett/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jellyfin/6.1.0/CONFIG.md b/stable/jellyfin/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/jellyfin/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/jellyfin/6.1.0/Chart.lock new file mode 100644 index 00000000000..a734bd575f7 --- /dev/null +++ b/stable/jellyfin/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:00.316822373Z" diff --git a/stable/jellyfin/6.1.0/Chart.yaml b/stable/jellyfin/6.1.0/Chart.yaml new file mode 100644 index 00000000000..e7f6d414920 --- /dev/null +++ b/stable/jellyfin/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Jellyfin is a Free Software Media System +home: https://github.com/truecharts/apps/tree/master/charts/stable/jellyfin +icon: https://truecharts.org/_static/img/jellyfin-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jellyfin +sources: +- https://github.com/jellyfin/jellyfin +type: application +version: 6.1.0 diff --git a/stable/jellyfin/6.1.0/README.md b/stable/jellyfin/6.1.0/README.md new file mode 100644 index 00000000000..e3816d7b66e --- /dev/null +++ b/stable/jellyfin/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/jellyfin/6.1.0/app-readme.md new file mode 100644 index 00000000000..64d3430474f --- /dev/null +++ b/stable/jellyfin/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/jellyfin/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/jellyfin/6.1.0/ix_values.yaml b/stable/jellyfin/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..13fabd7f7fe --- /dev/null +++ b/stable/jellyfin/6.1.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.5 + +# 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.1.0/questions.yaml b/stable/jellyfin/6.1.0/questions.yaml new file mode 100644 index 00000000000..a2546f0f513 --- /dev/null +++ b/stable/jellyfin/6.1.0/questions.yaml @@ -0,0 +1,655 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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" + # 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.1.0/templates/common.yaml b/stable/jellyfin/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jellyfin/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jellyfin/6.1.0/test_values.yaml b/stable/jellyfin/6.1.0/test_values.yaml new file mode 100644 index 00000000000..0e62afd1831 --- /dev/null +++ b/stable/jellyfin/6.1.0/test_values.yaml @@ -0,0 +1,29 @@ +# Default values for jellyfin. + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.7.5 + +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.1.0/values.yaml b/stable/jellyfin/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/kms/6.1.0/CONFIG.md b/stable/kms/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/kms/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/kms/6.1.0/Chart.lock new file mode 100644 index 00000000000..5fc592fd0d4 --- /dev/null +++ b/stable/kms/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:01.299398449Z" diff --git a/stable/kms/6.1.0/Chart.yaml b/stable/kms/6.1.0/Chart.yaml new file mode 100644 index 00000000000..e70ef308c51 --- /dev/null +++ b/stable/kms/6.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: minimal +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Private Windows Activation Server for development and testing +home: https://github.com/truecharts/apps/tree/master/charts/stable/kms +icon: https://truecharts.org/_static/img/kms-icon.jpg +keywords: +- kms +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: kms +sources: +- https://github.com/SystemRage/py-kms +type: application +version: 6.1.0 diff --git a/stable/kms/6.1.0/README.md b/stable/kms/6.1.0/README.md new file mode 100644 index 00000000000..9532af6d7fc --- /dev/null +++ b/stable/kms/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/kms/6.1.0/app-readme.md new file mode 100644 index 00000000000..79791f43227 --- /dev/null +++ b/stable/kms/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/kms/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/kms/6.1.0/ix_values.yaml b/stable/kms/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..05f3f76e0a3 --- /dev/null +++ b/stable/kms/6.1.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.1.0/questions.yaml b/stable/kms/6.1.0/questions.yaml new file mode 100644 index 00000000000..d366e84898b --- /dev/null +++ b/stable/kms/6.1.0/questions.yaml @@ -0,0 +1,394 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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.1.0/templates/common.yaml b/stable/kms/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/kms/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/kms/6.1.0/test_values.yaml b/stable/kms/6.1.0/test_values.yaml new file mode 100644 index 00000000000..8aabb450d99 --- /dev/null +++ b/stable/kms/6.1.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.1.0/values.yaml b/stable/kms/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lidarr/6.1.0/CONFIG.md b/stable/lidarr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/lidarr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/lidarr/6.1.0/Chart.lock new file mode 100644 index 00000000000..bccc1450168 --- /dev/null +++ b/stable/lidarr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:03.327558712Z" diff --git a/stable/lidarr/6.1.0/Chart.yaml b/stable/lidarr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..4f0e0526cda --- /dev/null +++ b/stable/lidarr/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Looks and smells like Sonarr but made for music +home: https://github.com/truecharts/apps/tree/master/charts/stable/lidarr +icon: https://avatars3.githubusercontent.com/u/28475832?s=400&v=4 +keywords: +- lidarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lidarr +sources: +- https://github.com/Lidarr/Lidarr +type: application +version: 6.1.0 diff --git a/stable/lidarr/6.1.0/README.md b/stable/lidarr/6.1.0/README.md new file mode 100644 index 00000000000..f501b869f0c --- /dev/null +++ b/stable/lidarr/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/lidarr/6.1.0/app-readme.md new file mode 100644 index 00000000000..399c4eb028a --- /dev/null +++ b/stable/lidarr/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/lidarr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/lidarr/6.1.0/ix_values.yaml b/stable/lidarr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..8e1f0287c69 --- /dev/null +++ b/stable/lidarr/6.1.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.2226 + +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.1.0/questions.yaml b/stable/lidarr/6.1.0/questions.yaml new file mode 100644 index 00000000000..8562768ab26 --- /dev/null +++ b/stable/lidarr/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/lidarr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lidarr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lidarr/6.1.0/test_values.yaml b/stable/lidarr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..109af474bbe --- /dev/null +++ b/stable/lidarr/6.1.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.2226 + +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.1.0/values.yaml b/stable/lidarr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/ombi/6.1.0/CONFIG.md b/stable/ombi/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/ombi/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/ombi/6.1.0/Chart.lock new file mode 100644 index 00000000000..75384372eee --- /dev/null +++ b/stable/ombi/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:04.263223931Z" diff --git a/stable/ombi/6.1.0/Chart.yaml b/stable/ombi/6.1.0/Chart.yaml new file mode 100644 index 00000000000..fcbba9e4033 --- /dev/null +++ b/stable/ombi/6.1.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Want a Movie or TV Show on Plex or Emby? Use Ombi! +home: https://github.com/truecharts/apps/tree/master/charts/stable/ombi +icon: https://img3.androidappsapk.co/wiLDnuwrCWctiiW62ALcj4eIpNbzeRH_UNPo7eqlpYvGkCQYSTybaI4xVRLKGjnlamlV=s300 +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.1.0 diff --git a/stable/ombi/6.1.0/README.md b/stable/ombi/6.1.0/README.md new file mode 100644 index 00000000000..32906611a43 --- /dev/null +++ b/stable/ombi/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/ombi/6.1.0/app-readme.md new file mode 100644 index 00000000000..b573c95c432 --- /dev/null +++ b/stable/ombi/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/ombi/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/ombi/6.1.0/ix_values.yaml b/stable/ombi/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..5851f32f066 --- /dev/null +++ b/stable/ombi/6.1.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.1403 + +## +# 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.1.0/questions.yaml b/stable/ombi/6.1.0/questions.yaml new file mode 100644 index 00000000000..8fa61a5554e --- /dev/null +++ b/stable/ombi/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/ombi/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/ombi/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ombi/6.1.0/test_values.yaml b/stable/ombi/6.1.0/test_values.yaml new file mode 100644 index 00000000000..2112225d5de --- /dev/null +++ b/stable/ombi/6.1.0/test_values.yaml @@ -0,0 +1,40 @@ +# Default values for Ombi. + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1403 + +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.1.0/values.yaml b/stable/ombi/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/plex/5.1.0/CONFIG.md b/stable/plex/5.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/plex/5.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/plex/5.1.0/Chart.lock new file mode 100644 index 00000000000..b441cbc484c --- /dev/null +++ b/stable/plex/5.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:05.226028376Z" diff --git a/stable/plex/5.1.0/Chart.yaml b/stable/plex/5.1.0/Chart.yaml new file mode 100644 index 00000000000..2709bf19a4e --- /dev/null +++ b/stable/plex/5.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/plex +icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png +keywords: +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: plex +sources: null +type: application +version: 5.1.0 diff --git a/stable/plex/5.1.0/README.md b/stable/plex/5.1.0/README.md new file mode 100644 index 00000000000..4381bcb9ec9 --- /dev/null +++ b/stable/plex/5.1.0/README.md @@ -0,0 +1,49 @@ +# Introduction + +![Version: 5.0.2](https://img.shields.io/badge/Version-5.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/plex/5.1.0/app-readme.md new file mode 100644 index 00000000000..4d5dfd7c1f2 --- /dev/null +++ b/stable/plex/5.1.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.1.0/charts/common-6.3.1.tgz b/stable/plex/5.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/plex/5.1.0/ix_values.yaml b/stable/plex/5.1.0/ix_values.yaml new file mode 100644 index 00000000000..7af24f5f698 --- /dev/null +++ b/stable/plex/5.1.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/plex + pullPolicy: IfNotPresent + tag: v1.22.3.4523-d0ce30438 + +# 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/plex/5.1.0/questions.yaml b/stable/plex/5.1.0/questions.yaml new file mode 100644 index 00000000000..e00fab98e11 --- /dev/null +++ b/stable/plex/5.1.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: 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" + schema: + type: string + default: "" + - 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: "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: 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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" + # 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.1.0/templates/common.yaml b/stable/plex/5.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/plex/5.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/plex/5.1.0/test_values.yaml b/stable/plex/5.1.0/test_values.yaml new file mode 100644 index 00000000000..7682d88cd14 --- /dev/null +++ b/stable/plex/5.1.0/test_values.yaml @@ -0,0 +1,29 @@ +# Default values for Plex. + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.22.3.4523-d0ce30438 + +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 diff --git a/stable/plex/5.1.0/values.yaml b/stable/plex/5.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/radarr/6.1.0/CONFIG.md b/stable/radarr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/radarr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/radarr/6.1.0/Chart.lock new file mode 100644 index 00000000000..52144f2b817 --- /dev/null +++ b/stable/radarr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:06.135801024Z" diff --git a/stable/radarr/6.1.0/Chart.yaml b/stable/radarr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..d609c0ca9f1 --- /dev/null +++ b/stable/radarr/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: "A fork of Sonarr to work with movies \xE0 la Couchpotato" +home: https://github.com/truecharts/apps/tree/master/charts/stable/radarr +icon: https://nzbusenet.com/wp-content/uploads/2017/10/radarr-logo.png +keywords: +- radarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: radarr +sources: +- https://github.com/Radarr/Radarr +type: application +version: 6.1.0 diff --git a/stable/radarr/6.1.0/README.md b/stable/radarr/6.1.0/README.md new file mode 100644 index 00000000000..149934b098a --- /dev/null +++ b/stable/radarr/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/radarr/6.1.0/app-readme.md new file mode 100644 index 00000000000..a48f3396005 --- /dev/null +++ b/stable/radarr/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/radarr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/radarr/6.1.0/ix_values.yaml b/stable/radarr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..095e494f526 --- /dev/null +++ b/stable/radarr/6.1.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.1.0/questions.yaml b/stable/radarr/6.1.0/questions.yaml new file mode 100644 index 00000000000..50cc928ec78 --- /dev/null +++ b/stable/radarr/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/radarr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/radarr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/radarr/6.1.0/test_values.yaml b/stable/radarr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..64bfadaa7d0 --- /dev/null +++ b/stable/radarr/6.1.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.1.0/values.yaml b/stable/radarr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sonarr/6.1.0/CONFIG.md b/stable/sonarr/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/sonarr/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/sonarr/6.1.0/Chart.lock new file mode 100644 index 00000000000..7871a4ff5de --- /dev/null +++ b/stable/sonarr/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:07.084384512Z" diff --git a/stable/sonarr/6.1.0/Chart.yaml b/stable/sonarr/6.1.0/Chart.yaml new file mode 100644 index 00000000000..7232239b65a --- /dev/null +++ b/stable/sonarr/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Smart PVR for newsgroup and bittorrent users +home: https://github.com/truecharts/apps/tree/master/charts/stable/sonarr +icon: https://github.com/Sonarr/Sonarr/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- sonarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: sonarr +sources: +- https://github.com/Sonarr/Sonarr +type: application +version: 6.1.0 diff --git a/stable/sonarr/6.1.0/README.md b/stable/sonarr/6.1.0/README.md new file mode 100644 index 00000000000..84bb3be993f --- /dev/null +++ b/stable/sonarr/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/sonarr/6.1.0/app-readme.md new file mode 100644 index 00000000000..07c189ecff0 --- /dev/null +++ b/stable/sonarr/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/sonarr/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 zcmV)dK&QVSiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJcic9TI110dzy1^$+Sy3{so8qB)6Z(2)ksd_9b3_{$5E3&RiOYBstScdl+9*YIy#ubf`r#_ zmi%q`&-(iM`tJ5N`~Uj-y8Zw4=Ubb9+t^;;-PqmQ-dNxM+xo`l_U`82!1_JV(s-(p zz~XP~cgAHm?ho?79RG-l5@+cc%r^%x&(+T~OVJ=kWmMptus7dUX+-}52|h1iaSbL} z0ZxkwvEfq=rr8XQ!IY4^9FIm9m`tnlFv?~lQdB5nWkxX1%MmFM8qHuyP%#qk`9K`t zh$508;2aWIlpzOIm8gial%SL_sMYBC?)Lin^PQc+CAz-KintsPhM-0^7)nZq?8RUR z1e(k09I1wW{g1tkaAP-IAFh8rm_eKph*MNBU}y$$G6p!EWdBtI4zuE706+?9do>0C zP!-7-SOpc7%U@9v|5q7Jvx=Z}n4t4>oL+=!qG0_{q!^YP-+Z&>fyIl7R*>r)jb#%D zbJ?EVa4Xyx^y_~y|K~8NPz@F=7*(OcBTnG{GN0HetUeRg%zwD2DA1qO<{pmP0AQ1!84Dj3zk6RC)}6 z0#Mf+(1~4SNrDOm2Bq*kK@3v;H5>r(A?B0AMp_pIbbf^F`;RceG02!4D*-GhJ$aH{ z&rnL%Kn&3=OG`vRR)CT~f+kf`A~FDgPqDhN$*43Vkb}%phP*B~(%_5~f&tKLjls<) z9bf{_QL+duUO@+QRL#y&K|3l&B`#15@+_u;sX%#xBUp~XMhnNP{Gxy{0wpORK^NDo z=(kw`4iz!w8kjR~a+$%H`4&Y5f&_t;7)@Z6kW~QF7`)Ar1g978@)#1)5fs*mXw3<7 z0{bC7Lrq*+173NGn4Nk1J+g${zg(3)TK*upe}A3&ADIm8Ja zYpj;`dl4{YRa|fY>@TaT*0omM92P`Q7*PLG)8j4gQ3|9$b4+DFnBtOT#WhIq3=`Jt z{KNPB{cHMq47LUXJcAeYgk`_z5XnkR%kl9depsalq)Q)x7uNf{N)nJ~365xW`s{lc!BbcCK@C5vqq;NO{{~6tV$e1#^9%DlE&T#rxO=|Fj&FdNbV7^;lS5OX)-@PL^!N0SH z9-|^cDWRi)7JN~cdxK_Kaot*UP@-avBeWkyS(TDn@aHJP6O2l5HAQ5K3IKs93Lq~F z%4t?5F*rwn%Zzvc#9y-65}MX4fMfv1G5sIy2MeY{s!ABAQ?dStrOT#0k5H7(5N)eSWF{nzMUKnd4AZV5+kRYYg1%VhP?@BJ9DAGL3 zD_V*%C@K&ESC~v0Bq0i~vkH`qpV#5w3HT=h@Cq^!2btI|kuEeT;V6xY>ztBxel2Ij z8gB|?IqeWMp<1uE5^FutbO=UIHs34l?A%2M)KQwzZaCny|nV%3Usynk}?(+_VC z$6$6n%wbtlEnGDB4a6xx=^PhX%0%NF7MPCjG6biBNpi%~7M@(E1b&c<^myS~-?_Q2U;AkeVNk^2Ac1HIK6^w$2 zRYuWac9mYiA_n`%uW02Hgp`>@t)U`C1eGDqMsXIEBLd6Ia)i@gQACC@Byb3GCRb?Z zjI>@I%3d9!4|!IiVV=c9YAzKsUY54KiYrulFJSNCKx60TQrfs z#hYVDreih_!ZeE!<-%YfdsQq9RO(Og#T%Hj`n36|K?NPsgvtmuxX-V-e2JzguBgnH^$uvYBZdMz0p)c` z&}>NCGK>mLa0C;%h$KmNRmwR}mFug!UR+Yn=5Fd2( zfp#b+V49U|O`*e{;Phf3U&y8VrzuK>sH2~b5V^{VOE80%i0U+m%POh|r6phVsQ@`U zNGfXKe~XKf&?)mhuX{GofGC;I5FK)%#pF+*R}TQ57`SoCD>CsGcrdwYQCS`i6rqfJ zdUdI-FewBRaCmeg`BJWl@l+L3>Zfr=N+Ghq3|@l*m02=JAT5(DyR346%aYE@ECppY zL*QR(s!^y_UNTw^7+5Zo0MJDseTHI$GGt1UvFSbr!G>I3UNTWS63PW5Pb^fFxNPE< z#cV)}Rk5UE_~)MsH2LM1l@{R;Wod+RQjTQ3Vaged(+m1Br9wlK7v)eC96jOd3r;VF zWQyeL)d61yPWaE)IK3=|aVMstU^{Qs35qHO;76yXGT}9 zT9qt&!b|W3Mb}Y+e1KE|UCHDVlCHvl8psE-bP4Ek9fJR%i?3Kc09|5H3~(w}XsT$! za!9Qnv$n4LYA9eFV==O$TVtw$IPo19**Q{Eg^d9Ip~ukT>yE6;R})33_CCRLl%ld6 z76`_e{Z$fJkSZVM6n!~bwX|-!;GLr+yBhEUN@;y9K!MyrH!b6a0)V7Jv*=#dE{ntf zJK)-g>9;WKaIP1g(NAYoZc&+fh07^@E2K7kSAgs)RltuGY`#*|mV;mCi2ie;B*7}DD2HS!>jsrNf!`#Kgd%6Yc}HY+hq4p9QH zPf(PlaXAK?;$w~q%p?wfy|FId6Ffs%MH=NN5GPfEPNxMbDZOK`GpG&v7~)%vL^TQA zLs5Ocm$9gz|EUI}*{UUvMmO*;Y&f29dAjgm6mr--6iXfGk_V!I{ihm+dYhI!2wkA> zFa)#|O!M1m>@=iGCF z2^+Jed%W*>hxP8dQ)QD~tN6~g+PFS6cmnooZAq1kU`q8P7{}bvLX{zAtHqdYj>6&^ zT%v1G;u%h0A=Rg^sV?}n1QU9d6H#EyoOw8H%%T!71GMCSYi)2$rn>GMYO3++#CCJ= zjFKsxVJnqT^|)rV2GWeXJV+FV;i@+7mr3KuBm?Q%FJ{V;{6xdoiI+fzfbO&Z>;JSzy$yf9)! z^IF=drsZxwq^TaS4e2fs!jMTBQV;IV0Z!|wl8zDHG0GV)I)=Cg=a!?KbKE<`J;U5s z8W@O_ZQ#{)vVx4Qvd6SsUSuSTvLw{Lom4r4q4|Z+=n{6e#{Yjp|2RE3K4V^!vv-Hb zXL@zM+R;y9-OJ%s3LrQ=IIjKXX$&q9sb?Ne2`cDNdiVA<`^x5N?Rd~y&j}tg=vI@I ziCRxgwim&gYOVX+`)15y)@tssog$!l9@v-A?A@~(^cn53QfykpV&&AjLCF}Ls-041 ziR#NKPD_Gd46=!ahn7Ce84A`LA?;z|eWx6X#nh9&`;vE^F3#8rUejJvZI1`ZJSHWx z7#*uIpq91Q8I1o46PQM*V7+uC%jtr!)H!umKag_yP{_>TNgG(tG)d{$xiI7OqCjQY zXJxL7-fd|XaQsWND6qiNENYlbv)bfpm0F_eUDsv-#wWETmU~~D6?5Ab=jE-mauAz? zRuaKH`D2h?;Piv1C`rm8jM(-aZFq1mYqwNJ1YK;Wpb!6^fVUiYsr!>z6x%nffDTaY z5d^HgvL#Qf2{+A3QcpI0;Ic1rsU8Z_zt2iSIlzbl-=n17E0fcZdk|}pLg9@0G#-kr zsW8bRnAAeYCW_inHBl5my`0cbwE|I7b_~fh1pP@@3@)BLP}z~{7?z4g$#m! z?17DNV|%#XfON{#$YT~RWqj21`UWOB7Yu!#PpSg3ou&xYLxG~PpzzI_-jLY}*AKF$ ze^^rb^!157Tte{Aj7-H&8r!g>OAQ}cv>b`8B;h_}j!Ny*@!@NXnjsPP zAE$_K)2n@SrUpRp-Md${g?w66=xF~0oE+@GehDH}5Imt8f^-Vd{)u3M4p2c1M}#^2 zpU9Es8pQT0mea9P63XG%xFnu+>>ZuuB$L4gFxABhZ39XW+pxi@pq|2+WmQV(()RA; zpCCqT?X?y~f@UoXBLA$dgBrEg`uFoM1CD{VLi6%3+S2}&eX zuSsb1sBH+b_t~J;aJ;c7j52KXzwrt^v=bc@ZFIYu!ouwAYRY_eg;?hEXbqrQPOcAe zvBoA670#3n?y=Gg?|dFtK*)*(Xe#}gfF9bUz%qnJ6Hhg9F= zQ0dPf(&W0~7F|%I05Ao%L@XZbYGYNiA%|`*ins%$Kn5edvdmBxKI@cRHy?B^n6tew8xg5XE3cBV&~fO%6J(l7uSq1|+s#GVd^RWsx-yO|wkJmpNL)aq2L*o;TEo zx^Na>K_2W@po#@e0Q3QuY=lM$#Iv=!(}j0feWw%8P@gnkk}PyUVKC&^Syc=fNR5Vf z!i0&k^jCR=goP}f834{gEr1Y$vN|7fUwc~0VX2gsxSp`m`UaSkpvW?=BbL>`*c`^Frf|q9EM-u|kWx`{0~@NQjlo+4or61?L=*D}+)26Fs_Nps{)pPAm2@d@(Lo+qb3B3X8EK9D{uGT49{Ui?RTaiupqNlIX47Qwe7<@S^}p1 zP3xA*e>U;AqPC6h)9ZEz?}aLuHGL5fh_%t3o40XHRuTZ9!5Vo=G%kEooUVj zoW^*L;|eCUr!KjIjbOwyCIZt4g#+FQre4XI`%=YCbJAi+Ad4#1*CX{(*CYZ%l?d4P zdik#*QsG_Y4Vc<%rJa!}I^lmWfNhguvsK?{ieNqz?}p6BD_DI*)ibWNQ7%VWT9N|d zlq?$V%44c=dND+E?gkjavcwlDi&La)=jaLjm*dKc)dBr=B7SL6pL`gX08ZF8(zQkt zD5~TZk+^+Glh}qZjfXHLcqrej4&+~s&{V?6B3UA~^vWgB#$Yl!YPh4-frdnL8NC*Iwk^=L$BSfMR_cso~4CXnNaj%Z0qna0z(d|o#c7}006a)-O#(0fL zG-Nak>2zj)4k4#}v^vn*q2?jZ#~|4FW;5K_eGzVi8|&+Qv@1$^B=`^n(&ZRsvp~MP zy1ELD_X9(LEKr$MMTDeAUxE=o9$0$9l*56nqE41R0Y4#7l@&~qYfzvlo6S%fGyjVg zh*gKqiR#S#OEQokI2T)7Eary}_6TQH$zey+3~P?LszgP|V})Q+W&o#D-m(3?DHUoZ zciokss8XskX<_Z+Bus({VP`gOb6hn%r7=y(%KYmr9SvHr8R*_tT^8zyVOb9B#*EPGp z=AJ#?J@O<>lviW0vA#YNzqy7y1{<3%-eC4l_H4fz#`$k?{$HJQ8oh@}5|VtGX#hI% ze{AmT*!e%UH+CP-|3Aocb2EB25GVCWah+#W)YpzWIyh9e4>s*W@QUz50tHHAR4`+^ zqJJe^vzH?YoI|SN$dj|&^&t;>hl6LMPoD-iH$xstfk42Kg)m71F#JTt4*fcM2Hv3J zLWI<35ln>RUdFhju}&)g7E49=*+>J0(Qi& zCB6G;uK#MjElmsPTK_k9*RAz`XY2X;V+{c~T)J)09@A zvaW#a{8tna5wZk}I->*C!d1wmu0#0OeRDY&4u=ChH5tnqHs2Ur;xr!D6bxpFz!(xZ zR@oLDla?EMGC_k{OhrhRcMay>P1(4u3uk6)IHb6U1~V21lCjg3URYF0u%CJ)n@82q ziiFe-O)?le$!sH153JMZ@YAVLDbIqqv&-DvxbV5ka=_AA!h2!{Ni=<}bxm96gtG2y zM_=u7@N!%W@Y;X@puuh*Iv2}B$_5kV3$xP=-kWJ=>VjUrTfo!^0l*x)cVN*An+%)c z*Va((Lu`Xw{pgU3P;HdtS?uUU4c_OLmw&d$vHmOlepw1Y$NImu{d~t>|996P^M5|b zbDQX44@W)pH>g0sJn*4iB##5Q$4~+Me<2jId2%W~Ys!{uJ zCd_}dk|GUW4P>?PMbFO{7>2sv_*d1L=|3@YDGE=3Lb2N5vzf|JZW!O(Xk_&mjz$VZ z%lRRAfPQOh=}K0BkfkpKp_T?wvA~gI(WFVMRO6q)5AU>`imdZn^av9or$&c$!qO{t zL$O|%+AC=L+kTTlT|KwSY3^FW&u#s0eRua!|9gms>VM!Z+sWbj-Yan; zP^xzF7@JIR$9GtKN}O^K8#_4PiF}#jL=M=M}H3 z0~52^og~qEz~&%nN_ad0p*o(We-zEqnL$CW0I7$4H6OD7>;@VA1Oh^rBF;p!6B>N0 zNq2RDg4hbf!}|yo9j|!spQl2(OQE%Nx`=R|g5F&z9McOzeV4qgz zQlm>e)T6$h@lVB+eWip0RqQEeZXp$hi;0E0ZyH4KQ4tyt^=+xfe(ci%mDCm)?|~rb zLwggaMLm->Q&|2BUDp)@$->pTb+R+8)(L|4EHTm95^?TT*4OLRFfY+{>1e`7Fu_Gh z9KcNgLv5^mxtnBv;-{(q<@4x)~S;e-H97|DUe^9oMIPL}WD!9&XnM z{a!s57NgDk92JLDs7v8)%SUQyeV_u8pqVb&?K8%PG-7hiSojlMlHpf$aTOrJM?kU@ z!V>qcg4KrJNYIQa1?Ec0A@4c9JJwNc8Ii5z^?75Oo}C`eu1{WfwV0RuL$sL|rPXFE zu*=cIHL$vlLKI2`OshbZD1`EZEWc)TSM_yFH$d`v)M<3czBvBzz%v3tbAhI%m3py) zeyfuS25btj?>xMRy;v3I1FNPVg0yw*ry5?(ZlS~tZL5SqY?KeZs%f(aEljqO%ZHWQ z&{#y*HM*{ex39gyIcr4S*xF5tV*9y8?-%hj*MDwEEK>#OSpU~|)_3jofA{(G$Mydq z9Nw!fvrWf$OMb}VZxtFeT*@Lq@zbY4$ri~& zL7vB}ylKggKZPi9&3~TG@xlDRo7)@q{NGvM*?ye=5Aihgf0;q_mioSmC~k8At6aK0 z{l7AAm8Ol!SC&pI2d~G`BR*?-l!W8*|LSQs3?0h4g^DS>Z9ZZHZGRuJY)oGtvDvy# zAMx#6#Hxc$bbVE}y85Cn$U%n-vNQ&6*8pvEL7vFr+2w(38JD&PvSVO2JdlcpdvZW( zq&HBu`5$FH-T!E@^z->2RSO>7k9{BS`Y$fXTZS6YssBH>+6(914j7noR%mK4b6Fbj;+dW|T#MwE`nUT6l*eSsE(WB%8t-ypXWPUkMsW_o?FEKYS%X}H2~N+cG(#LtWohN3;}KfyhMTYg+}oj!KZf#<&{^7 z-&-iJJ{Nk#@>UGp$pR6*{las*LViPadw6TWZhgnNuLs+K-aKF=tyrax7M$+w0l1B6 z=ZlkdMCv|<&US{*%A8tOIx01GtPQw1-zS#MaMhKh4I5pltppU1wb7|JMbA2AWt6|U zsr^$*BGjd2o=oy|#g5Ro4kHQCavKbw_p46p&M0%^Sn>3b1 z(I)En#{(x(tgwR`>9SyD^i;Q689Q+;pMn!6r-EV7tW2e05U>Ho6DP=iF)-BBG-gU$ z=-L;kSN~C-hW;-cb))y+X9fN}O9@Plvv|KE84JNIZebI2$NyO8|28*vpFjHlALMD( z|DmP*Pt}kBc@_hx28G`as8j;$zGi@t$7HB0cyb|-cyW5s@TW4Za+<><5g^m878o`8 zB}@G)yUdiDy3u^|91$o@7SD`wn=h&nce7IDLdQ^@vet=9_5pAiSM)un)~i$1%lzqe zUTanw?XHgEoCP11ny>Sk0hrSYp=f0^P#XdO{Ll@cE~5e15&#e>aHO-@J?J>) z2gmQ;5uD)PnI3qIiU_3y)@Ra&LbZP@R`-Fq*xQOqlvnBvN3cIfbZOL(ba1zeBF75a z+CrY%d6|vmndt7?&K`6*ca(|3RLG*8i7c zNB}h^`YinXo{jI`z3N``U1_!Cq_rbu8G8Nf$A_1V+6TtnIj+?@xO`EDQHsMTjV2+^ zM)Qq8EZ0Xo%j-TNFq+O#N)FYXkB%i9e;CqLJA8{01WOc(b&b8`VUyZwEUxGQU$d{Q zC7(Wh?FufsZ!zVc|I0fE+A;rkHa52H{lA^fjmP=_5YIyMA0|oTeCRSf|Bds5+D^TA zx2QhP>dsZ1kL!R~ZCHrlhR_aq88+Pf`uE0ZGZX7xOVEZR)WL|dn7cxFR^@wlKzD;% zd*(67!2H?*%N0~2VmnUiu#t;87GFiZbcZm7tNJ+r{+8WCDRrCHopL#L?qMfNKT@F>E%DjcnsO-3%TAeZv8_tOI$-`z>i{xI{H|&12(w+4 z+C|2-sRj^LIpnG8H6JH)Ig^}n>#5H-+c?iliLYTgPD<-HY2Ms8&PUs)q#38gv1qQm z1o%UQ3KF<6ty)_gA|G$4-300*hBa0zr<(2CH1Wj?0)BDA*bH}@I~Y9_SJ6uB?7|%f zyQhTYbq6*soUO5h{GM8^pUiku7G-C}U#c>>kbb%}Wb({)@|*G0j4*T}tanpI{Gb$+ z4k~myw0aG43}Nda&T`jNKJ&YEC7;~7fppY6x^uZMYV5&vZm4Df4qUSAtor2}!* z8_yIZZgXTxVTT3iNXzcr|Itt48rILR+4(K^eX5clN#5CgVSczMvMP6d(da?xym>5x zLEHl|z5v1TyH|&Sc-2~oW0SSMW3~7@SG61K^lbxgQKkFkyOL#;F_7n3e1f8?z~uTM zO9}cwT&)&RCgpeZXM>b3Ao6lPc4eG>n8I}?f!}uLIda`N?95CARz+_cn|TZ0Il*&moDXbqwTxXXkFSPwDsN z5LP4`=K7pc)8wx9V8hxArYM<(<#aU7vddr$@&XOT{9mJgSNTN&W7I4=yh8Y5N`f&6 zh8ydFqd?5!_=b6w;OIIS1NO44q6ncF#cS;61mXn6Yh3&c*(>Ih!da^9%eMG0Jt(L^ zbX_3F4Br?Wp*bqVr}}2uv1Ye%-j|5*8xVDtYg!bZvEUt;SCW-OR|w5tmF{(EPO*sRTG zp}5V^p>WG<4kbWuNspP*crC7|bov!~v+CAty5Yw;_meAlU9v0pQDNN3oYGZ*-SsK% z!bU_t87W~rRTaj2{Dx1rvCDX-%DT)}yO866og48Uzn!Xi-I zyKKHxR~wr!p$8s|Wy#SQvc#~utGDvg_&7r^5-X;qu+OIH_!pe{*n z_z%pm$w1u{on{2EV+X9g>a~TdXFy`piT(x09Qf@&ezVd8od4Ti-`KGC|F*Ut?Y{?k zytbIUSZgTnvC<7N_Dyg%DoCkFqMdP-&x3qR=B#W|yRbiLbn&pr6@7gCS&giQVdpEez5@VXXAoPvv z`arb-a#7gZ7IF~K*Qa@6ib&DIJ+M+c+i9Vv-c18m-VMY0<`Vx}X_KX%WkeF+aN*Z{ z+XE~7I5{u0${pEWm_0nD1AWuio;_l$u%W#QRzQkGi?sF_yQti8-vUJqk9BsL)G zgMfawCKJCz@hFR#_c+koDhV)l3{p|jGIFy5tmxqR?t&b%!S|=9#{p|}dzq8K9zEvZ zw|7(I``h-A30>0H+9^6IdS$&Y6#R}ZR`XKZV6?Gl!r)e;j-l_cZi}_6% zh^(>3x2i}QJGSG|=&Skot2x`RRU~kv9Q;$kTn&_aKzzY^>ErV-PmBJ)v^>Ba`v2DE zrk($HXLsu{|L=o53&;P}`GJ3|&tu+8G@wcyeB+Mgvv&t>`ULacxI_88TS|>!KGUu@ zO#G+$JX&o3>1HXhe>ZiqBz8{RRWcX`t7gk2vCS|+`K1-5&4ju&vf3mocvOOs|5;&m z7ptMsWu7nV&LL-O0PgTNiB9KJRw&%%CC;lm_hol!j9<5Fyi*Bh$wN}YcfUJ|z_L=CroQ7`D&^!-q zcXQ(~boVjnW=-oPv@Fd|Neut@+Y@&!rYkpN_W}R{{9!0c4w>i-fO!aERUW6-4qiJD zc+OroerOEgn-TQ{tA86Ym|C$0dmlB?&-?iGzvbnD?Tr7~vh}~+osGxy-w*OEtpC~h zVV9}#8OdWkTAv>NdKZn)m8i3~w#SLn0xv&@%4gtjYH|8kFC<%oE$0ynq8-=z8T0(r zN2LR;cU(^RdF{WsyYrp@vAPO+Boy>$fI1uQ8t`H*e`bcSn;WT@S>M}^J-9FXWggfS zj}O!6idE$g6;zM{q6xlKhej@|b5x{=pfbeSNV1(x@uDoFDWZI0u0z*a->r<^>U76S zR)~yNVz>ndNmUY5ygCk6!3x^}Rv%Y|myn+`R|T8h5y?-yy!vVAB37ZB8MIMtMdex)1!>MMKHeJk7IEK9CvPez8c(Z z2Vo#*>&4ia(OR9OF;*ahWcte7+Zgz9vawb8S5t`(Ujb zV4j^X=hxGNV{KQg-l;e}I3Bn*ORc?(&V8~r2nLS2LcIz*__I>yHI$-OZ7+)3k>pB{ z>pP08tE!RmmDYsjzGI6i>&aE<*9uyb@NI)X;BlBv`|mwh(e7decG!O#TRZms&(EJf z#{WFb)8}RdCKH+c2QKg&rIroY+pe><{pQUJ$4q8-UArJ9eP~E}`^E)B*mqsGz!5Ke z*8;{{)|pB2&tn=J)A?F@H{F{!72zyQ3+S^t?nLtYA2_-O<)*zKA286l9Vc7j3i|k2?NF5DrWpf z|3cTiRoW@UkKlZF8>NxCX+|MlqU$z@1)f8K`hvXqV;od?eD3AxSpS!i{;f0qYh%a0 z|8aM7`!WC9gFMpyD=?ZPb|h}Z&*R|>Lp$TOrR0laB?vU?=rB|3ziSPvIoic3 zzSb?yDs7GY;&^pS)+{iU)f5Fd1^B~3{k3f6TRq}kJM`+MxvyO(Xw~t66}2U2voF-x zrfDy$o%2R-<)p}FU=9n+nn|_3)|Pd&=&2xy4UXFrUK=^>yiw>3{PrGu&${{+X@g=l zE9IDD)kB?=O_?SNiAhA~UW;&h)G5E@$F2WOAyoji4gdS}|F7?E?%4jH-Ob1R-w*Pz z%dQW2oR%KoQBGljVgREe(~|xAB&a@8uCn4X$zU9oIT8WMmd!?Y-c-o4Mey=P8O}G1B;F}c-OY{pUo)J7U=0Mffb9uU?aPA&oBtWaWZV2V zve4c^0CevEHSYg>{(ODsasEHV!{+~fl4MulU)4DhE;MoPZ^lCfW0Z#8sqaixd|89i zx1?maM0lWA((r~7znrNWAS-UsQhb57hY9n%$npYH<)wBDvMn|{d-+1G(i1S(jpE_4 zfe<-3y$Gp5;x`GH{_PUY=BPNxW;rYn2>x>;-1sJNIPp3;8k$FW1O@D>p`auE2xr#8 z6h)Vc871NPt`}oRoz{A29Ukx3BqN{oYC8u-gi@Wc=TXC4&eJCUMa;{cJ%C;Ef4%Ad z+u3}K|9_B2*Z)Mk@?xr=+!~>iPo8*VLnr;mlwPFHk%@=Q}Uzgw;u%Yq=?APecpu!r2BJhEDoAuD#ao zt83O}2N%-_nJtqWV~^7H&-}E>e?D~X{ruPV_NE>Gx4ZRx^HKgk#KYv&%MUqB<3{`+ zPvGnmPr6{y!UZmp>>MUX`avT*GEEEh5SM5Kyp|Q!;Q+M58=jFOm#876p!35uy*N2a(0 zE9cj&iw}=ZXjzx1ZKGRwRlj~ z_aZRXPz|gIP(g{iOap;gNlRD#Rpa=2--uFWBJw%NtM!|SK+HsKh*NnebVoY8*)SJ# zhL>X6S%+{GdamUw&>E^q9PxLpnHDHdV1z*Me*+M_4;Gg%vQ@TN7b@$16tO(zB%`hC zXh~_*IkIN2=C(BphWt>l(R(WGdS?jXst;;vCKYK6U3EZG{1Nm8@lvg?`JinUxphmFrS=J7^9V2EZ} zS|Sfz_VolU47MbYph=Z5z%IxqqJRtbuqBk900`zV!7;FLu6$Ll20n^hQu!}w=(Oqo z@&Ncf`+wGVoBIFG?xX+bK^`XE-k{=wuMh-+7@9vyv+J zEENKvq0b1o_1${02*7ErRh6i4R9VSpnACb7uW6^jn$fn$b?sSI62=dzBV84kAe$;3 zodHTk28AG~gRCVr2Bt4Y{b8sfyZ`BV^Zuu;t;hYp2YGJzjSi<%1ZEJY z_2nkg5{rRK=Aty4XCpOW?Tw;(nWf+kBs3AH4?5hG`uPzyKg4}0#+5c>raH^5d|DtZ zP@a{TWW}{+xi`GMW*q`AR!s*mdw*OdiIyyA_#ZD*SsG{WLS=Cvy>%4JZuJlaa@LMd@N+jx1aj0Fak1W!voK?E14_scN>opN@r{^s~>0HZ=uFZs}B7Tl{Gpnbr%oJekJ2Q>e z^~25n`nJes{V1R%%{yiU)Q^%iHDg}5sM3f+>HIY=iA4~5)jWPGOLNmq{o=?Sq#MN@ zT(lrqcaJs)vam3MW9|Yga}?ppHA6V!ASPKsyB!x0GZQJCSxF z4?lHyOU8TP>815Sb@M}&I_(ul;Gbj3pZ2=N3tUXIgVMt+lZkvr|LSFKVlSiLukX#qH)sV_J9%qKoVtbx=KeHUQji z<=2#+78N?$KLIR_D!4!?Dj-2I`0n@}!09C8jie=IN2%1ZZ1xR+yr=9&qz@1uWipC@ zZJ|($&OFRY5!8u*SW*32gBs8tU5TJj}!GzX7%X@+{`&946FS^4ovmpqBxdXK^zJr*2MBQ;VO_W<%P3 z*Q$+gHU@cfi=suwy7n_dkG0^q=a!-CZ(zIOTYbWzs_44w30rYcp%iQ?`viE529GXtqDS>+ickSm!dG`HUM+*K>r1}t&AaPKxoaoGHJyD%vRwy3=J0V;(|{T)-(3&hcgug~jJePA-&-5@{_n=~ z-N*gkhk3aCXMHTPAXD2v$u4lzPwER_-S8gndbVN8dnN)Sv5<{XUx2iF_i#tFmYvmc zjMLSk9@k16N6dxfXG}g4OCJ5(xCW1Ro-W&Xp~ebIzXpM(Pp|7MSd9gI`ouL&DJE#NV)BZ?TD4sU=r<5dvyxQ`>OjDNT_nu#8nOQlOnai3gyK1Nr0>eI@->7O(9L@V zO!Ao$#K1|#Z6!rI2zG}rGxOCu9^+IOVG!%+D8?sKaBEbT)p=b>{1_X7ex8654Mu@r z{6m^t%bjcfs{@MHVWM|szq2G7L~ESQBO~N&USA!2Dutbsne&K*UWU?-&PXNp#mms< z*G0H;pHA+c^8Y^bKQ;INH`mv<9{2wren70 zr!L-VxnawF9S#@&{DWco))%*T9!q@MSa(cPKj4z!^n%}uZ_IU;Y3mAJmmn|D1Qh_L zz$}g@{61A&GOx9WNNSL|*M_p=%AOafM3+I2r6vIAS+rGudXLwOi=8j?^fu z?xFWqGA^Tcwr|BcDch%4y!cj|5uT~Nuh1}EmqC!FrnuFJ`ffYdHTT>H6VX49{I}Zc z7gyTj9R%zawL@H(V_v?su3OSqcpcOX#kguXezc2}B)EW=47~R!`7o6Dck~+1u)Wjb zM4}42@UWk^DPbO|p| z84jKRc2m6A@-0C*MM(lKlI$GJAc>|py;uVUN+7{=#N?s&9;Wf&2}sce3-qBv0!{D- z6myC9_tg+EJ2FdIO-d4#86d$a3J2lg$@>$M6=?88W~=-0-~`0DC>fB5EQIE(KC zNBjKW*xB8%?|<7|-*~+L?LnR=;#~h=@b{n9{aG8~R=EDl3cD75JR0HIMOaQ*GN}+} zqjMNvpphs%WMzjqon*xf@@UQfe@U(rv^Pm08J53Qut2Ne??0b1l_kOF1uU*RfYY)= zQM42GVDN2~ihXNdg$1CT78PPgfXl()*|YDn8Oq@W8b5mm{!`+b z4u#E2|0<&bv)dggN=5|yEpqM z{{kODDK8g03)a^+1NGe*zx$DgKYaveKmXz=`J?7U?pM}djNQnQ#i&HZ92M-`^Uv$Q zm;?`pup-l-tJ;QDEzMHYR!KT6K7#X%?Zuw4t5{lV%)v*I6O@*}`P5RlaT?tq?$zWd zBgf*VmQEw08SIe@2MPi}PF7q}CN3 z7VM8E2Y3#zA^HGkd4fWgAEi%g6j-VSsXt8kquT=#(_RC1%+#qq5JfWDg?X&qjoDyR zkKrMpkfis7wT{??MV0QC?@CnE;%L3KIuF3P)xeUKn*)o=@E#Qx<+2`X6pGw+3p3dO zlJmew!KsbSt<8%+ir4J&Y3E4`5>6 z!#KN2`*1*(ukv1{Eir6d<^bckp;H~bJbk}^_~zA-o7gUJwyt&ZKPT_s{BZd0^-Cwb zri>7bbe6ut1-htU5#P1@Z9u*OaQUKyWSY&;NY&^CuhIV-;d;2azPY~sV)MBML7va@ zP3PjmBbQ{VBF{&;tGD01de((sw=Q~Swo7ZC)EO&P`TAI=YYAZIFYCgNLy(>|yG2;a zTo6v4hzvgds&$SXPnik+z*dT5RLpQ$3Z6QNY-I5DEK2&xLMPSw!B?LMRw}q!*2L8? zKA;Qe?0q%#KKgi@Dt=4F`>twsKc%`;`L#~wI?MDK4#r_n4>9^y3)e_O7)7Wo-()u6 zw+O~R6_}tO(nzy+9T2*@*HNVovN1b{e{RKA;@>SwH@?H|H7;>prR=7QB+O~8ux4o$byTzBt6S<72*!8;9@gdiF|jVcC>O1o3$oFw-J6eAz5a|W2`osJ z_hh3i-H(Z~bO#HYTreuOa{D=0SUUeb`btHOA?%3yvt)qG)+TK6yY2;&ahrb$-!`;XRu$9tj;3FE)(aO zuV;wB7!nAolG6V36eY7^oJA#=Z-hJgwwboOlxD?Mmc_r0ROykpWThPOYO9}VvslId zmZTi1GuH3v@9-j94vzNy->uE9b$kDJXLI}U{O^N2BDh2C0^=EzY%46HE1<&wrx(Fs z@PC4~%~Cdc=-94OOafk4D_@cVk!V`5f_QR0Dl1G-FjyT7m?Th^&nYU&3H?SzLlqHl z!(g%EA^X67vu#}<@rB=`WX4_%J`DzwDviJjs{x)h0k47+M5>(qy|M~!2LFcx=OFiL zphxIxMZ|Uvnd5B@1YtM|!;$`SRilsRo8}Vi5alS1Q5s=XuB=kJMkDYO0x3c+z*FYvCb!qkBB4Zx|aFwNB6L6VkR{)-86#-dQuumm#K5eaP z`U(NhL_db7s|H8kR_O{^11Y*%ad2w27dtsF=1N+T&>1N#nLf;a=0g4#qeFpA23pn; zz(4=OOR56sLyjVXVgcPO@TmqAh|TX{EMi7ESlpmk|g%0R+CzQ!ddvIWVFsJ}LhKJ~=327+Ov@bOs8Nmc-! zBZWk?BX}e}@0Xf$+Pq?8f!Cm2uDVinM!^Dw^^yLTWi(k~TqcpY@nMbfch#thC#?40 z_vj}JY)!?t5GP03)e0(#@MTeC#mcG)h8+*8pW0#g2Bvs|c!Fu2KKZ^3ze8k2zY}K- z1kFiolCxiysNk2mA7$j_EGO41O_XNMIv?5^c+YR5uq%Yr#$O4zRxk7wuH)C0gVpe0 zij%lN>52z|oD$w4hV03DQ>7#U@I0I~!?E9QF! zHKe~*R>Kue{A!Z|``o^ZmA_Rm;jug`%|2PP=&>h)`fF88`M!dBzqlyxAf>$`n!>%K ze5N37A)H}xQSOxqLOH-G-wM&iCWl%Vw@WT2q#3ds24hXa_|%Dxikk+;M=|{u5Yud0 zcw{skOYH)h)xNcKrnMhbG*g6sR=G^uc5g!YWjepTO!kW8m+9OB(nBBbiQUHT&4v@d*E*S4}N1xgqHJ%s^1M`i`xI!Cp=JVz*W#Z*1ShoiT0B8$KH$e7wftYLu;xy186sv*67t<`HAK39xv2h8IZTf z>bl9hLr>_Go%ojK&q~?5!(-nLS0`n(?wtwaK>ku1#22z;>NOv3#bhG9WxeEA2YKQ6 zn`mPAdHt7;ik=luj^Z`Y04OLl*0@_D5#!&FL{2gdQH$e&-)gZ3)^DLWScr}Ho@U-z zt)Q^|ZSO_G9h8Xr$c=ttTgeTfF^u=XnL?r+(;3_2THWEOKVo&{MwD3tMpLv%1)y^L z$@51hyaeLePnb;kvj0Y9FkTRamilS#GzJ^rxhXvn z>5vzs(8z5%2D5AShhq?mWXr+qT3`x{Les1yIV96z3<B;pggnGXdaz^n$amJu)6hZHG+Kw1c@dDUD;+3=s?RV zqM%v2@PEifU#E+CHrR>7wI(@Zpw1)en$$~~QMI`>(v6JD0xvH1(by1^?Xsr2u336f zdBlVlJ5LJgL@#I6c!8E$bKi^BU+%;)uXXai7h{~kGkc?xJVPY-Xk*{J7){13fDz5T z2#rrI?f*QQv#CBmYR>npIqS+wivn$2y>S;kTE}N;pK?E_E>Vv+XMI>u#gU$rINzQZ2wpb6eCjp;KKBW#Klal&|Hl)wEcF0jNB-ySjpw`e z`M>R*-N*BP5ApOp{|BriefMz$P~-->hckc{@T8vz-Iv&F_B@&}NtWBw&N7 z^v~1l9Nl%dhCSXb8?KFh%ab>_x8rN-fZt#=cW2ytGX}24-h7Q_4DKpPQ>M1C%&)+n-KlBuiH^#La?{Y z8mE%{q$u;)M}-+YVG!{}?{{e0ojJSuczc-%hl--9>=lSqMe5Puz`YravtDMRaq3QX z)Gh7BnL8wb4jNnf;gq0a0wZ+u=|-O;Lhu-aRlcjIG(UJ@na2qtXocZg1I|{hHte`d zZO}0y`$vg*8G30muZQ#gb8A13kD>ohvjYE4P5I<~p2hEBMY1x2cQyw)?tfU{e7<4d z|F^Tf@u>el#Pg--|KF>jcbvuhYTzx~80bRtSF#K|yy#~pbTYDOGj#Kw{wW+z67e}K z(T{3#Ry&F<>QgF>sH9JKH9YFaYl3)M;x%G2l#=B~9D(Z2tATg#+&O5^jW?pkKe+)L(T#O!rEqBwn zIdOsrojK*=Efgo4wT1#?l=HlBdxCIbi&$l5HT`?rjgNIB_Fe?5OXZ^?$H~cU4<}#z zWsh6+vrz(1Z?x}gnFgItRxJ`{K6CDZIqP^f4fuFjQ|;Eb#~4ApKqH*^_87GR=tir} zm1Ur-$F&DtUEuB!RxQ2KBS@;>Li`4i0!N=~C2n#5$z-OcRoz(dxV$_#e)o>x1pm&G zNFJjiLMee4sE>T^Cy{*^_IB5OLRPh5Y&GI0i1I2JgWdJ!NmQ*-Z_q3&uJ5^BElBpB z-==9Z1~3?d=f2h*WV3Ue_EQh;-Z>A`YT2P{pq&AaE8pE$zJ)z>^0kn4BErHczIln3 zBR!&o=XfqoNz)DYe$Aqw?sAJV2m5P$KbwUG*)r?1=X}mDV2|1fEA4gpq}ZRM0$w0( zR%q~8E|lHvjstW(mr*s5*0lDmKDrL??J@j+;+l%(X8-N<|2^M$Zs-5qe*T#M_hFtd z#s4QRoLRQN&j$Nf^6!bZ_w(m97}fOOHF@dq*Dd*croibrcK>}=wx8bQ5#v2V06Nr7 zuMbSn*Xr{+#AQ#X*Uwt6Eq-B;#jriO&wT})Sac`E#0amJn2kjK$VzQoH7|@oF;{2DwB$R{&8g93f6>h)@LYr@`kaGXLsQna19rIZDA-p z1BZ^thhnscO^ne#?$D3a#&9K8>otMzXYy*yl@vA^{8zEMML+aBK_OVZh?`k1)Qh;4 zEutLJ^P3~UXa$NktyL6Z=ezH`liQ(Ea!0*em};cj8>TJVrKokAh02k9f{obvMy$OT>z&%c z9aM=WD5G5IvX`_z^=0enva*-gqwx-)SQ3_v&8_WzE3Db!ei9r5bqpw)$K`c-%j<2I z&804x%UM$L0?%M^%@(lno?0u~l3VCv(sxkKvpi_n1dZn~xF7KDn>7ktjZWeIj4A`>(vwV2dP{Y|#e1 z{;Sj1C#@c%<06~m_*NOY@31P9M6Jp6k3EO|)>^StT-)P+4jr{Uiy-5Oc={NcfFJ93 zAaEwpbkn1={3xrldVX;%|2$0daEh1tJU*xehUi(x5cOrN=SBMYo$k2<^la}UbL^w8 zcQ;+HWpSs=#vS}9M(T;AEx3&&jxFmELXTD#a zj;>dEmX<)~dF)xI%gk|9QJJpxMhg&EB7M*;f={++Z$xH!KMR!gm@`=6uVR<{nw|S> zlJB$ZQrIK^ot;~@$PiW}8){2`>pm}?aEsU`8dY~Y?cxX2?fPq#PCR8@xu3>XPT=L< zVlUA6Z%LN%LDqcub4!-n%ZS^_q&CUotg|6lCsV}ss~qDThL@N{WN7WH>O@zaFXC?Pa8x{KqQ1Qs(+RZirR{z-$qna@TGBx_ zo53{hIt^T_Gd*>XMRbn^bdJS!jm30~MRbe)I>jQo!~#0R;=044IzwMw;SNW_y^6IM znSRAuxB|51ew!6i+ZKY}r(}1f9TCV|weit8PDkaGuF}JZt<}@)Dh0#0U}yKmcxU$o z5Dfiy+WbPt-M{V2l|9F&oeh;`L0C8vYAv!z6>r9@r)$(WeIHBPvd(URc#FO)p_8NNEzuKiR#Pk zS$uqf%PXf1$z606T`?dEJ8UyRyOtZ)d#ATN~;Qp_@|If8}!o48uVy3%C z0d(B|u=9Mw-v598eCsj)>w`RB(Eh)9K_k28?;hd++OYh^;sG42=p7f(%0_2=Ks)2< zpGR`?k#aQ))OJ^T#5| zagpaq1QYbX-<~X4*cf!39PGb-IiyJZq~Q-kQD+#@S3{pPV#89&<@+Ic*h1)|`l)@Kb$^aoXKrq3W8iMn@Gvcpvjj)iU&#9#j*$Yjt9&>ikl?6elL0#DR$;S}Q_@e?Bw$RLO~; zY`8WOn>^{6SV^sB27xxF&b&#t(M+{fjY)K>McsC3TX-olmzBG%NwaImibUTSaV?7? z(PKo|zIvksj3QK)Z!-G*ErRh+1t#bXOs|`x5C4wFVBCOP59H9hRo% z;>73MX+}q$z~!-F1kShKyQ^bi7Re7wb<0U3Zw2D%ut=F>^im#dQ9>M%kZF0}uiEw^9PU*G$T2dTTwLdly0e zg-vg@2nzz-H$yfc;E4`oZ;$noE?n-G(ol`WHIusB6=o7fN(lK=9Mb2!K=AUO7x9JQ{&&!Ydpimw{+AO{`1Fe_;5Td({B^B7K;UB zm@2QZNG#io)z}kv@P2aO7N2@jpg#7F@-r#$M5jrpdmG>3#i`_#z6{UWf7FxVQJA|= zUDZNd6#aSqmv&d2Wp=sK-I^w&n8UqqQ8>cMiXn%koDl;!Saw((C(si94WzfYBSFcg zCA3{l%%wM9k?G@rhPsOh3q~$bM8f{PofYax*mS$KOeTwHe3l=^AQ+KZzR|P^RbC2O zgn72wNW8*iI%GKSmCns3owCF!0~8$M0!4(1^6nN1Xn!%sr7Ig)Gf9~0&_@U6qXYBN zfqB0UOyjH%@B8+ZWA3P+OWq-yqhs*32z&q9pi%dteXZPRKctaWj{DHQ-dO(*TOW)g z9VU`HSxn+-7*2Y7HOHIRe%eaH2Xk@Nq)FSYCQh#UJKa^i^)3@&h;BJ1{LEs5LaWeyIjy?|Zu_cc%9>7< zep!sOh0Ww4O@=eE{JB}Zh@t763T9Y*nN>xE%CJDcRZO5rx!dkBdHTcf&LX^% zk3Em^)!cKvy|oX!|M@TD{GYgQaoJ}8JMMqk+TCuP|9if*^LYO6A)fa0f0LO!%J*<5 z0ma>*%RUWggZ(R=2o!DacPg;KsOHJQCNDKCpFN9<+eOv2*Uv)XL~w({9y0DGHuQmC>f;5OOWir%?9+EgADo2JGCs-o(aY;|2J-B6-k7Fs~~-a zibnPie@S*R{)_b&>-xm))p8EN*LLx>+4{Ov5AmY4o~U|zw;;Bqn_jFNcMiju{@HUP ztOt?I-1U>mE@-l;^icSPAO6(jlsTLGxU`x4L`Bgw1`0%~BK2ta;ER*ixAH7`Wwk~L z9Rt#HV3pU+EH(-k@Ev)~J8shHsO#LREm!pS1z!(qACh_sEpqnFzl0qZ8Ofq7x#KG4 zUBD##zG?N`YmJ052EpmUu@&=}Cpf}{zV{p%^@*cgK;7do7s2-Z>FM!;!cSpibr(l> zve<%PpgUO*-@C)xGn3YJW8+`GTuJ>XE|)DXW#{{(nH)5Cmu35Dnh|!3#1a&8uQb!J zSU_(t+ccPsu!wsQZhg=#Q@ZuVw>0r)AZ&EfO+X5WCipTG7nFyW)j29sL{J&xOnNqj z{$G~S6ftuom=cngDs%+gleF}3>rq^OCUL3tN2}0O+jy|9&^L*`E>sqXcG26Qf#@0L zLdQ}~>lzn>&Y%;WJWt?>O~k@{5`i-HOZVnSXJ77XEtL0KO`_s9EZM&g1j=JU)+4-{=1e P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/sonarr/6.1.0/ix_values.yaml b/stable/sonarr/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..0f7deb891f1 --- /dev/null +++ b/stable/sonarr/6.1.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.1196 + +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.1.0/questions.yaml b/stable/sonarr/6.1.0/questions.yaml new file mode 100644 index 00000000000..6f481889d30 --- /dev/null +++ b/stable/sonarr/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/sonarr/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/sonarr/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sonarr/6.1.0/test_values.yaml b/stable/sonarr/6.1.0/test_values.yaml new file mode 100644 index 00000000000..504a54c0bd2 --- /dev/null +++ b/stable/sonarr/6.1.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.1196 + +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.1.0/values.yaml b/stable/sonarr/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/syncthing/6.1.0/CONFIG.md b/stable/syncthing/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/syncthing/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/syncthing/6.1.0/Chart.lock new file mode 100644 index 00000000000..f439ed9da3c --- /dev/null +++ b/stable/syncthing/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:08.045063629Z" diff --git a/stable/syncthing/6.1.0/Chart.yaml b/stable/syncthing/6.1.0/Chart.yaml new file mode 100644 index 00000000000..5f757ccbeb2 --- /dev/null +++ b/stable/syncthing/6.1.0/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: P2P file synchronization application +home: https://github.com/truecharts/apps/tree/master/charts/stable/syncthing +icon: https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png +keywords: +- syncthing +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: luuk@nieuwdorp.me + name: luuknieuwdorp + url: nieuwdorp.me +name: syncthing +sources: +- https://syncthing.net/ +- https://github.com/syncthing/syncthing +- https://hub.docker.com/r/syncthing/syncthing +type: application +version: 6.1.0 diff --git a/stable/syncthing/6.1.0/README.md b/stable/syncthing/6.1.0/README.md new file mode 100644 index 00000000000..4456e4bb7eb --- /dev/null +++ b/stable/syncthing/6.1.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/syncthing/6.1.0/app-readme.md new file mode 100644 index 00000000000..7eaa0780e0e --- /dev/null +++ b/stable/syncthing/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/syncthing/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/syncthing/6.1.0/ix_values.yaml b/stable/syncthing/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..f193ef8abcf --- /dev/null +++ b/stable/syncthing/6.1.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.17" + +## +# 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.1.0/questions.yaml b/stable/syncthing/6.1.0/questions.yaml new file mode 100644 index 00000000000..f33faf75cd6 --- /dev/null +++ b/stable/syncthing/6.1.0/questions.yaml @@ -0,0 +1,908 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/syncthing/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/syncthing/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/6.1.0/test_values.yaml b/stable/syncthing/6.1.0/test_values.yaml new file mode 100644 index 00000000000..7510fdadbc0 --- /dev/null +++ b/stable/syncthing/6.1.0/test_values.yaml @@ -0,0 +1,38 @@ +# Default values for Syncthing. + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.17" + +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.1.0/values.yaml b/stable/syncthing/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tautulli/6.1.0/CONFIG.md b/stable/tautulli/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/tautulli/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/tautulli/6.1.0/Chart.lock new file mode 100644 index 00000000000..3db639fd0c8 --- /dev/null +++ b/stable/tautulli/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:09.006783209Z" diff --git a/stable/tautulli/6.1.0/Chart.yaml b/stable/tautulli/6.1.0/Chart.yaml new file mode 100644 index 00000000000..cdfbb917bcd --- /dev/null +++ b/stable/tautulli/6.1.0/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: A Python based monitoring and tracking tool for Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/tautulli +icon: https://github.com/Tautulli/Tautulli/blob/master/data/interfaces/default/images/logo.png?raw=true +keywords: +- tautulli +- plex +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: tautulli +sources: +- https://github.com/Tautulli/Tautulli +type: application +version: 6.1.0 diff --git a/stable/tautulli/6.1.0/README.md b/stable/tautulli/6.1.0/README.md new file mode 100644 index 00000000000..ccb1b9b1324 --- /dev/null +++ b/stable/tautulli/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/tautulli/6.1.0/app-readme.md new file mode 100644 index 00000000000..4286929041b --- /dev/null +++ b/stable/tautulli/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/tautulli/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/tautulli/6.1.0/ix_values.yaml b/stable/tautulli/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..889a1bfac56 --- /dev/null +++ b/stable/tautulli/6.1.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.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/tautulli/6.1.0/questions.yaml b/stable/tautulli/6.1.0/questions.yaml new file mode 100644 index 00000000000..b504c5e9db9 --- /dev/null +++ b/stable/tautulli/6.1.0/questions.yaml @@ -0,0 +1,646 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/tautulli/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/tautulli/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tautulli/6.1.0/test_values.yaml b/stable/tautulli/6.1.0/test_values.yaml new file mode 100644 index 00000000000..79093a724e6 --- /dev/null +++ b/stable/tautulli/6.1.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.3 + +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.1.0/values.yaml b/stable/tautulli/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.1.0/CONFIG.md b/stable/traefik/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/traefik/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/traefik/6.1.0/Chart.lock new file mode 100644 index 00000000000..39e05e84567 --- /dev/null +++ b/stable/traefik/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:09.952405118Z" diff --git a/stable/traefik/6.1.0/Chart.yaml b/stable/traefik/6.1.0/Chart.yaml new file mode 100644 index 00000000000..ae2cb7a48d8 --- /dev/null +++ b/stable/traefik/6.1.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: '2.4' +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: A Traefik based Reverse Proxy and Certificate Manager +home: https://github.com/truecharts/apps/tree/master/charts/stable/traefik +icon: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png +keywords: +- traefik +- ingress +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: traefik +sources: +- https://github.com/traefik/traefik +- https://github.com/traefik/traefik-helm-chart +- https://traefik.io/ +type: application +version: 6.1.0 diff --git a/stable/traefik/6.1.0/LICENSE b/stable/traefik/6.1.0/LICENSE new file mode 100644 index 00000000000..907ff83212c --- /dev/null +++ b/stable/traefik/6.1.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.1.0/README.md b/stable/traefik/6.1.0/README.md new file mode 100644 index 00000000000..efb30b07743 --- /dev/null +++ b/stable/traefik/6.1.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.2-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.1.1 | + +## 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.1.0/app-readme.md b/stable/traefik/6.1.0/app-readme.md new file mode 100644 index 00000000000..753f84f7068 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/traefik/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/traefik/6.1.0/crds/ingressroute.yaml b/stable/traefik/6.1.0/crds/ingressroute.yaml new file mode 100644 index 00000000000..9422be3c878 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/ingressroutetcp.yaml b/stable/traefik/6.1.0/crds/ingressroutetcp.yaml new file mode 100644 index 00000000000..b50eb9dcc46 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/ingressrouteudp.yaml b/stable/traefik/6.1.0/crds/ingressrouteudp.yaml new file mode 100644 index 00000000000..d7c2624b576 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/middlewares.yaml b/stable/traefik/6.1.0/crds/middlewares.yaml new file mode 100644 index 00000000000..513b36f5d8a --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/serverstransports.yaml b/stable/traefik/6.1.0/crds/serverstransports.yaml new file mode 100644 index 00000000000..689a57f71bd --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/tlsoptions.yaml b/stable/traefik/6.1.0/crds/tlsoptions.yaml new file mode 100644 index 00000000000..a0c2573fb93 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/tlsstores.yaml b/stable/traefik/6.1.0/crds/tlsstores.yaml new file mode 100644 index 00000000000..f9a40052ba6 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/crds/traefikservices.yaml b/stable/traefik/6.1.0/crds/traefikservices.yaml new file mode 100644 index 00000000000..59fa4839477 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/ix_values.yaml b/stable/traefik/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..7bae09f16bc --- /dev/null +++ b/stable/traefik/6.1.0/ix_values.yaml @@ -0,0 +1,316 @@ +# 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 + +# 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] diff --git a/stable/traefik/6.1.0/questions.yaml b/stable/traefik/6.1.0/questions.yaml new file mode 100644 index 00000000000..eac432f7a96 --- /dev/null +++ b/stable/traefik/6.1.0/questions.yaml @@ -0,0 +1,385 @@ +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: 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: 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: "/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: 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.1.0/templates/_helpers.tpl b/stable/traefik/6.1.0/templates/_helpers.tpl new file mode 100644 index 00000000000..f7b055fa82e --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/_podtemplate.tpl b/stable/traefik/6.1.0/templates/_podtemplate.tpl new file mode 100644 index 00000000000..9e8fe8aca34 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/custom/common.yaml b/stable/traefik/6.1.0/templates/custom/common.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.1.0/templates/custom/portal.yaml b/stable/traefik/6.1.0/templates/custom/portal.yaml new file mode 100644 index 00000000000..44b48e77d49 --- /dev/null +++ b/stable/traefik/6.1.0/templates/custom/portal.yaml @@ -0,0 +1,44 @@ +{{- if .Values.portal }} +{{- if .Values.portal.enabled }} +{{- $ingr := dict -}} +{{- $host := "$node_ip" }} +{{- $port := 443 }} +{{- $protocol := "https" }} +{{- $portProtocol := "" }} +{{- $path := "/" }} + +{{- 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 }} +{{- 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.1.0/templates/daemonset.yaml b/stable/traefik/6.1.0/templates/daemonset.yaml new file mode 100644 index 00000000000..469e105c358 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/dashboard-hook-ingressroute.yaml b/stable/traefik/6.1.0/templates/dashboard-hook-ingressroute.yaml new file mode 100644 index 00000000000..ec278c26910 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/deployment.yaml b/stable/traefik/6.1.0/templates/deployment.yaml new file mode 100644 index 00000000000..494087cfd0a --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/gateway.yaml b/stable/traefik/6.1.0/templates/gateway.yaml new file mode 100644 index 00000000000..85194211fe5 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/gatewayclass.yaml b/stable/traefik/6.1.0/templates/gatewayclass.yaml new file mode 100644 index 00000000000..61bf007db1e --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/hpa.yaml b/stable/traefik/6.1.0/templates/hpa.yaml new file mode 100644 index 00000000000..bf37117de6a --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/ingressclass.yaml b/stable/traefik/6.1.0/templates/ingressclass.yaml new file mode 100644 index 00000000000..7c62458c82e --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/poddisruptionbudget.yaml b/stable/traefik/6.1.0/templates/poddisruptionbudget.yaml new file mode 100644 index 00000000000..9893e521759 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/clusterrole.yaml b/stable/traefik/6.1.0/templates/rbac/clusterrole.yaml new file mode 100644 index 00000000000..2c63e006414 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/clusterrolebinding.yaml b/stable/traefik/6.1.0/templates/rbac/clusterrolebinding.yaml new file mode 100644 index 00000000000..509e92ff2b7 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/podsecuritypolicy.yaml b/stable/traefik/6.1.0/templates/rbac/podsecuritypolicy.yaml new file mode 100644 index 00000000000..66bc1458d55 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/role.yaml b/stable/traefik/6.1.0/templates/rbac/role.yaml new file mode 100644 index 00000000000..6c763065d6f --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/rolebinding.yaml b/stable/traefik/6.1.0/templates/rbac/rolebinding.yaml new file mode 100644 index 00000000000..10416401867 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/rbac/serviceaccount.yaml b/stable/traefik/6.1.0/templates/rbac/serviceaccount.yaml new file mode 100644 index 00000000000..bcc941eec95 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/templates/service.yaml b/stable/traefik/6.1.0/templates/service.yaml new file mode 100644 index 00000000000..aa9f418ae06 --- /dev/null +++ b/stable/traefik/6.1.0/templates/service.yaml @@ -0,0 +1,112 @@ +{{- 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 +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.1.0/templates/tlsoption.yaml b/stable/traefik/6.1.0/templates/tlsoption.yaml new file mode 100644 index 00000000000..ec46e8bbc94 --- /dev/null +++ b/stable/traefik/6.1.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.1.0/test_values.yaml b/stable/traefik/6.1.0/test_values.yaml new file mode 100644 index 00000000000..8d0ba5213e5 --- /dev/null +++ b/stable/traefik/6.1.0/test_values.yaml @@ -0,0 +1,406 @@ +# 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 diff --git a/stable/traefik/6.1.0/values.yaml b/stable/traefik/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/transmission/6.1.0/CONFIG.md b/stable/transmission/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/transmission/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/transmission/6.1.0/Chart.lock new file mode 100644 index 00000000000..dc3223721d7 --- /dev/null +++ b/stable/transmission/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:10.878765866Z" diff --git a/stable/transmission/6.1.0/Chart.yaml b/stable/transmission/6.1.0/Chart.yaml new file mode 100644 index 00000000000..1be0259b8da --- /dev/null +++ b/stable/transmission/6.1.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/transmission +icon: https://github.com/Jackett/Jackett/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: transmission +sources: +- https://github.com/transmission/transmission +- https://hub.docker.com/r/linuxserver/transmission +type: application +version: 6.1.0 diff --git a/stable/transmission/6.1.0/README.md b/stable/transmission/6.1.0/README.md new file mode 100644 index 00000000000..dfd6113a83f --- /dev/null +++ b/stable/transmission/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/transmission/6.1.0/app-readme.md new file mode 100644 index 00000000000..7e8f54afb7e --- /dev/null +++ b/stable/transmission/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/transmission/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/transmission/6.1.0/ix_values.yaml b/stable/transmission/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..aeea220e56b --- /dev/null +++ b/stable/transmission/6.1.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.1.0/questions.yaml b/stable/transmission/6.1.0/questions.yaml new file mode 100644 index 00000000000..74613b9814e --- /dev/null +++ b/stable/transmission/6.1.0/questions.yaml @@ -0,0 +1,1134 @@ +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: 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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/transmission/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..f6d3b6d3a08 --- /dev/null +++ b/stable/transmission/6.1.0/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/transmission/6.1.0/test_values.yaml b/stable/transmission/6.1.0/test_values.yaml new file mode 100644 index 00000000000..c2388fbd06c --- /dev/null +++ b/stable/transmission/6.1.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.1.0/values.yaml b/stable/transmission/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/truecommand/6.1.0/CONFIG.md b/stable/truecommand/6.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/truecommand/6.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/truecommand/6.1.0/Chart.lock new file mode 100644 index 00000000000..c5d9ec453a6 --- /dev/null +++ b/stable/truecommand/6.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +digest: sha256:c2aaac27d71014f9b3318045c005b3e811c126f61deb2abd67ff88b063372396 +generated: "2021-06-14T16:02:11.817016831Z" diff --git a/stable/truecommand/6.1.0/Chart.yaml b/stable/truecommand/6.1.0/Chart.yaml new file mode 100644 index 00000000000..fab9786cb2d --- /dev/null +++ b/stable/truecommand/6.1.0/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: nightly +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +deprecated: false +description: Aggregated management of TrueNAS devices +home: https://github.com/truecharts/apps/tree/master/charts/incubator/truecommand +icon: https://www.ixsystems.com/documentation/truecommand/1.2/_static/tv-logo.png +keywords: +- truecommand +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: truecommand +sources: +- https://hub.docker.com/r/ixsystems/truecommand +type: application +version: 6.1.0 diff --git a/stable/truecommand/6.1.0/README.md b/stable/truecommand/6.1.0/README.md new file mode 100644 index 00000000000..9b8afcdf8be --- /dev/null +++ b/stable/truecommand/6.1.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 6.0.4](https://img.shields.io/badge/Version-6.0.4-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.1.1 | + +## 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.1.0/app-readme.md b/stable/truecommand/6.1.0/app-readme.md new file mode 100644 index 00000000000..8e1468487fc --- /dev/null +++ b/stable/truecommand/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/truecommand/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/truecommand/6.1.0/ix_values.yaml b/stable/truecommand/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..feeb16a6372 --- /dev/null +++ b/stable/truecommand/6.1.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.1.0/questions.yaml b/stable/truecommand/6.1.0/questions.yaml new file mode 100644 index 00000000000..57479dc563d --- /dev/null +++ b/stable/truecommand/6.1.0/questions.yaml @@ -0,0 +1,607 @@ +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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/truecommand/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/truecommand/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/truecommand/6.1.0/test_values.yaml b/stable/truecommand/6.1.0/test_values.yaml new file mode 100644 index 00000000000..7710492dc3d --- /dev/null +++ b/stable/truecommand/6.1.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.1.0/values.yaml b/stable/truecommand/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/vaultwarden/3.1.0/CONFIG.md b/stable/vaultwarden/3.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/vaultwarden/3.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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.1.0/Chart.lock b/stable/vaultwarden/3.1.0/Chart.lock new file mode 100644 index 00000000000..59477d914c2 --- /dev/null +++ b/stable/vaultwarden/3.1.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.9 +digest: sha256:6f9b3342e87127a57224436d86c355fff149ddd1456a20340ddf9c86adda86f6 +generated: "2021-06-14T16:02:15.641130531Z" diff --git a/stable/vaultwarden/3.1.0/Chart.yaml b/stable/vaultwarden/3.1.0/Chart.yaml new file mode 100644 index 00000000000..0fc3b736821 --- /dev/null +++ b/stable/vaultwarden/3.1.0/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.3.1 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.9 +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.1.0 diff --git a/stable/vaultwarden/3.1.0/README.md b/stable/vaultwarden/3.1.0/README.md new file mode 100644 index 00000000000..6357d8b4f88 --- /dev/null +++ b/stable/vaultwarden/3.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.0.2](https://img.shields.io/badge/Version-3.0.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.4.9 | +| https://truecharts.org/ | common | 6.1.1 | + +## 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.1.0/app-readme.md b/stable/vaultwarden/3.1.0/app-readme.md new file mode 100644 index 00000000000..11f37b5efea --- /dev/null +++ b/stable/vaultwarden/3.1.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.1.0/charts/common-6.3.1.tgz b/stable/vaultwarden/3.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/3.1.0/charts/postgresql-10.4.9.tgz b/stable/vaultwarden/3.1.0/charts/postgresql-10.4.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cc65122b86d87f51c1a4fb223e55d0195726b004 GIT binary patch literal 48739 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 d{wG4-t!-^=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.1.0 diff --git a/stable/zwavejs2mqtt/6.1.0/README.md b/stable/zwavejs2mqtt/6.1.0/README.md new file mode 100644 index 00000000000..99ca5995994 --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 6.0.2](https://img.shields.io/badge/Version-6.0.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.1.1 | + +## 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.1.0/app-readme.md b/stable/zwavejs2mqtt/6.1.0/app-readme.md new file mode 100644 index 00000000000..4bb94a1a5a3 --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.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.1.0/charts/common-6.3.1.tgz b/stable/zwavejs2mqtt/6.1.0/charts/common-6.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89e54deef86cae004c87636fff70d195e8e5b984 GIT binary patch literal 22880 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 P00960vTW%X0B8aL_c;Yi literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/6.1.0/ix_values.yaml b/stable/zwavejs2mqtt/6.1.0/ix_values.yaml new file mode 100644 index 00000000000..6cff59a18e8 --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.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: 4.5.2 + +# 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.1.0/questions.yaml b/stable/zwavejs2mqtt/6.1.0/questions.yaml new file mode 100644 index 00000000000..1e368c4edda --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.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: 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: "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: "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 + default: "/config" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - 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: 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.1.0/templates/common.yaml b/stable/zwavejs2mqtt/6.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/zwavejs2mqtt/6.1.0/test_values.yaml b/stable/zwavejs2mqtt/6.1.0/test_values.yaml new file mode 100644 index 00000000000..59fd2db1b23 --- /dev/null +++ b/stable/zwavejs2mqtt/6.1.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: 4.5.2 + +strategy: + type: Recreate + +# 5=tty 20=dialout 24=cdrom +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [5, 20, 24] + +# # See more environment variables in the zwavejs2mqtt documentation +# https://zwave-js.github.io/zwavejs2mqtt/#/guide/env-vars +env: {} + # OZW_NETWORK_KEY: + +probes: + liveness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + readiness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + startup: + enabled: false + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + +service: + main: + ports: + main: + port: 8091 + ws: + enabled: true + type: ClusterIP + ports: + ws: + enabled: true + port: 3000 + protocol: TCP + +# Privileged may be required if USB controller is accessed directly through the host machine +# securityContext: +# privileged: true + +persistence: + config: + enabled: true + mountPath: "/config" + type: emptyDir + + +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller diff --git a/stable/zwavejs2mqtt/6.1.0/values.yaml b/stable/zwavejs2mqtt/6.1.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d