From 097e6e81602b5cfd643d5ed114a8660dfd3b105a Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Tue, 25 May 2021 10:48:37 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- deprecated/bitwarden/1.3.1/CONFIG.md | 8 + deprecated/bitwarden/1.3.1/Chart.lock | 9 + deprecated/bitwarden/1.3.1/Chart.yaml | 30 + deprecated/bitwarden/1.3.1/README.md | 56 + deprecated/bitwarden/1.3.1/app-readme.md | 3 + .../bitwarden/1.3.1/charts/common-3.5.8.tgz | Bin 0 -> 16411 bytes .../1.3.1/charts/postgresql-10.4.6.tgz | Bin 0 -> 48717 bytes deprecated/bitwarden/1.3.1/ix_values.yaml | 54 + deprecated/bitwarden/1.3.1/questions.yaml | 955 ++++++++++++++++++ .../1.3.1/templates/_specialingress.tpl | 105 ++ .../bitwarden/1.3.1/templates/_validate.tpl | 17 + .../bitwarden/1.3.1/templates/common.yaml | 8 + .../bitwarden/1.3.1/templates/configmap.yaml | 114 +++ .../bitwarden/1.3.1/templates/secrets.yaml | 56 + deprecated/bitwarden/1.3.1/test_values.yaml | 177 ++++ deprecated/bitwarden/1.3.1/values.yaml | 0 deprecated/nzbhydra/5.0.2/CONFIG.md | 8 + deprecated/nzbhydra/5.0.2/Chart.lock | 6 + deprecated/nzbhydra/5.0.2/Chart.yaml | 24 + deprecated/nzbhydra/5.0.2/README.md | 56 + deprecated/nzbhydra/5.0.2/app-readme.md | 3 + .../nzbhydra/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes deprecated/nzbhydra/5.0.2/ix_values.yaml | 51 + deprecated/nzbhydra/5.0.2/questions.yaml | 419 ++++++++ .../nzbhydra/5.0.2/templates/common.yaml | 1 + deprecated/nzbhydra/5.0.2/test_values.yaml | 66 ++ deprecated/nzbhydra/5.0.2/values.yaml | 0 incubator/appdaemon/2.0.2/CONFIG.md | 8 + incubator/appdaemon/2.0.2/Chart.lock | 6 + incubator/appdaemon/2.0.2/Chart.yaml | 29 + incubator/appdaemon/2.0.2/README.md | 53 + incubator/appdaemon/2.0.2/app-readme.md | 3 + .../appdaemon/2.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/appdaemon/2.0.2/ix_values.yaml | 16 + incubator/appdaemon/2.0.2/questions.yaml | 388 +++++++ .../appdaemon/2.0.2/templates/common.yaml | 1 + incubator/appdaemon/2.0.2/test_values.yaml | 42 + incubator/appdaemon/2.0.2/values.yaml | 0 incubator/bazarr/5.0.2/CONFIG.md | 8 + incubator/bazarr/5.0.2/Chart.lock | 6 + incubator/bazarr/5.0.2/Chart.yaml | 35 + incubator/bazarr/5.0.2/README.md | 56 + incubator/bazarr/5.0.2/app-readme.md | 3 + .../bazarr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/bazarr/5.0.2/ix_values.yaml | 15 + incubator/bazarr/5.0.2/questions.yaml | 419 ++++++++ incubator/bazarr/5.0.2/templates/common.yaml | 1 + incubator/bazarr/5.0.2/test_values.yaml | 30 + incubator/bazarr/5.0.2/values.yaml | 0 incubator/calibre-web/5.0.2/CONFIG.md | 8 + incubator/calibre-web/5.0.2/Chart.lock | 6 + incubator/calibre-web/5.0.2/Chart.yaml | 29 + incubator/calibre-web/5.0.2/README.md | 56 + incubator/calibre-web/5.0.2/app-readme.md | 3 + .../calibre-web/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/calibre-web/5.0.2/ix_values.yaml | 16 + incubator/calibre-web/5.0.2/questions.yaml | 367 +++++++ .../calibre-web/5.0.2/templates/common.yaml | 1 + incubator/calibre-web/5.0.2/test_values.yaml | 32 + incubator/calibre-web/5.0.2/values.yaml | 0 incubator/deluge/5.0.2/CONFIG.md | 8 + incubator/deluge/5.0.2/Chart.lock | 6 + incubator/deluge/5.0.2/Chart.yaml | 25 + incubator/deluge/5.0.2/README.md | 54 + incubator/deluge/5.0.2/app-readme.md | 3 + .../deluge/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/deluge/5.0.2/ix_values.yaml | 16 + incubator/deluge/5.0.2/questions.yaml | 518 ++++++++++ incubator/deluge/5.0.2/templates/common.yaml | 1 + incubator/deluge/5.0.2/test_values.yaml | 37 + incubator/deluge/5.0.2/values.yaml | 0 incubator/fireflyiii/3.0.3/CONFIG.md | 8 + incubator/fireflyiii/3.0.3/Chart.lock | 9 + incubator/fireflyiii/3.0.3/Chart.yaml | 30 + incubator/fireflyiii/3.0.3/README.md | 54 + incubator/fireflyiii/3.0.3/app-readme.md | 3 + .../fireflyiii/3.0.3/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes .../3.0.3/charts/postgresql-10.4.6.tgz | Bin 0 -> 48717 bytes incubator/fireflyiii/3.0.3/ix_values.yaml | 41 + incubator/fireflyiii/3.0.3/questions.yaml | 567 +++++++++++ .../fireflyiii/3.0.3/templates/common.yaml | 5 + .../fireflyiii/3.0.3/templates/secrets.yaml | 19 + incubator/fireflyiii/3.0.3/test_values.yaml | 83 ++ incubator/fireflyiii/3.0.3/values.yaml | 0 incubator/freshrss/5.0.2/CONFIG.md | 8 + incubator/freshrss/5.0.2/Chart.lock | 6 + incubator/freshrss/5.0.2/Chart.yaml | 27 + incubator/freshrss/5.0.2/README.md | 56 + incubator/freshrss/5.0.2/app-readme.md | 3 + .../freshrss/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/freshrss/5.0.2/ix_values.yaml | 16 + incubator/freshrss/5.0.2/questions.yaml | 367 +++++++ .../freshrss/5.0.2/templates/common.yaml | 1 + incubator/freshrss/5.0.2/test_values.yaml | 30 + incubator/freshrss/5.0.2/values.yaml | 0 incubator/gaps/5.0.2/CONFIG.md | 8 + incubator/gaps/5.0.2/Chart.lock | 6 + incubator/gaps/5.0.2/Chart.yaml | 28 + incubator/gaps/5.0.2/README.md | 55 + incubator/gaps/5.0.2/app-readme.md | 3 + incubator/gaps/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/gaps/5.0.2/ix_values.yaml | 15 + incubator/gaps/5.0.2/questions.yaml | 418 ++++++++ incubator/gaps/5.0.2/templates/common.yaml | 1 + incubator/gaps/5.0.2/test_values.yaml | 28 + incubator/gaps/5.0.2/values.yaml | 0 incubator/grocy/5.0.2/CONFIG.md | 8 + incubator/grocy/5.0.2/Chart.lock | 6 + incubator/grocy/5.0.2/Chart.yaml | 26 + incubator/grocy/5.0.2/README.md | 55 + incubator/grocy/5.0.2/app-readme.md | 3 + incubator/grocy/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/grocy/5.0.2/ix_values.yaml | 16 + incubator/grocy/5.0.2/questions.yaml | 366 +++++++ incubator/grocy/5.0.2/templates/common.yaml | 1 + incubator/grocy/5.0.2/test_values.yaml | 30 + incubator/grocy/5.0.2/values.yaml | 0 incubator/heimdall/5.0.2/CONFIG.md | 8 + incubator/heimdall/5.0.2/Chart.lock | 6 + incubator/heimdall/5.0.2/Chart.yaml | 24 + incubator/heimdall/5.0.2/README.md | 54 + incubator/heimdall/5.0.2/app-readme.md | 3 + .../heimdall/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/heimdall/5.0.2/ix_values.yaml | 16 + incubator/heimdall/5.0.2/questions.yaml | 367 +++++++ .../heimdall/5.0.2/templates/common.yaml | 1 + incubator/heimdall/5.0.2/test_values.yaml | 34 + incubator/heimdall/5.0.2/values.yaml | 0 incubator/lazylibrarian/5.0.2/CONFIG.md | 8 + incubator/lazylibrarian/5.0.2/Chart.lock | 6 + incubator/lazylibrarian/5.0.2/Chart.yaml | 30 + incubator/lazylibrarian/5.0.2/README.md | 56 + incubator/lazylibrarian/5.0.2/app-readme.md | 3 + .../5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/lazylibrarian/5.0.2/ix_values.yaml | 16 + incubator/lazylibrarian/5.0.2/questions.yaml | 367 +++++++ .../lazylibrarian/5.0.2/templates/common.yaml | 1 + .../lazylibrarian/5.0.2/test_values.yaml | 30 + incubator/lazylibrarian/5.0.2/values.yaml | 0 incubator/lychee/5.0.2/CONFIG.md | 8 + incubator/lychee/5.0.2/Chart.lock | 6 + incubator/lychee/5.0.2/Chart.yaml | 29 + incubator/lychee/5.0.2/README.md | 56 + incubator/lychee/5.0.2/app-readme.md | 3 + .../lychee/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/lychee/5.0.2/ix_values.yaml | 16 + incubator/lychee/5.0.2/questions.yaml | 367 +++++++ incubator/lychee/5.0.2/templates/common.yaml | 1 + incubator/lychee/5.0.2/test_values.yaml | 30 + incubator/lychee/5.0.2/values.yaml | 0 incubator/navidrome/5.0.2/CONFIG.md | 8 + incubator/navidrome/5.0.2/Chart.lock | 6 + incubator/navidrome/5.0.2/Chart.yaml | 28 + incubator/navidrome/5.0.2/README.md | 56 + incubator/navidrome/5.0.2/app-readme.md | 3 + .../navidrome/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/navidrome/5.0.2/ix_values.yaml | 15 + incubator/navidrome/5.0.2/questions.yaml | 419 ++++++++ .../navidrome/5.0.2/templates/common.yaml | 1 + incubator/navidrome/5.0.2/test_values.yaml | 32 + incubator/navidrome/5.0.2/values.yaml | 0 incubator/node-red/5.0.2/CONFIG.md | 8 + incubator/node-red/5.0.2/Chart.lock | 6 + incubator/node-red/5.0.2/Chart.yaml | 26 + incubator/node-red/5.0.2/README.md | 55 + incubator/node-red/5.0.2/app-readme.md | 3 + .../node-red/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/node-red/5.0.2/ix_values.yaml | 15 + incubator/node-red/5.0.2/questions.yaml | 419 ++++++++ .../node-red/5.0.2/templates/common.yaml | 1 + incubator/node-red/5.0.2/test_values.yaml | 34 + incubator/node-red/5.0.2/values.yaml | 0 incubator/nzbget/5.0.2/CONFIG.md | 8 + incubator/nzbget/5.0.2/Chart.lock | 6 + incubator/nzbget/5.0.2/Chart.yaml | 27 + incubator/nzbget/5.0.2/README.md | 56 + incubator/nzbget/5.0.2/app-readme.md | 3 + .../nzbget/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/nzbget/5.0.2/ix_values.yaml | 15 + incubator/nzbget/5.0.2/questions.yaml | 419 ++++++++ incubator/nzbget/5.0.2/templates/common.yaml | 1 + incubator/nzbget/5.0.2/test_values.yaml | 25 + incubator/nzbget/5.0.2/values.yaml | 0 incubator/organizr/5.0.2/CONFIG.md | 8 + incubator/organizr/5.0.2/Chart.lock | 6 + incubator/organizr/5.0.2/Chart.yaml | 26 + incubator/organizr/5.0.2/README.md | 56 + incubator/organizr/5.0.2/app-readme.md | 3 + .../organizr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/organizr/5.0.2/ix_values.yaml | 16 + incubator/organizr/5.0.2/questions.yaml | 434 ++++++++ .../organizr/5.0.2/templates/common.yaml | 1 + incubator/organizr/5.0.2/test_values.yaml | 30 + incubator/organizr/5.0.2/values.yaml | 0 incubator/podgrab/3.0.3/CONFIG.md | 8 + incubator/podgrab/3.0.3/Chart.lock | 6 + incubator/podgrab/3.0.3/Chart.yaml | 28 + incubator/podgrab/3.0.3/README.md | 54 + incubator/podgrab/3.0.3/app-readme.md | 3 + .../podgrab/3.0.3/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/podgrab/3.0.3/ix_values.yaml | 16 + incubator/podgrab/3.0.3/questions.yaml | 427 ++++++++ incubator/podgrab/3.0.3/templates/common.yaml | 1 + incubator/podgrab/3.0.3/test_values.yaml | 51 + incubator/podgrab/3.0.3/values.yaml | 0 incubator/qbittorrent/5.0.2/CONFIG.md | 8 + incubator/qbittorrent/5.0.2/Chart.lock | 6 + incubator/qbittorrent/5.0.2/Chart.yaml | 26 + incubator/qbittorrent/5.0.2/README.md | 55 + incubator/qbittorrent/5.0.2/app-readme.md | 3 + .../qbittorrent/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/qbittorrent/5.0.2/ix_values.yaml | 15 + incubator/qbittorrent/5.0.2/questions.yaml | 570 +++++++++++ .../5.0.2/templates/_configmap.tpl | 32 + .../qbittorrent/5.0.2/templates/common.yaml | 6 + incubator/qbittorrent/5.0.2/test_values.yaml | 55 + incubator/qbittorrent/5.0.2/values.yaml | 0 incubator/readarr/5.0.2/CONFIG.md | 8 + incubator/readarr/5.0.2/Chart.lock | 6 + incubator/readarr/5.0.2/Chart.yaml | 33 + incubator/readarr/5.0.2/README.md | 56 + incubator/readarr/5.0.2/app-readme.md | 3 + .../readarr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/readarr/5.0.2/ix_values.yaml | 37 + incubator/readarr/5.0.2/questions.yaml | 419 ++++++++ incubator/readarr/5.0.2/templates/common.yaml | 1 + incubator/readarr/5.0.2/test_values.yaml | 51 + incubator/readarr/5.0.2/values.yaml | 0 incubator/sabnzbd/5.0.2/CONFIG.md | 8 + incubator/sabnzbd/5.0.2/Chart.lock | 6 + incubator/sabnzbd/5.0.2/Chart.yaml | 27 + incubator/sabnzbd/5.0.2/README.md | 56 + incubator/sabnzbd/5.0.2/app-readme.md | 3 + .../sabnzbd/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/sabnzbd/5.0.2/ix_values.yaml | 15 + incubator/sabnzbd/5.0.2/questions.yaml | 426 ++++++++ incubator/sabnzbd/5.0.2/templates/common.yaml | 1 + incubator/sabnzbd/5.0.2/test_values.yaml | 30 + incubator/sabnzbd/5.0.2/values.yaml | 0 incubator/tvheadend/6.0.3/CONFIG.md | 8 + incubator/tvheadend/6.0.3/Chart.lock | 6 + incubator/tvheadend/6.0.3/Chart.yaml | 28 + incubator/tvheadend/6.0.3/README.md | 55 + incubator/tvheadend/6.0.3/app-readme.md | 3 + .../tvheadend/6.0.3/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/tvheadend/6.0.3/ix_values.yaml | 15 + incubator/tvheadend/6.0.3/questions.yaml | 465 +++++++++ .../tvheadend/6.0.3/templates/common.yaml | 1 + incubator/tvheadend/6.0.3/test_values.yaml | 40 + incubator/tvheadend/6.0.3/values.yaml | 0 incubator/unifi/5.0.2/CONFIG.md | 8 + incubator/unifi/5.0.2/Chart.lock | 6 + incubator/unifi/5.0.2/Chart.yaml | 26 + incubator/unifi/5.0.2/README.md | 55 + incubator/unifi/5.0.2/app-readme.md | 3 + incubator/unifi/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes incubator/unifi/5.0.2/ix_values.yaml | 19 + incubator/unifi/5.0.2/questions.yaml | 567 +++++++++++ incubator/unifi/5.0.2/templates/common.yaml | 1 + incubator/unifi/5.0.2/test_values.yaml | 51 + incubator/unifi/5.0.2/values.yaml | 0 stable/collabora-online/5.0.2/CONFIG.md | 8 + stable/collabora-online/5.0.2/Chart.lock | 6 + stable/collabora-online/5.0.2/Chart.yaml | 29 + stable/collabora-online/5.0.2/README.md | 56 + stable/collabora-online/5.0.2/app-readme.md | 3 + .../5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/collabora-online/5.0.2/ix_values.yaml | 14 + stable/collabora-online/5.0.2/questions.yaml | 313 ++++++ .../5.0.2/templates/common.yaml | 1 + .../collabora-online/5.0.2/test_values.yaml | 22 + stable/collabora-online/5.0.2/values.yaml | 0 stable/deepstack-cpu/3.0.2/CONFIG.md | 8 + stable/deepstack-cpu/3.0.2/Chart.lock | 6 + stable/deepstack-cpu/3.0.2/Chart.yaml | 29 + stable/deepstack-cpu/3.0.2/README.md | 56 + stable/deepstack-cpu/3.0.2/app-readme.md | 3 + .../3.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/deepstack-cpu/3.0.2/ix_values.yaml | 19 + stable/deepstack-cpu/3.0.2/questions.yaml | 420 ++++++++ .../deepstack-cpu/3.0.2/templates/common.yaml | 1 + stable/deepstack-cpu/3.0.2/test_values.yaml | 43 + stable/deepstack-cpu/3.0.2/values.yaml | 0 stable/emby/5.0.2/CONFIG.md | 8 + stable/emby/5.0.2/Chart.lock | 6 + stable/emby/5.0.2/Chart.yaml | 29 + stable/emby/5.0.2/README.md | 55 + stable/emby/5.0.2/app-readme.md | 3 + stable/emby/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/emby/5.0.2/ix_values.yaml | 22 + stable/emby/5.0.2/questions.yaml | 415 ++++++++ stable/emby/5.0.2/templates/common.yaml | 1 + stable/emby/5.0.2/test_values.yaml | 33 + stable/emby/5.0.2/values.yaml | 0 stable/esphome/5.0.2/CONFIG.md | 8 + stable/esphome/5.0.2/Chart.lock | 6 + stable/esphome/5.0.2/Chart.yaml | 30 + stable/esphome/5.0.2/README.md | 56 + stable/esphome/5.0.2/app-readme.md | 3 + stable/esphome/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/esphome/5.0.2/ix_values.yaml | 15 + stable/esphome/5.0.2/questions.yaml | 479 +++++++++ stable/esphome/5.0.2/templates/common.yaml | 1 + stable/esphome/5.0.2/test_values.yaml | 34 + stable/esphome/5.0.2/values.yaml | 0 stable/handbrake/5.0.2/CONFIG.md | 8 + stable/handbrake/5.0.2/Chart.lock | 6 + stable/handbrake/5.0.2/Chart.yaml | 31 + stable/handbrake/5.0.2/README.md | 56 + stable/handbrake/5.0.2/app-readme.md | 3 + .../handbrake/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/handbrake/5.0.2/ix_values.yaml | 20 + stable/handbrake/5.0.2/questions.yaml | 590 +++++++++++ stable/handbrake/5.0.2/templates/common.yaml | 1 + stable/handbrake/5.0.2/test_values.yaml | 55 + stable/handbrake/5.0.2/values.yaml | 0 stable/home-assistant/5.0.2/CONFIG.md | 8 + stable/home-assistant/5.0.2/Chart.lock | 6 + stable/home-assistant/5.0.2/Chart.yaml | 31 + stable/home-assistant/5.0.2/README.md | 56 + stable/home-assistant/5.0.2/app-readme.md | 3 + .../5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/home-assistant/5.0.2/ix_values.yaml | 15 + stable/home-assistant/5.0.2/questions.yaml | 434 ++++++++ .../5.0.2/templates/common.yaml | 1 + .../5.0.2/templates/secret.yaml | 15 + stable/home-assistant/5.0.2/test_values.yaml | 101 ++ stable/home-assistant/5.0.2/values.yaml | 0 stable/jackett/5.0.2/CONFIG.md | 8 + stable/jackett/5.0.2/Chart.lock | 6 + stable/jackett/5.0.2/Chart.yaml | 31 + stable/jackett/5.0.2/README.md | 56 + stable/jackett/5.0.2/app-readme.md | 3 + stable/jackett/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/jackett/5.0.2/ix_values.yaml | 15 + stable/jackett/5.0.2/questions.yaml | 418 ++++++++ stable/jackett/5.0.2/templates/common.yaml | 1 + stable/jackett/5.0.2/test_values.yaml | 33 + stable/jackett/5.0.2/values.yaml | 0 stable/jellyfin/5.0.2/CONFIG.md | 8 + stable/jellyfin/5.0.2/Chart.lock | 6 + stable/jellyfin/5.0.2/Chart.yaml | 31 + stable/jellyfin/5.0.2/README.md | 56 + stable/jellyfin/5.0.2/app-readme.md | 3 + stable/jellyfin/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/jellyfin/5.0.2/ix_values.yaml | 22 + stable/jellyfin/5.0.2/questions.yaml | 415 ++++++++ stable/jellyfin/5.0.2/templates/common.yaml | 1 + stable/jellyfin/5.0.2/test_values.yaml | 33 + stable/jellyfin/5.0.2/values.yaml | 0 stable/kms/5.0.2/CONFIG.md | 8 + stable/kms/5.0.2/Chart.lock | 6 + stable/kms/5.0.2/Chart.yaml | 26 + stable/kms/5.0.2/README.md | 54 + stable/kms/5.0.2/app-readme.md | 3 + stable/kms/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/kms/5.0.2/ix_values.yaml | 16 + stable/kms/5.0.2/questions.yaml | 285 ++++++ stable/kms/5.0.2/templates/common.yaml | 1 + stable/kms/5.0.2/test_values.yaml | 15 + stable/kms/5.0.2/values.yaml | 0 stable/lidarr/5.0.2/CONFIG.md | 8 + stable/lidarr/5.0.2/Chart.lock | 6 + stable/lidarr/5.0.2/Chart.yaml | 31 + stable/lidarr/5.0.2/README.md | 56 + stable/lidarr/5.0.2/app-readme.md | 3 + stable/lidarr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/lidarr/5.0.2/ix_values.yaml | 37 + stable/lidarr/5.0.2/questions.yaml | 418 ++++++++ stable/lidarr/5.0.2/templates/common.yaml | 1 + stable/lidarr/5.0.2/test_values.yaml | 51 + stable/lidarr/5.0.2/values.yaml | 0 stable/ombi/5.0.2/CONFIG.md | 8 + stable/ombi/5.0.2/Chart.lock | 6 + stable/ombi/5.0.2/Chart.yaml | 34 + stable/ombi/5.0.2/README.md | 56 + stable/ombi/5.0.2/app-readme.md | 3 + stable/ombi/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/ombi/5.0.2/ix_values.yaml | 15 + stable/ombi/5.0.2/questions.yaml | 418 ++++++++ stable/ombi/5.0.2/templates/common.yaml | 1 + stable/ombi/5.0.2/test_values.yaml | 43 + stable/ombi/5.0.2/values.yaml | 0 stable/plex/4.0.2/CONFIG.md | 8 + stable/plex/4.0.2/Chart.lock | 6 + stable/plex/4.0.2/Chart.yaml | 27 + stable/plex/4.0.2/README.md | 53 + stable/plex/4.0.2/app-readme.md | 3 + stable/plex/4.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/plex/4.0.2/ix_values.yaml | 22 + stable/plex/4.0.2/questions.yaml | 433 ++++++++ stable/plex/4.0.2/templates/common.yaml | 1 + stable/plex/4.0.2/test_values.yaml | 33 + stable/plex/4.0.2/values.yaml | 0 stable/radarr/5.0.2/CONFIG.md | 8 + stable/radarr/5.0.2/Chart.lock | 6 + stable/radarr/5.0.2/Chart.yaml | 31 + stable/radarr/5.0.2/README.md | 56 + stable/radarr/5.0.2/app-readme.md | 3 + stable/radarr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/radarr/5.0.2/ix_values.yaml | 37 + stable/radarr/5.0.2/questions.yaml | 418 ++++++++ stable/radarr/5.0.2/templates/common.yaml | 1 + stable/radarr/5.0.2/test_values.yaml | 51 + stable/radarr/5.0.2/values.yaml | 0 stable/sonarr/5.0.2/CONFIG.md | 8 + stable/sonarr/5.0.2/Chart.lock | 6 + stable/sonarr/5.0.2/Chart.yaml | 31 + stable/sonarr/5.0.2/README.md | 56 + stable/sonarr/5.0.2/app-readme.md | 3 + stable/sonarr/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/sonarr/5.0.2/ix_values.yaml | 37 + stable/sonarr/5.0.2/questions.yaml | 418 ++++++++ stable/sonarr/5.0.2/templates/common.yaml | 1 + stable/sonarr/5.0.2/test_values.yaml | 51 + stable/sonarr/5.0.2/values.yaml | 0 stable/syncthing/5.1.2/CONFIG.md | 8 + stable/syncthing/5.1.2/Chart.lock | 6 + stable/syncthing/5.1.2/Chart.yaml | 27 + stable/syncthing/5.1.2/README.md | 55 + stable/syncthing/5.1.2/app-readme.md | 3 + .../syncthing/5.1.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/syncthing/5.1.2/ix_values.yaml | 15 + stable/syncthing/5.1.2/questions.yaml | 686 +++++++++++++ stable/syncthing/5.1.2/templates/common.yaml | 1 + stable/syncthing/5.1.2/test_values.yaml | 41 + stable/syncthing/5.1.2/values.yaml | 0 stable/tautulli/5.0.2/CONFIG.md | 8 + stable/tautulli/5.0.2/Chart.lock | 6 + stable/tautulli/5.0.2/Chart.yaml | 30 + stable/tautulli/5.0.2/README.md | 56 + stable/tautulli/5.0.2/app-readme.md | 3 + stable/tautulli/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/tautulli/5.0.2/ix_values.yaml | 15 + stable/tautulli/5.0.2/questions.yaml | 418 ++++++++ stable/tautulli/5.0.2/templates/common.yaml | 1 + stable/tautulli/5.0.2/test_values.yaml | 30 + stable/tautulli/5.0.2/values.yaml | 0 stable/traefik/4.0.1/Chart.lock | 2 +- stable/transmission/5.0.2/CONFIG.md | 8 + stable/transmission/5.0.2/Chart.lock | 6 + stable/transmission/5.0.2/Chart.yaml | 29 + stable/transmission/5.0.2/README.md | 55 + stable/transmission/5.0.2/app-readme.md | 3 + .../5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/transmission/5.0.2/ix_values.yaml | 50 + stable/transmission/5.0.2/questions.yaml | 750 ++++++++++++++ .../5.0.2/templates/_configmap.tpl | 14 + .../transmission/5.0.2/templates/common.yaml | 35 + stable/transmission/5.0.2/test_values.yaml | 82 ++ stable/transmission/5.0.2/values.yaml | 0 stable/truecommand/5.0.2/CONFIG.md | 8 + stable/truecommand/5.0.2/Chart.lock | 6 + stable/truecommand/5.0.2/Chart.yaml | 26 + stable/truecommand/5.0.2/README.md | 54 + stable/truecommand/5.0.2/app-readme.md | 3 + .../truecommand/5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/truecommand/5.0.2/ix_values.yaml | 15 + stable/truecommand/5.0.2/questions.yaml | 367 +++++++ .../truecommand/5.0.2/templates/common.yaml | 1 + stable/truecommand/5.0.2/test_values.yaml | 30 + stable/truecommand/5.0.2/values.yaml | 0 stable/vaultwarden/2.0.3/CONFIG.md | 8 + stable/vaultwarden/2.0.3/Chart.lock | 9 + stable/vaultwarden/2.0.3/Chart.yaml | 36 + stable/vaultwarden/2.0.3/README.md | 56 + stable/vaultwarden/2.0.3/app-readme.md | 3 + .../vaultwarden/2.0.3/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes .../2.0.3/charts/postgresql-10.4.6.tgz | Bin 0 -> 48717 bytes stable/vaultwarden/2.0.3/ix_values.yaml | 54 + stable/vaultwarden/2.0.3/questions.yaml | 955 ++++++++++++++++++ .../2.0.3/templates/_configmap.tpl | 116 +++ .../vaultwarden/2.0.3/templates/_secrets.tpl | 59 ++ .../vaultwarden/2.0.3/templates/_validate.tpl | 17 + .../vaultwarden/2.0.3/templates/common.yaml | 11 + stable/vaultwarden/2.0.3/test_values.yaml | 183 ++++ stable/vaultwarden/2.0.3/values.yaml | 0 stable/zwavejs2mqtt/5.0.2/CONFIG.md | 8 + stable/zwavejs2mqtt/5.0.2/Chart.lock | 6 + stable/zwavejs2mqtt/5.0.2/Chart.yaml | 33 + stable/zwavejs2mqtt/5.0.2/README.md | 56 + stable/zwavejs2mqtt/5.0.2/app-readme.md | 3 + .../5.0.2/charts/common-5.0.2.tgz | Bin 0 -> 22762 bytes stable/zwavejs2mqtt/5.0.2/ix_values.yaml | 66 ++ stable/zwavejs2mqtt/5.0.2/questions.yaml | 551 ++++++++++ .../zwavejs2mqtt/5.0.2/templates/common.yaml | 1 + stable/zwavejs2mqtt/5.0.2/test_values.yaml | 117 +++ stable/zwavejs2mqtt/5.0.2/values.yaml | 0 488 files changed, 28215 insertions(+), 1 deletion(-) create mode 100644 deprecated/bitwarden/1.3.1/CONFIG.md create mode 100644 deprecated/bitwarden/1.3.1/Chart.lock create mode 100644 deprecated/bitwarden/1.3.1/Chart.yaml create mode 100644 deprecated/bitwarden/1.3.1/README.md create mode 100644 deprecated/bitwarden/1.3.1/app-readme.md create mode 100644 deprecated/bitwarden/1.3.1/charts/common-3.5.8.tgz create mode 100644 deprecated/bitwarden/1.3.1/charts/postgresql-10.4.6.tgz create mode 100644 deprecated/bitwarden/1.3.1/ix_values.yaml create mode 100644 deprecated/bitwarden/1.3.1/questions.yaml create mode 100644 deprecated/bitwarden/1.3.1/templates/_specialingress.tpl create mode 100644 deprecated/bitwarden/1.3.1/templates/_validate.tpl create mode 100644 deprecated/bitwarden/1.3.1/templates/common.yaml create mode 100644 deprecated/bitwarden/1.3.1/templates/configmap.yaml create mode 100644 deprecated/bitwarden/1.3.1/templates/secrets.yaml create mode 100644 deprecated/bitwarden/1.3.1/test_values.yaml create mode 100644 deprecated/bitwarden/1.3.1/values.yaml create mode 100644 deprecated/nzbhydra/5.0.2/CONFIG.md create mode 100644 deprecated/nzbhydra/5.0.2/Chart.lock create mode 100644 deprecated/nzbhydra/5.0.2/Chart.yaml create mode 100644 deprecated/nzbhydra/5.0.2/README.md create mode 100644 deprecated/nzbhydra/5.0.2/app-readme.md create mode 100644 deprecated/nzbhydra/5.0.2/charts/common-5.0.2.tgz create mode 100644 deprecated/nzbhydra/5.0.2/ix_values.yaml create mode 100644 deprecated/nzbhydra/5.0.2/questions.yaml create mode 100644 deprecated/nzbhydra/5.0.2/templates/common.yaml create mode 100644 deprecated/nzbhydra/5.0.2/test_values.yaml create mode 100644 deprecated/nzbhydra/5.0.2/values.yaml create mode 100644 incubator/appdaemon/2.0.2/CONFIG.md create mode 100644 incubator/appdaemon/2.0.2/Chart.lock create mode 100644 incubator/appdaemon/2.0.2/Chart.yaml create mode 100644 incubator/appdaemon/2.0.2/README.md create mode 100644 incubator/appdaemon/2.0.2/app-readme.md create mode 100644 incubator/appdaemon/2.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/appdaemon/2.0.2/ix_values.yaml create mode 100644 incubator/appdaemon/2.0.2/questions.yaml create mode 100644 incubator/appdaemon/2.0.2/templates/common.yaml create mode 100644 incubator/appdaemon/2.0.2/test_values.yaml create mode 100644 incubator/appdaemon/2.0.2/values.yaml create mode 100644 incubator/bazarr/5.0.2/CONFIG.md create mode 100644 incubator/bazarr/5.0.2/Chart.lock create mode 100644 incubator/bazarr/5.0.2/Chart.yaml create mode 100644 incubator/bazarr/5.0.2/README.md create mode 100644 incubator/bazarr/5.0.2/app-readme.md create mode 100644 incubator/bazarr/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/bazarr/5.0.2/ix_values.yaml create mode 100644 incubator/bazarr/5.0.2/questions.yaml create mode 100644 incubator/bazarr/5.0.2/templates/common.yaml create mode 100644 incubator/bazarr/5.0.2/test_values.yaml create mode 100644 incubator/bazarr/5.0.2/values.yaml create mode 100644 incubator/calibre-web/5.0.2/CONFIG.md create mode 100644 incubator/calibre-web/5.0.2/Chart.lock create mode 100644 incubator/calibre-web/5.0.2/Chart.yaml create mode 100644 incubator/calibre-web/5.0.2/README.md create mode 100644 incubator/calibre-web/5.0.2/app-readme.md create mode 100644 incubator/calibre-web/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/calibre-web/5.0.2/ix_values.yaml create mode 100644 incubator/calibre-web/5.0.2/questions.yaml create mode 100644 incubator/calibre-web/5.0.2/templates/common.yaml create mode 100644 incubator/calibre-web/5.0.2/test_values.yaml create mode 100644 incubator/calibre-web/5.0.2/values.yaml create mode 100644 incubator/deluge/5.0.2/CONFIG.md create mode 100644 incubator/deluge/5.0.2/Chart.lock create mode 100644 incubator/deluge/5.0.2/Chart.yaml create mode 100644 incubator/deluge/5.0.2/README.md create mode 100644 incubator/deluge/5.0.2/app-readme.md create mode 100644 incubator/deluge/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/deluge/5.0.2/ix_values.yaml create mode 100644 incubator/deluge/5.0.2/questions.yaml create mode 100644 incubator/deluge/5.0.2/templates/common.yaml create mode 100644 incubator/deluge/5.0.2/test_values.yaml create mode 100644 incubator/deluge/5.0.2/values.yaml create mode 100644 incubator/fireflyiii/3.0.3/CONFIG.md create mode 100644 incubator/fireflyiii/3.0.3/Chart.lock create mode 100644 incubator/fireflyiii/3.0.3/Chart.yaml create mode 100644 incubator/fireflyiii/3.0.3/README.md create mode 100644 incubator/fireflyiii/3.0.3/app-readme.md create mode 100644 incubator/fireflyiii/3.0.3/charts/common-5.0.2.tgz create mode 100644 incubator/fireflyiii/3.0.3/charts/postgresql-10.4.6.tgz create mode 100644 incubator/fireflyiii/3.0.3/ix_values.yaml create mode 100644 incubator/fireflyiii/3.0.3/questions.yaml create mode 100644 incubator/fireflyiii/3.0.3/templates/common.yaml create mode 100644 incubator/fireflyiii/3.0.3/templates/secrets.yaml create mode 100644 incubator/fireflyiii/3.0.3/test_values.yaml create mode 100644 incubator/fireflyiii/3.0.3/values.yaml create mode 100644 incubator/freshrss/5.0.2/CONFIG.md create mode 100644 incubator/freshrss/5.0.2/Chart.lock create mode 100644 incubator/freshrss/5.0.2/Chart.yaml create mode 100644 incubator/freshrss/5.0.2/README.md create mode 100644 incubator/freshrss/5.0.2/app-readme.md create mode 100644 incubator/freshrss/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/freshrss/5.0.2/ix_values.yaml create mode 100644 incubator/freshrss/5.0.2/questions.yaml create mode 100644 incubator/freshrss/5.0.2/templates/common.yaml create mode 100644 incubator/freshrss/5.0.2/test_values.yaml create mode 100644 incubator/freshrss/5.0.2/values.yaml create mode 100644 incubator/gaps/5.0.2/CONFIG.md create mode 100644 incubator/gaps/5.0.2/Chart.lock create mode 100644 incubator/gaps/5.0.2/Chart.yaml create mode 100644 incubator/gaps/5.0.2/README.md create mode 100644 incubator/gaps/5.0.2/app-readme.md create mode 100644 incubator/gaps/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/gaps/5.0.2/ix_values.yaml create mode 100644 incubator/gaps/5.0.2/questions.yaml create mode 100644 incubator/gaps/5.0.2/templates/common.yaml create mode 100644 incubator/gaps/5.0.2/test_values.yaml create mode 100644 incubator/gaps/5.0.2/values.yaml create mode 100644 incubator/grocy/5.0.2/CONFIG.md create mode 100644 incubator/grocy/5.0.2/Chart.lock create mode 100644 incubator/grocy/5.0.2/Chart.yaml create mode 100644 incubator/grocy/5.0.2/README.md create mode 100644 incubator/grocy/5.0.2/app-readme.md create mode 100644 incubator/grocy/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/grocy/5.0.2/ix_values.yaml create mode 100644 incubator/grocy/5.0.2/questions.yaml create mode 100644 incubator/grocy/5.0.2/templates/common.yaml create mode 100644 incubator/grocy/5.0.2/test_values.yaml create mode 100644 incubator/grocy/5.0.2/values.yaml create mode 100644 incubator/heimdall/5.0.2/CONFIG.md create mode 100644 incubator/heimdall/5.0.2/Chart.lock create mode 100644 incubator/heimdall/5.0.2/Chart.yaml create mode 100644 incubator/heimdall/5.0.2/README.md create mode 100644 incubator/heimdall/5.0.2/app-readme.md create mode 100644 incubator/heimdall/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/heimdall/5.0.2/ix_values.yaml create mode 100644 incubator/heimdall/5.0.2/questions.yaml create mode 100644 incubator/heimdall/5.0.2/templates/common.yaml create mode 100644 incubator/heimdall/5.0.2/test_values.yaml create mode 100644 incubator/heimdall/5.0.2/values.yaml create mode 100644 incubator/lazylibrarian/5.0.2/CONFIG.md create mode 100644 incubator/lazylibrarian/5.0.2/Chart.lock create mode 100644 incubator/lazylibrarian/5.0.2/Chart.yaml create mode 100644 incubator/lazylibrarian/5.0.2/README.md create mode 100644 incubator/lazylibrarian/5.0.2/app-readme.md create mode 100644 incubator/lazylibrarian/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/lazylibrarian/5.0.2/ix_values.yaml create mode 100644 incubator/lazylibrarian/5.0.2/questions.yaml create mode 100644 incubator/lazylibrarian/5.0.2/templates/common.yaml create mode 100644 incubator/lazylibrarian/5.0.2/test_values.yaml create mode 100644 incubator/lazylibrarian/5.0.2/values.yaml create mode 100644 incubator/lychee/5.0.2/CONFIG.md create mode 100644 incubator/lychee/5.0.2/Chart.lock create mode 100644 incubator/lychee/5.0.2/Chart.yaml create mode 100644 incubator/lychee/5.0.2/README.md create mode 100644 incubator/lychee/5.0.2/app-readme.md create mode 100644 incubator/lychee/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/lychee/5.0.2/ix_values.yaml create mode 100644 incubator/lychee/5.0.2/questions.yaml create mode 100644 incubator/lychee/5.0.2/templates/common.yaml create mode 100644 incubator/lychee/5.0.2/test_values.yaml create mode 100644 incubator/lychee/5.0.2/values.yaml create mode 100644 incubator/navidrome/5.0.2/CONFIG.md create mode 100644 incubator/navidrome/5.0.2/Chart.lock create mode 100644 incubator/navidrome/5.0.2/Chart.yaml create mode 100644 incubator/navidrome/5.0.2/README.md create mode 100644 incubator/navidrome/5.0.2/app-readme.md create mode 100644 incubator/navidrome/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/navidrome/5.0.2/ix_values.yaml create mode 100644 incubator/navidrome/5.0.2/questions.yaml create mode 100644 incubator/navidrome/5.0.2/templates/common.yaml create mode 100644 incubator/navidrome/5.0.2/test_values.yaml create mode 100644 incubator/navidrome/5.0.2/values.yaml create mode 100644 incubator/node-red/5.0.2/CONFIG.md create mode 100644 incubator/node-red/5.0.2/Chart.lock create mode 100644 incubator/node-red/5.0.2/Chart.yaml create mode 100644 incubator/node-red/5.0.2/README.md create mode 100644 incubator/node-red/5.0.2/app-readme.md create mode 100644 incubator/node-red/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/node-red/5.0.2/ix_values.yaml create mode 100644 incubator/node-red/5.0.2/questions.yaml create mode 100644 incubator/node-red/5.0.2/templates/common.yaml create mode 100644 incubator/node-red/5.0.2/test_values.yaml create mode 100644 incubator/node-red/5.0.2/values.yaml create mode 100644 incubator/nzbget/5.0.2/CONFIG.md create mode 100644 incubator/nzbget/5.0.2/Chart.lock create mode 100644 incubator/nzbget/5.0.2/Chart.yaml create mode 100644 incubator/nzbget/5.0.2/README.md create mode 100644 incubator/nzbget/5.0.2/app-readme.md create mode 100644 incubator/nzbget/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/nzbget/5.0.2/ix_values.yaml create mode 100644 incubator/nzbget/5.0.2/questions.yaml create mode 100644 incubator/nzbget/5.0.2/templates/common.yaml create mode 100644 incubator/nzbget/5.0.2/test_values.yaml create mode 100644 incubator/nzbget/5.0.2/values.yaml create mode 100644 incubator/organizr/5.0.2/CONFIG.md create mode 100644 incubator/organizr/5.0.2/Chart.lock create mode 100644 incubator/organizr/5.0.2/Chart.yaml create mode 100644 incubator/organizr/5.0.2/README.md create mode 100644 incubator/organizr/5.0.2/app-readme.md create mode 100644 incubator/organizr/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/organizr/5.0.2/ix_values.yaml create mode 100644 incubator/organizr/5.0.2/questions.yaml create mode 100644 incubator/organizr/5.0.2/templates/common.yaml create mode 100644 incubator/organizr/5.0.2/test_values.yaml create mode 100644 incubator/organizr/5.0.2/values.yaml create mode 100644 incubator/podgrab/3.0.3/CONFIG.md create mode 100644 incubator/podgrab/3.0.3/Chart.lock create mode 100644 incubator/podgrab/3.0.3/Chart.yaml create mode 100644 incubator/podgrab/3.0.3/README.md create mode 100644 incubator/podgrab/3.0.3/app-readme.md create mode 100644 incubator/podgrab/3.0.3/charts/common-5.0.2.tgz create mode 100644 incubator/podgrab/3.0.3/ix_values.yaml create mode 100644 incubator/podgrab/3.0.3/questions.yaml create mode 100644 incubator/podgrab/3.0.3/templates/common.yaml create mode 100644 incubator/podgrab/3.0.3/test_values.yaml create mode 100644 incubator/podgrab/3.0.3/values.yaml create mode 100644 incubator/qbittorrent/5.0.2/CONFIG.md create mode 100644 incubator/qbittorrent/5.0.2/Chart.lock create mode 100644 incubator/qbittorrent/5.0.2/Chart.yaml create mode 100644 incubator/qbittorrent/5.0.2/README.md create mode 100644 incubator/qbittorrent/5.0.2/app-readme.md create mode 100644 incubator/qbittorrent/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/qbittorrent/5.0.2/ix_values.yaml create mode 100644 incubator/qbittorrent/5.0.2/questions.yaml create mode 100644 incubator/qbittorrent/5.0.2/templates/_configmap.tpl create mode 100644 incubator/qbittorrent/5.0.2/templates/common.yaml create mode 100644 incubator/qbittorrent/5.0.2/test_values.yaml create mode 100644 incubator/qbittorrent/5.0.2/values.yaml create mode 100644 incubator/readarr/5.0.2/CONFIG.md create mode 100644 incubator/readarr/5.0.2/Chart.lock create mode 100644 incubator/readarr/5.0.2/Chart.yaml create mode 100644 incubator/readarr/5.0.2/README.md create mode 100644 incubator/readarr/5.0.2/app-readme.md create mode 100644 incubator/readarr/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/readarr/5.0.2/ix_values.yaml create mode 100644 incubator/readarr/5.0.2/questions.yaml create mode 100644 incubator/readarr/5.0.2/templates/common.yaml create mode 100644 incubator/readarr/5.0.2/test_values.yaml create mode 100644 incubator/readarr/5.0.2/values.yaml create mode 100644 incubator/sabnzbd/5.0.2/CONFIG.md create mode 100644 incubator/sabnzbd/5.0.2/Chart.lock create mode 100644 incubator/sabnzbd/5.0.2/Chart.yaml create mode 100644 incubator/sabnzbd/5.0.2/README.md create mode 100644 incubator/sabnzbd/5.0.2/app-readme.md create mode 100644 incubator/sabnzbd/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/sabnzbd/5.0.2/ix_values.yaml create mode 100644 incubator/sabnzbd/5.0.2/questions.yaml create mode 100644 incubator/sabnzbd/5.0.2/templates/common.yaml create mode 100644 incubator/sabnzbd/5.0.2/test_values.yaml create mode 100644 incubator/sabnzbd/5.0.2/values.yaml create mode 100644 incubator/tvheadend/6.0.3/CONFIG.md create mode 100644 incubator/tvheadend/6.0.3/Chart.lock create mode 100644 incubator/tvheadend/6.0.3/Chart.yaml create mode 100644 incubator/tvheadend/6.0.3/README.md create mode 100644 incubator/tvheadend/6.0.3/app-readme.md create mode 100644 incubator/tvheadend/6.0.3/charts/common-5.0.2.tgz create mode 100644 incubator/tvheadend/6.0.3/ix_values.yaml create mode 100644 incubator/tvheadend/6.0.3/questions.yaml create mode 100644 incubator/tvheadend/6.0.3/templates/common.yaml create mode 100644 incubator/tvheadend/6.0.3/test_values.yaml create mode 100644 incubator/tvheadend/6.0.3/values.yaml create mode 100644 incubator/unifi/5.0.2/CONFIG.md create mode 100644 incubator/unifi/5.0.2/Chart.lock create mode 100644 incubator/unifi/5.0.2/Chart.yaml create mode 100644 incubator/unifi/5.0.2/README.md create mode 100644 incubator/unifi/5.0.2/app-readme.md create mode 100644 incubator/unifi/5.0.2/charts/common-5.0.2.tgz create mode 100644 incubator/unifi/5.0.2/ix_values.yaml create mode 100644 incubator/unifi/5.0.2/questions.yaml create mode 100644 incubator/unifi/5.0.2/templates/common.yaml create mode 100644 incubator/unifi/5.0.2/test_values.yaml create mode 100644 incubator/unifi/5.0.2/values.yaml create mode 100644 stable/collabora-online/5.0.2/CONFIG.md create mode 100644 stable/collabora-online/5.0.2/Chart.lock create mode 100644 stable/collabora-online/5.0.2/Chart.yaml create mode 100644 stable/collabora-online/5.0.2/README.md create mode 100644 stable/collabora-online/5.0.2/app-readme.md create mode 100644 stable/collabora-online/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/collabora-online/5.0.2/ix_values.yaml create mode 100644 stable/collabora-online/5.0.2/questions.yaml create mode 100644 stable/collabora-online/5.0.2/templates/common.yaml create mode 100644 stable/collabora-online/5.0.2/test_values.yaml create mode 100644 stable/collabora-online/5.0.2/values.yaml create mode 100644 stable/deepstack-cpu/3.0.2/CONFIG.md create mode 100644 stable/deepstack-cpu/3.0.2/Chart.lock create mode 100644 stable/deepstack-cpu/3.0.2/Chart.yaml create mode 100644 stable/deepstack-cpu/3.0.2/README.md create mode 100644 stable/deepstack-cpu/3.0.2/app-readme.md create mode 100644 stable/deepstack-cpu/3.0.2/charts/common-5.0.2.tgz create mode 100644 stable/deepstack-cpu/3.0.2/ix_values.yaml create mode 100644 stable/deepstack-cpu/3.0.2/questions.yaml create mode 100644 stable/deepstack-cpu/3.0.2/templates/common.yaml create mode 100644 stable/deepstack-cpu/3.0.2/test_values.yaml create mode 100644 stable/deepstack-cpu/3.0.2/values.yaml create mode 100644 stable/emby/5.0.2/CONFIG.md create mode 100644 stable/emby/5.0.2/Chart.lock create mode 100644 stable/emby/5.0.2/Chart.yaml create mode 100644 stable/emby/5.0.2/README.md create mode 100644 stable/emby/5.0.2/app-readme.md create mode 100644 stable/emby/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/emby/5.0.2/ix_values.yaml create mode 100644 stable/emby/5.0.2/questions.yaml create mode 100644 stable/emby/5.0.2/templates/common.yaml create mode 100644 stable/emby/5.0.2/test_values.yaml create mode 100644 stable/emby/5.0.2/values.yaml create mode 100644 stable/esphome/5.0.2/CONFIG.md create mode 100644 stable/esphome/5.0.2/Chart.lock create mode 100644 stable/esphome/5.0.2/Chart.yaml create mode 100644 stable/esphome/5.0.2/README.md create mode 100644 stable/esphome/5.0.2/app-readme.md create mode 100644 stable/esphome/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/esphome/5.0.2/ix_values.yaml create mode 100644 stable/esphome/5.0.2/questions.yaml create mode 100644 stable/esphome/5.0.2/templates/common.yaml create mode 100644 stable/esphome/5.0.2/test_values.yaml create mode 100644 stable/esphome/5.0.2/values.yaml create mode 100644 stable/handbrake/5.0.2/CONFIG.md create mode 100644 stable/handbrake/5.0.2/Chart.lock create mode 100644 stable/handbrake/5.0.2/Chart.yaml create mode 100644 stable/handbrake/5.0.2/README.md create mode 100644 stable/handbrake/5.0.2/app-readme.md create mode 100644 stable/handbrake/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/handbrake/5.0.2/ix_values.yaml create mode 100644 stable/handbrake/5.0.2/questions.yaml create mode 100644 stable/handbrake/5.0.2/templates/common.yaml create mode 100644 stable/handbrake/5.0.2/test_values.yaml create mode 100644 stable/handbrake/5.0.2/values.yaml create mode 100644 stable/home-assistant/5.0.2/CONFIG.md create mode 100644 stable/home-assistant/5.0.2/Chart.lock create mode 100644 stable/home-assistant/5.0.2/Chart.yaml create mode 100644 stable/home-assistant/5.0.2/README.md create mode 100644 stable/home-assistant/5.0.2/app-readme.md create mode 100644 stable/home-assistant/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/home-assistant/5.0.2/ix_values.yaml create mode 100644 stable/home-assistant/5.0.2/questions.yaml create mode 100644 stable/home-assistant/5.0.2/templates/common.yaml create mode 100644 stable/home-assistant/5.0.2/templates/secret.yaml create mode 100644 stable/home-assistant/5.0.2/test_values.yaml create mode 100644 stable/home-assistant/5.0.2/values.yaml create mode 100644 stable/jackett/5.0.2/CONFIG.md create mode 100644 stable/jackett/5.0.2/Chart.lock create mode 100644 stable/jackett/5.0.2/Chart.yaml create mode 100644 stable/jackett/5.0.2/README.md create mode 100644 stable/jackett/5.0.2/app-readme.md create mode 100644 stable/jackett/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/jackett/5.0.2/ix_values.yaml create mode 100644 stable/jackett/5.0.2/questions.yaml create mode 100644 stable/jackett/5.0.2/templates/common.yaml create mode 100644 stable/jackett/5.0.2/test_values.yaml create mode 100644 stable/jackett/5.0.2/values.yaml create mode 100644 stable/jellyfin/5.0.2/CONFIG.md create mode 100644 stable/jellyfin/5.0.2/Chart.lock create mode 100644 stable/jellyfin/5.0.2/Chart.yaml create mode 100644 stable/jellyfin/5.0.2/README.md create mode 100644 stable/jellyfin/5.0.2/app-readme.md create mode 100644 stable/jellyfin/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/jellyfin/5.0.2/ix_values.yaml create mode 100644 stable/jellyfin/5.0.2/questions.yaml create mode 100644 stable/jellyfin/5.0.2/templates/common.yaml create mode 100644 stable/jellyfin/5.0.2/test_values.yaml create mode 100644 stable/jellyfin/5.0.2/values.yaml create mode 100644 stable/kms/5.0.2/CONFIG.md create mode 100644 stable/kms/5.0.2/Chart.lock create mode 100644 stable/kms/5.0.2/Chart.yaml create mode 100644 stable/kms/5.0.2/README.md create mode 100644 stable/kms/5.0.2/app-readme.md create mode 100644 stable/kms/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/kms/5.0.2/ix_values.yaml create mode 100644 stable/kms/5.0.2/questions.yaml create mode 100644 stable/kms/5.0.2/templates/common.yaml create mode 100644 stable/kms/5.0.2/test_values.yaml create mode 100644 stable/kms/5.0.2/values.yaml create mode 100644 stable/lidarr/5.0.2/CONFIG.md create mode 100644 stable/lidarr/5.0.2/Chart.lock create mode 100644 stable/lidarr/5.0.2/Chart.yaml create mode 100644 stable/lidarr/5.0.2/README.md create mode 100644 stable/lidarr/5.0.2/app-readme.md create mode 100644 stable/lidarr/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/lidarr/5.0.2/ix_values.yaml create mode 100644 stable/lidarr/5.0.2/questions.yaml create mode 100644 stable/lidarr/5.0.2/templates/common.yaml create mode 100644 stable/lidarr/5.0.2/test_values.yaml create mode 100644 stable/lidarr/5.0.2/values.yaml create mode 100644 stable/ombi/5.0.2/CONFIG.md create mode 100644 stable/ombi/5.0.2/Chart.lock create mode 100644 stable/ombi/5.0.2/Chart.yaml create mode 100644 stable/ombi/5.0.2/README.md create mode 100644 stable/ombi/5.0.2/app-readme.md create mode 100644 stable/ombi/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/ombi/5.0.2/ix_values.yaml create mode 100644 stable/ombi/5.0.2/questions.yaml create mode 100644 stable/ombi/5.0.2/templates/common.yaml create mode 100644 stable/ombi/5.0.2/test_values.yaml create mode 100644 stable/ombi/5.0.2/values.yaml create mode 100644 stable/plex/4.0.2/CONFIG.md create mode 100644 stable/plex/4.0.2/Chart.lock create mode 100644 stable/plex/4.0.2/Chart.yaml create mode 100644 stable/plex/4.0.2/README.md create mode 100644 stable/plex/4.0.2/app-readme.md create mode 100644 stable/plex/4.0.2/charts/common-5.0.2.tgz create mode 100644 stable/plex/4.0.2/ix_values.yaml create mode 100644 stable/plex/4.0.2/questions.yaml create mode 100644 stable/plex/4.0.2/templates/common.yaml create mode 100644 stable/plex/4.0.2/test_values.yaml create mode 100644 stable/plex/4.0.2/values.yaml create mode 100644 stable/radarr/5.0.2/CONFIG.md create mode 100644 stable/radarr/5.0.2/Chart.lock create mode 100644 stable/radarr/5.0.2/Chart.yaml create mode 100644 stable/radarr/5.0.2/README.md create mode 100644 stable/radarr/5.0.2/app-readme.md create mode 100644 stable/radarr/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/radarr/5.0.2/ix_values.yaml create mode 100644 stable/radarr/5.0.2/questions.yaml create mode 100644 stable/radarr/5.0.2/templates/common.yaml create mode 100644 stable/radarr/5.0.2/test_values.yaml create mode 100644 stable/radarr/5.0.2/values.yaml create mode 100644 stable/sonarr/5.0.2/CONFIG.md create mode 100644 stable/sonarr/5.0.2/Chart.lock create mode 100644 stable/sonarr/5.0.2/Chart.yaml create mode 100644 stable/sonarr/5.0.2/README.md create mode 100644 stable/sonarr/5.0.2/app-readme.md create mode 100644 stable/sonarr/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/sonarr/5.0.2/ix_values.yaml create mode 100644 stable/sonarr/5.0.2/questions.yaml create mode 100644 stable/sonarr/5.0.2/templates/common.yaml create mode 100644 stable/sonarr/5.0.2/test_values.yaml create mode 100644 stable/sonarr/5.0.2/values.yaml create mode 100644 stable/syncthing/5.1.2/CONFIG.md create mode 100644 stable/syncthing/5.1.2/Chart.lock create mode 100644 stable/syncthing/5.1.2/Chart.yaml create mode 100644 stable/syncthing/5.1.2/README.md create mode 100644 stable/syncthing/5.1.2/app-readme.md create mode 100644 stable/syncthing/5.1.2/charts/common-5.0.2.tgz create mode 100644 stable/syncthing/5.1.2/ix_values.yaml create mode 100644 stable/syncthing/5.1.2/questions.yaml create mode 100644 stable/syncthing/5.1.2/templates/common.yaml create mode 100644 stable/syncthing/5.1.2/test_values.yaml create mode 100644 stable/syncthing/5.1.2/values.yaml create mode 100644 stable/tautulli/5.0.2/CONFIG.md create mode 100644 stable/tautulli/5.0.2/Chart.lock create mode 100644 stable/tautulli/5.0.2/Chart.yaml create mode 100644 stable/tautulli/5.0.2/README.md create mode 100644 stable/tautulli/5.0.2/app-readme.md create mode 100644 stable/tautulli/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/tautulli/5.0.2/ix_values.yaml create mode 100644 stable/tautulli/5.0.2/questions.yaml create mode 100644 stable/tautulli/5.0.2/templates/common.yaml create mode 100644 stable/tautulli/5.0.2/test_values.yaml create mode 100644 stable/tautulli/5.0.2/values.yaml create mode 100644 stable/transmission/5.0.2/CONFIG.md create mode 100644 stable/transmission/5.0.2/Chart.lock create mode 100644 stable/transmission/5.0.2/Chart.yaml create mode 100644 stable/transmission/5.0.2/README.md create mode 100644 stable/transmission/5.0.2/app-readme.md create mode 100644 stable/transmission/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/transmission/5.0.2/ix_values.yaml create mode 100644 stable/transmission/5.0.2/questions.yaml create mode 100644 stable/transmission/5.0.2/templates/_configmap.tpl create mode 100644 stable/transmission/5.0.2/templates/common.yaml create mode 100644 stable/transmission/5.0.2/test_values.yaml create mode 100644 stable/transmission/5.0.2/values.yaml create mode 100644 stable/truecommand/5.0.2/CONFIG.md create mode 100644 stable/truecommand/5.0.2/Chart.lock create mode 100644 stable/truecommand/5.0.2/Chart.yaml create mode 100644 stable/truecommand/5.0.2/README.md create mode 100644 stable/truecommand/5.0.2/app-readme.md create mode 100644 stable/truecommand/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/truecommand/5.0.2/ix_values.yaml create mode 100644 stable/truecommand/5.0.2/questions.yaml create mode 100644 stable/truecommand/5.0.2/templates/common.yaml create mode 100644 stable/truecommand/5.0.2/test_values.yaml create mode 100644 stable/truecommand/5.0.2/values.yaml create mode 100644 stable/vaultwarden/2.0.3/CONFIG.md create mode 100644 stable/vaultwarden/2.0.3/Chart.lock create mode 100644 stable/vaultwarden/2.0.3/Chart.yaml create mode 100644 stable/vaultwarden/2.0.3/README.md create mode 100644 stable/vaultwarden/2.0.3/app-readme.md create mode 100644 stable/vaultwarden/2.0.3/charts/common-5.0.2.tgz create mode 100644 stable/vaultwarden/2.0.3/charts/postgresql-10.4.6.tgz create mode 100644 stable/vaultwarden/2.0.3/ix_values.yaml create mode 100644 stable/vaultwarden/2.0.3/questions.yaml create mode 100644 stable/vaultwarden/2.0.3/templates/_configmap.tpl create mode 100644 stable/vaultwarden/2.0.3/templates/_secrets.tpl create mode 100644 stable/vaultwarden/2.0.3/templates/_validate.tpl create mode 100644 stable/vaultwarden/2.0.3/templates/common.yaml create mode 100644 stable/vaultwarden/2.0.3/test_values.yaml create mode 100644 stable/vaultwarden/2.0.3/values.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/CONFIG.md create mode 100644 stable/zwavejs2mqtt/5.0.2/Chart.lock create mode 100644 stable/zwavejs2mqtt/5.0.2/Chart.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/README.md create mode 100644 stable/zwavejs2mqtt/5.0.2/app-readme.md create mode 100644 stable/zwavejs2mqtt/5.0.2/charts/common-5.0.2.tgz create mode 100644 stable/zwavejs2mqtt/5.0.2/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/questions.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/test_values.yaml create mode 100644 stable/zwavejs2mqtt/5.0.2/values.yaml diff --git a/deprecated/bitwarden/1.3.1/CONFIG.md b/deprecated/bitwarden/1.3.1/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/bitwarden/1.3.1/Chart.lock b/deprecated/bitwarden/1.3.1/Chart.lock new file mode 100644 index 0000000000..5da05433d4 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 3.5.8 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +digest: sha256:989d94ad13c5cc6302b8ab148429e2bd137ab4cda7ea946c4a9d2b2b88d2f2c0 +generated: "2021-05-25T10:47:50.538623486Z" diff --git a/deprecated/bitwarden/1.3.1/Chart.yaml b/deprecated/bitwarden/1.3.1/Chart.yaml new file mode 100644 index 0000000000..e2f9e7108f --- /dev/null +++ b/deprecated/bitwarden/1.3.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 3.5.8 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +deprecated: true +description: Unofficial Bitwarden compatible server written in Rust +home: https://github.com/truecharts/apps/tree/master/incubator/bitwarden +icon: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png +keywords: +- bitwarden +- bitwardenrs +- bitwarden_rs +- password +- rust +kubeVersion: '>=1.16.0-0' +maintainers: [] +name: bitwarden +sources: +- https://github.com/truecharts/apps/tree/master/incubator/bitwarden +- https://github.com/k8s-at-home/charts/tree/master/charts/stable/bitwardenrs +- https://github.com/dani-garcia/bitwarden_rs +type: application +upstream_version: 2.1.5 +version: 1.3.1 diff --git a/deprecated/bitwarden/1.3.1/README.md b/deprecated/bitwarden/1.3.1/README.md new file mode 100644 index 0000000000..8627f96d98 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.2.5](https://img.shields.io/badge/Version-1.2.5-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.2 | +| https://truecharts.org/ | common | 3.5.5 | + +## Installing the Chart + +To install the chart with the release name `bitwarden` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `bitwarden` 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/bitwarden/1.3.1/app-readme.md b/deprecated/bitwarden/1.3.1/app-readme.md new file mode 100644 index 0000000000..11f37b5efe --- /dev/null +++ b/deprecated/bitwarden/1.3.1/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/deprecated/bitwarden/1.3.1/charts/common-3.5.8.tgz b/deprecated/bitwarden/1.3.1/charts/common-3.5.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..af4992544b027b533b682579ed45a21f90b7d41d GIT binary patch literal 16411 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 literal 0 HcmV?d00001 diff --git a/deprecated/bitwarden/1.3.1/charts/postgresql-10.4.6.tgz b/deprecated/bitwarden/1.3.1/charts/postgresql-10.4.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..870621a666bac28b77f5dfee546b7c4cde6fce03 GIT binary patch literal 48717 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 literal 0 HcmV?d00001 diff --git a/deprecated/bitwarden/1.3.1/ix_values.yaml b/deprecated/bitwarden/1.3.1/ix_values.yaml new file mode 100644 index 0000000000..5054d94052 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/ix_values.yaml @@ -0,0 +1,54 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: bitwardenrs/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: bitwardenconfig + - secretRef: + name: bitwardensecret + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: false + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + retries: 30 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: homeassistant + postgresqlDatabase: homeassistant + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/deprecated/bitwarden/1.3.1/questions.yaml b/deprecated/bitwarden/1.3.1/questions.yaml new file mode 100644 index 0000000000..9a27b75ae7 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/questions.yaml @@ -0,0 +1,955 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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" + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Bitwarden: + - variable: bitwardenrs + label: "" + group: "Configuration" + schema: + type: dict + attrs: + - variable: yubico + label: "Yubico OTP authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Yubico OTP authentication" + description: "Please refer to the manual at: https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: server + label: "Yubico server" + description: "Defaults to YubiCloud" + schema: + type: string + default: "" + - variable: clientId + label: "Yubico ID" + schema: + type: string + default: "" + - variable: secretKey + label: "Yubico Secret Key" + schema: + type: string + default: "" + - variable: admin + label: "Admin Portal" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Admin Portal" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: disableAdminToken + label: "Make Accessible Without Password/Token" + schema: + type: boolean + default: false + - variable: token + label: "Admin Portal Password/Token" + description: "Will be automatically generated if not defined" + schema: + type: string + default: "" + - variable: icons + label: "Icon Download Settings" + schema: + type: dict + attrs: + - variable: disableDownload + label: "Disable Icon Download" + description: "Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache)" + schema: + type: boolean + default: false + - variable: cache + label: "Cache time-to-live" + description: "Cache time-to-live for icons fetched. 0 means no purging" + schema: + type: int + default: 2592000 + - variable: token + label: "Failed Downloads Cache time-to-live" + description: "Cache time-to-live for icons that were not available. 0 means no purging." + schema: + type: int + default: 2592000 + - variable: log + label: "Logging" + schema: + type: dict + attrs: + - variable: level + label: "Log level" + schema: + type: string + default: "info" + required: true + enum: + - value: "trace" + description: "trace" + - value: "debug" + description: "debug" + - value: "info" + description: "info" + - value: "warn" + description: "warn" + - value: "error" + description: "error" + - value: "off" + description: "off" + - variable: file + label: "Log-File Location" + schema: + type: string + default: "" + + - variable: smtp + label: "SMTP Settings (Email)" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable SMTP Support" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: "SMTP hostname" + schema: + type: string + required: true + default: "" + - variable: from + label: "SMTP sender e-mail address" + schema: + type: string + required: true + default: "" + - variable: fromName + label: "SMTP sender name" + schema: + type: string + required: true + default: "" + - variable: user + label: "SMTP username" + schema: + type: string + required: true + default: "" + - variable: password + label: "SMTP password" + description: "Required is user is specified, ignored if no user provided" + schema: + type: string + default: "" + - variable: ssl + label: "Enable SSL connection" + schema: + type: boolean + default: true + - variable: port + label: "SMTP port" + description: "Usually: 25 without SSL, 587 with SSL" + schema: + type: int + default: 587 + - variable: authMechanism + label: "SMTP Authentication Mechanisms" + description: "Comma-separated options: Plain, Login and Xoauth2" + schema: + type: string + default: "Plain" + - variable: heloName + label: "SMTP HELO - Hostname" + description: "Hostname to be sent for SMTP HELO. Defaults to pod name" + schema: + type: string + default: "" + - variable: port + label: "SMTP timeout" + schema: + type: int + default: 15 + - variable: invalidHostname + label: "Accept Invalid Hostname" + description: "Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: invalidCertificate + label: "Accept Invalid Certificate" + description: "Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + + - variable: allowSignups + label: "Allow Signup" + description: "Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users" + schema: + type: boolean + default: true + - variable: allowInvitation + label: "Always allow Invitation" + description: "Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations" + schema: + type: boolean + default: true + - variable: defaultInviteName + label: "Default Invite Organisation Name" + description: "Default organization name in invitation e-mails that are not coming from a specific organization." + schema: + type: string + default: "" + + - variable: showPasswordHint + label: "Show password hints" + description: "https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display" + schema: + type: boolean + default: true + + - variable: signupwhitelistenable + label: "Enable Signup Whitelist" + description: "allowSignups is ignored if set" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: signupDomains + label: "Signup Whitelist Domains" + schema: + type: list + default: [] + items: + - variable: domain + label: "Domain" + schema: + type: string + default: "" + - variable: verifySignup + label: "Verifiy Signup" + description: "Verify e-mail before login is enabled. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: requireEmail + label: "Block Login if email fails" + description: "When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: emailAttempts + label: "Email token reset attempts" + description: "Maximum attempts before an email token is reset and a new email will need to be sent" + schema: + type: int + default: 3 + - variable: emailTokenExpiration + label: "Email token validity in seconds" + schema: + type: int + default: 600 + - variable: enableWebsockets + label: "Enable Websocket Connections" + description: "Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications" + schema: + type: boolean + default: true + hidden: true + - variable: enableWebVault + label: "Enable Webvault" + description: "Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting" + schema: + type: boolean + default: true + - variable: orgCreationUsers + label: "Limit Organisation Creation to (users)" + description: "Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users." + schema: + type: string + default: "all" + - variable: attachmentLimitOrg + label: "Limit Attachment Disk Usage per Organisation" + schema: + type: string + default: "" + - variable: attachmentLimitUser + label: "Limit Attachment Disk Usage per User" + schema: + type: string + default: "" + - variable: hibpApiKey + label: "HaveIBeenPwned API Key" + description: "Can be purchased at https://haveibeenpwned.com/API/Key" + schema: + type: string + default: "" + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + hidden: true + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + hidden: true + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + hidden: true + enum: + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: true + enum: + - value: HTTP + description: "HTTP" + - variable: port + label: "container port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36000 + required: true + hidden: true + - variable: ws + label: "Websocket service" + description: "Websocket Service" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + hidden: true + enum: + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: true + enum: + - value: HTTP + description: "HTTP" + - variable: port + label: "container port" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36001 + required: true + hidden: true + + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Websocket Service" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "Use Empty Dir Mountpoint" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: nameOverride + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "Use Empty Dir Mountpoint" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "Use Empty Dir Mountpoint" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: customStorage + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" + schema: + type: dict + attrs: + - variable: certType + label: "Select Reverse-Proxy Type" + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: "Disabled" + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + show_if: [["certType", "!=", "disabled"]] + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + show_if: [["certType", "!=", "disabled"]] + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + show_if: [["certType", "!=", "disabled"]] + type: string + default: "" + + - variable: UMASK + group: "Advanced" + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Enable privileged + - variable: securityContext + group: "Advanced" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Advanced" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/deprecated/bitwarden/1.3.1/templates/_specialingress.tpl b/deprecated/bitwarden/1.3.1/templates/_specialingress.tpl new file mode 100644 index 0000000000..f44598078d --- /dev/null +++ b/deprecated/bitwarden/1.3.1/templates/_specialingress.tpl @@ -0,0 +1,105 @@ +{{/* +Renders the Ingress objects required by the chart by returning a concatinated list +of the main Ingress and any additionalIngresses. +*/}} +{{- define "bitwarden.ingress" -}} + {{- $fullName := include "common.names.fullname" . -}} + + {{- range $name, $ingress := .Values.ingress }} + {{- if $ingress.enabled -}} + {{- print ("---") | nindent 0 -}} + {{- $ingressValues := $ingress -}} + + + {{/* Create Second Ingress */}} + {{- $_ := set $ingressValues "nameSuffix" "extra" -}} + {{- $_ := set ( index $ingressValues.hosts 0 ) "path" "/notifications/hub/negotiate" -}} + {{- $_ := set $ingressValues "serviceName" $fullName -}} + {{- $_ := set $ingressValues "servicePort" "8080" -}} + + + + {{/* set defaults */}} + {{- if and (not $ingressValues.nameSuffix) ( ne $name "main" ) -}} + {{- $_ := set $ingressValues "nameSuffix" $name -}} + {{ end -}} + + {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} + {{- if not $ingressValues.type -}} + {{- $_ := set $ingressValues "type" "HTTP" -}} + {{ end -}} + {{- if not $ingressValues.certType -}} + {{- $_ := set $ingressValues "certType" "" -}} + {{ end -}} + + {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} + {{- include "common.classes.ingressRoute" $ -}} + {{- else -}} + {{- include "common.classes.ingress" $ -}} + {{ end -}} + + {{- if $ingressValues.authForwardURL -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.ingress.authForward" $ }} + {{ end -}} + + {{- if eq $ingressValues.certType "ixcert" -}} + {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.resources.cert.secret" $ }} + {{ end -}} + {{- end }} + {{- end }} + + + {{- /* Generate named ingresses as required */ -}} + {{- range $name, $ingress := .Values.ingress }} + {{- if $ingress.enabled -}} + {{- print ("---") | nindent 0 -}} + {{- $ingressValues := $ingress -}} + + + {{/* Create Second Ingress */}} + {{- $_ := set $ingressValues "nameSuffix" "ws" -}} + {{- $_ := set ( index $ingressValues.hosts 0 ) "path" "/notifications/hub" -}} + {{- $svcName := printf "%v-%v" $fullName "ws" -}} + {{- $_ := set $ingressValues "serviceName" $svcName -}} + {{- $_ := set $ingressValues "servicePort" "3012" -}} + + + {{/* set defaults */}} + {{- if and (not $ingressValues.nameSuffix) ( ne $name "main" ) -}} + {{- $_ := set $ingressValues "nameSuffix" $name -}} + {{ end -}} + + {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} + {{- if not $ingressValues.type -}} + {{- $_ := set $ingressValues "type" "HTTP" -}} + {{ end -}} + {{- if not $ingressValues.certType -}} + {{- $_ := set $ingressValues "certType" "" -}} + {{ end -}} + + {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} + {{- include "common.classes.ingressRoute" $ -}} + {{- else -}} + {{- include "common.classes.ingress" $ -}} + {{ end -}} + + {{- if $ingressValues.authForwardURL -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.ingress.authForward" $ }} + {{ end -}} + + {{- if eq $ingressValues.certType "ixcert" -}} + {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.resources.cert.secret" $ }} + {{ end -}} + {{- end }} + {{- end }} + + + + +{{- end }} diff --git a/deprecated/bitwarden/1.3.1/templates/_validate.tpl b/deprecated/bitwarden/1.3.1/templates/_validate.tpl new file mode 100644 index 0000000000..5bd127517b --- /dev/null +++ b/deprecated/bitwarden/1.3.1/templates/_validate.tpl @@ -0,0 +1,17 @@ +{{/* +Ensure valid DB type is select, defaults to SQLite +*/}} +{{- define "bitwardenrs.dbTypeValid" -}} +{{- if not (or (eq .Values.database.type "postgresql") (eq .Values.database.type "mysql") (eq .Values.database.type "sqlite")) }} +{{- required "Invalid database type" nil }} +{{- end -}} +{{- end -}} + +{{/* +Ensure log type is valid +*/}} +{{- define "bitwardenrs.logLevelValid" -}} +{{- if not (or (eq .Values.bitwardenrs.log.level "trace") (eq .Values.bitwardenrs.log.level "debug") (eq .Values.bitwardenrs.log.level "info") (eq .Values.bitwardenrs.log.level "warn") (eq .Values.bitwardenrs.log.level "error") (eq .Values.bitwardenrs.log.level "off")) }} +{{- required "Invalid log level" nil }} +{{- end }} +{{- end }} diff --git a/deprecated/bitwarden/1.3.1/templates/common.yaml b/deprecated/bitwarden/1.3.1/templates/common.yaml new file mode 100644 index 0000000000..c83beb6c7a --- /dev/null +++ b/deprecated/bitwarden/1.3.1/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render special ingress for bitwarden */}} +{{- include "bitwarden.ingress" . }} diff --git a/deprecated/bitwarden/1.3.1/templates/configmap.yaml b/deprecated/bitwarden/1.3.1/templates/configmap.yaml new file mode 100644 index 0000000000..074f8237e6 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/templates/configmap.yaml @@ -0,0 +1,114 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: bitwardenconfig + labels: + {{- include "common.labels" . | nindent 4 }} +data: + ROCKET_PORT: "8080" + SIGNUPS_ALLOWED: {{ .Values.bitwardenrs.allowSignups | quote }} + {{- if .Values.bitwardenrs.signupDomains }} + SIGNUPS_DOMAINS_WHITELIST: {{ join "," .Values.bitwardenrs.signupDomains | quote }} + {{- end }} + {{- if and (eq .Values.bitwardenrs.verifySignup true) (eq .Values.bitwardenrs.smtp.enabled false) }}{{ required "Signup verification requires SMTP to be enabled" nil}}{{end}} + SIGNUPS_VERIFY: {{ .Values.bitwardenrs.verifySignup | quote }} + {{- if and (eq .Values.bitwardenrs.requireEmail true) (eq .Values.bitwardenrs.smtp.enabled false) }}{{ required "Requiring emails for login depends on SMTP" nil}}{{end}} + REQUIRE_DEVICE_EMAIL: {{ .Values.bitwardenrs.requireEmail | quote }} + {{- if .Values.bitwardenrs.emailAttempts }} + EMAIL_ATTEMPTS_LIMIT: {{ .Values.bitwardenrs.emailAttempts | quote }} + {{- end }} + {{- if .Values.bitwardenrs.emailTokenExpiration }} + EMAIL_EXPIRATION_TIME: {{ .Values.bitwardenrs.emailTokenExpiration | quote }} + {{- end }} + INVITATIONS_ALLOWED: {{ .Values.bitwardenrs.allowInvitation | quote }} + {{- if .Values.bitwardenrs.defaultInviteName }} + INVITATION_ORG_NAME: {{ .Values.bitwardenrs.defaultInviteName | quote }} + {{- end }} + SHOW_PASSWORD_HINT: {{ .Values.bitwardenrs.showPasswordHint | quote }} + WEBSOCKET_ENABLED: {{ .Values.bitwardenrs.enableWebsockets | quote }} + WEB_VAULT_ENABLED: {{ .Values.bitwardenrs.enableWebVault | quote }} + ORG_CREATION_USERS: {{ .Values.bitwardenrs.orgCreationUsers | quote }} + {{- if .Values.bitwardenrs.attachmentLimitOrg }} + ORG_ATTACHMENT_LIMIT: {{ .Values.bitwardenrs.attachmentLimitOrg | quote }} + {{- end }} + {{- if .Values.bitwardenrs.attachmentLimitUser }} + USER_ATTACHMENT_LIMIT: {{ .Values.bitwardenrs.attachmentLimitUser | quote }} + {{- end }} + {{- if .Values.bitwardenrs.hibpApiKey }} + HIBP_API_KEY: {{ .Values.bitwardenrs.hibpApiKey | quote }} + {{- end }} + {{- include "bitwardenrs.dbTypeValid" . }} + {{- if .Values.database.retries }} + DB_CONNECTION_RETRIES: {{ .Values.database.retries | quote }} + {{- end }} + {{- if .Values.database.maxConnections }} + DATABASE_MAX_CONNS: {{ .Values.database.maxConnections | quote }} + {{- end }} + {{- if eq .Values.bitwardenrs.smtp.enabled true }} + SMTP_HOST: {{ required "SMTP host is required to enable SMTP" .Values.bitwardenrs.smtp.host | quote }} + SMTP_FROM: {{ required "SMTP sender address ('from') is required to enable SMTP" .Values.bitwardenrs.smtp.from | quote }} + {{- if .Values.bitwardenrs.smtp.fromName }} + SMTP_FROM_NAME: {{ .Values.bitwardenrs.smtp.fromName | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.ssl }} + SMTP_SSL: {{ .Values.bitwardenrs.smtp.ssl | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.port }} + SMTP_PORT: {{ .Values.bitwardenrs.smtp.port | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.authMechanism }} + SMTP_AUTH_MECHANISM: {{ .Values.bitwardenrs.smtp.authMechanism | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.heloName }} + HELO_NAME: {{ .Values.bitwardenrs.smtp.heloName | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.timeout }} + SMTP_TIMEOUT: {{ .Values.bitwardenrs.smtp.timeout | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.invalidHostname }} + SMTP_ACCEPT_INVALID_HOSTNAMES: {{ .Values.bitwardenrs.smtp.invalidHostname | quote }} + {{- end }} + {{- if .Values.bitwardenrs.smtp.invalidCertificate }} + SMTP_ACCEPT_INVALID_CERTS: {{ .Values.bitwardenrs.smtp.invalidCertificate | quote }} + {{- end }} + {{- end }} + {{- if .Values.bitwardenrs.log.file }} + LOG_FILE: {{ .Values.bitwardenrs.log.file | quote }} + {{- end }} + {{- if or .Values.bitwardenrs.log.level .Values.bitwardenrs.log.timeFormat }} + EXTENDED_LOGGING: "true" + {{- end }} + {{- if .Values.bitwardenrs.log.level }} + {{- include "bitwardenrs.logLevelValid" . }} + LOG_LEVEL: {{ .Values.bitwardenrs.log.level | quote }} + {{- end }} + {{- if .Values.bitwardenrs.log.timeFormat }} + LOG_TIMESTAMP_FORMAT: {{ .Values.bitwardenrs.log.timeFormat | quote }} + {{- end }} + {{- if .Values.bitwardenrs.icons.disableDownload }} + DISABLE_ICON_DOWNLOAD: {{ .Values.bitwardenrs.icons.disableDownload | quote }} + {{- if and (not .Values.bitwardenrs.icons.cache) (eq .Values.bitwardenrs.icons.disableDownload "true") }} + ICON_CACHE_TTL: "0" + {{- end }} + {{- end }} + {{- if .Values.bitwardenrs.icons.cache }} + ICON_CACHE_TTL: {{ .Values.bitwardenrs.icons.cache | quote }} + {{- end }} + {{- if .Values.bitwardenrs.icons.cacheFailed }} + ICON_CACHE_NEGTTL: {{ .Values.bitwardenrs.icons.cacheFailed | quote }} + {{- end }} + {{- if eq .Values.bitwardenrs.admin.enabled true }} + {{- if eq .Values.bitwardenrs.admin.disableAdminToken true }} + DISABLE_ADMIN_TOKEN: "true" + {{- end }} + {{- end }} + {{- if eq .Values.bitwardenrs.yubico.enabled true }} + {{- if .Values.bitwardenrs.yubico.server }} + YUBICO_SERVER: {{ .Values.bitwardenrs.yubico.server | quote }} + {{- end }} + {{- end }} + {{- if eq .Values.database.type "sqlite" }} + ENABLE_DB_WAL: {{ .Values.database.wal | quote }} + {{- else }} + ENABLE_DB_WAL: "false" + {{- end }} diff --git a/deprecated/bitwarden/1.3.1/templates/secrets.yaml b/deprecated/bitwarden/1.3.1/templates/secrets.yaml new file mode 100644 index 0000000000..e8e0dcc3e0 --- /dev/null +++ b/deprecated/bitwarden/1.3.1/templates/secrets.yaml @@ -0,0 +1,56 @@ +{{- $adminToken := "" }} +{{- if eq .Values.bitwardenrs.admin.enabled true }} +{{- $adminToken = .Values.bitwardenrs.admin.token | default (randAlphaNum 48) | b64enc | quote }} +{{- end -}} + +{{- $smtpUser := "" }} +{{- if and (eq .Values.bitwardenrs.smtp.enabled true ) (.Values.bitwardenrs.smtp.user) }} +{{- $smtpUser = .Values.bitwardenrs.smtp.user | b64enc | quote }} +{{- end -}} + +{{- $yubicoClientId := "" }} +{{- if eq .Values.bitwardenrs.yubico.enabled true }} +{{- $yubicoClientId = required "Yubico Client ID required" .Values.bitwardenrs.yubico.clientId | toString | b64enc | quote }} +{{- end -}} + +apiVersion: v1 +kind: Secret +metadata: + name: bitwardensecret + labels: + {{- include "common.labels" . | nindent 4 }} +data: + {{- if ne $adminToken "" }} + ADMIN_TOKEN: {{ $adminToken }} + {{- end }} + {{- if ne $smtpUser "" }} + SMTP_USERNAME: {{ $smtpUser }} + SMTP_PASSWORD: {{ required "Must specify SMTP password" .Values.bitwardenrs.smtp.password | b64enc | quote }} + {{- end }} + {{- if ne $yubicoClientId "" }} + YUBICO_CLIENT_ID: {{ $yubicoClientId }} + YUBICO_SECRET_KEY: {{ required "Yubico Secret Key required" .Values.bitwardenrs.yubico.secretKey | b64enc | quote }} + {{- end }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque diff --git a/deprecated/bitwarden/1.3.1/test_values.yaml b/deprecated/bitwarden/1.3.1/test_values.yaml new file mode 100644 index 0000000000..28e15b538e --- /dev/null +++ b/deprecated/bitwarden/1.3.1/test_values.yaml @@ -0,0 +1,177 @@ +# Default values for Bitwarden. + +image: + repository: bitwardenrs/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +strategy: + type: Recreate + +services: + main: + port: + port: 8080 + ws: + port: + port: 3012 + +env: {} + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: bitwardenconfig + - secretRef: + name: bitwardensecret + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: true + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + # retries: 15 + +# Set Bitwarden_rs application variables +bitwardenrs: + # Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users + allowSignups: true + ## Whitelist domains allowed to sign-up. 'allowSignups' is ignored if set. + # signupDomains: + # - domain.tld + # Verify e-mail before login is enabled. SMTP must be enabled. + verifySignup: false + # When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled. + requireEmail: false + ## Maximum attempts before an email token is reset and a new email will need to be sent. + # emailAttempts: 3 + ## Email token validity in seconds. + # emailTokenExpiration: 600 + # Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations + allowInvitation: true + # Show password hints: https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display + ## Default organization name in invitation e-mails that are not coming from a specific organization. + # defaultInviteName: "" + showPasswordHint: true + # Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications + # Redirect HTTP path "/notifications/hub" to port 3012. Ingress/IngressRoute controllers are automatically configured. + enableWebsockets: true + # Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting + enableWebVault: true + # Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users. + orgCreationUsers: all + ## Limit attachment disk usage per organization. + # attachmentLimitOrg: + ## Limit attachment disk usage per user. + # attachmentLimitUser: + ## HaveIBeenPwned API Key. Can be purchased at https://haveibeenpwned.com/API/Key. + # hibpApiKey: + + admin: + # Enable admin portal. + enabled: false + # Disabling the admin token will make the admin portal accessible to anyone, use carefully: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-admin-token + disableAdminToken: false + ## Token for admin login, will be generated if not defined. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-admin-page + # token: + + # Enable SMTP. https://github.com/dani-garcia/bitwarden_rs/wiki/SMTP-configuration + smtp: + enabled: false + # SMTP hostname, required if SMTP is enabled. + host: "" + # SMTP sender e-mail address, required if SMTP is enabled. + from: "" + ## SMTP sender name, defaults to 'Bitwarden_RS'. + # fromName: "" + ## Enable SSL connection. + # ssl: true + ## SMTP port. Defaults to 25 without SSL, 587 with SSL. + # port: 587 + ## SMTP Authentication Mechanisms. Comma-separated options: 'Plain', 'Login' and 'Xoauth2'. Defaults to 'Plain'. + # authMechanism: Plain + ## Hostname to be sent for SMTP HELO. Defaults to pod name. + # heloName: "" + ## SMTP timeout. + # timeout: 15 + ## Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidHostname: false + ## Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidCertificate: false + ## SMTP username. + # user: "" + ## SMTP password. Required is user is specified, ignored if no user provided. + # password: "" + + ## Enable Yubico OTP authentication. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication + yubico: + enabled: false + ## Yubico server. Defaults to YubiCloud. + # server: + ## Yubico ID and Secret Key. + # clientId: + # secretKey: + + ## Logging options. https://github.com/dani-garcia/bitwarden_rs/wiki/Logging + log: + # Log to file. + file: "" + # Log level. Options are "trace", "debug", "info", "warn", "error" or "off". + level: "trace" + ## Log timestamp format. See https://docs.rs/chrono/0.4.15/chrono/format/strftime/index.html. Defaults to time in milliseconds. + # timeFormat: "" + + icons: + # Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache). TTL will default to zero. + disableDownload: false + ## Cache time-to-live for icons fetched. 0 means no purging. + # cache: 2592000 + ## Cache time-to-live for icons that were not available. 0 means no purging. + # cacheFailed: 259200 + +persistence: + data: + enabled: true + mountPath: "/data" + emptyDir: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + db: + nameOverride: "db" + enabled: true + emptyDir: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + dbbackup: + enabled: true + emptyDir: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: bitwarden + postgresqlDatabase: bitwarden + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/deprecated/bitwarden/1.3.1/values.yaml b/deprecated/bitwarden/1.3.1/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deprecated/nzbhydra/5.0.2/CONFIG.md b/deprecated/nzbhydra/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/deprecated/nzbhydra/5.0.2/Chart.lock new file mode 100644 index 0000000000..d2f2d488cd --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:53.735394804Z" diff --git a/deprecated/nzbhydra/5.0.2/Chart.yaml b/deprecated/nzbhydra/5.0.2/Chart.yaml new file mode 100644 index 0000000000..1cc8d8cfc5 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: true +description: Usenet meta search +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/nzbhydra +- https://github.com/k8s-at-home/charts/tree/master/charts/nzbhydra +- https://hub.docker.com/r/linuxserver/nzbhydra2 +- https://github.com/theotherp/nzbhydra2 +type: application +upstream_version: 5.3.1 +version: 5.0.2 diff --git a/deprecated/nzbhydra/5.0.2/README.md b/deprecated/nzbhydra/5.0.2/README.md new file mode 100644 index 0000000000..a3cd66447e --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/deprecated/nzbhydra/5.0.2/app-readme.md new file mode 100644 index 0000000000..2012c83a62 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/deprecated/nzbhydra/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/deprecated/nzbhydra/5.0.2/ix_values.yaml b/deprecated/nzbhydra/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..2407c8ef66 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/ix_values.yaml @@ -0,0 +1,51 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/deprecated/nzbhydra/5.0.2/questions.yaml new file mode 100644 index 0000000000..be8909a4b1 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/deprecated/nzbhydra/5.0.2/templates/common.yaml b/deprecated/nzbhydra/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/deprecated/nzbhydra/5.0.2/test_values.yaml b/deprecated/nzbhydra/5.0.2/test_values.yaml new file mode 100644 index 0000000000..6f9576b7ff --- /dev/null +++ b/deprecated/nzbhydra/5.0.2/test_values.yaml @@ -0,0 +1,66 @@ +# Default values for nzbhydra. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/deprecated/nzbhydra/5.0.2/values.yaml b/deprecated/nzbhydra/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/appdaemon/2.0.2/CONFIG.md b/incubator/appdaemon/2.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/appdaemon/2.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/2.0.2/Chart.lock b/incubator/appdaemon/2.0.2/Chart.lock new file mode 100644 index 0000000000..bdb8416ab7 --- /dev/null +++ b/incubator/appdaemon/2.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:32.905134188Z" diff --git a/incubator/appdaemon/2.0.2/Chart.yaml b/incubator/appdaemon/2.0.2/Chart.yaml new file mode 100644 index 0000000000..5dae2d8b38 --- /dev/null +++ b/incubator/appdaemon/2.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: v4.0.8 +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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: 2.0.2 diff --git a/incubator/appdaemon/2.0.2/README.md b/incubator/appdaemon/2.0.2/README.md new file mode 100644 index 0000000000..ac652fbf62 --- /dev/null +++ b/incubator/appdaemon/2.0.2/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 0.1.3](https://img.shields.io/badge/Version-0.1.3-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 | 3.5.5 | + +## 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/2.0.2/app-readme.md b/incubator/appdaemon/2.0.2/app-readme.md new file mode 100644 index 0000000000..083a4a25f6 --- /dev/null +++ b/incubator/appdaemon/2.0.2/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/2.0.2/charts/common-5.0.2.tgz b/incubator/appdaemon/2.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/appdaemon/2.0.2/ix_values.yaml b/incubator/appdaemon/2.0.2/ix_values.yaml new file mode 100644 index 0000000000..ef02d27c01 --- /dev/null +++ b/incubator/appdaemon/2.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: acockburn/appdaemon + pullPolicy: IfNotPresent + tag: "4.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/2.0.2/questions.yaml b/incubator/appdaemon/2.0.2/questions.yaml new file mode 100644 index 0000000000..97931def65 --- /dev/null +++ b/incubator/appdaemon/2.0.2/questions.yaml @@ -0,0 +1,388 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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" + # Docker specific env + - variable: env + group: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/appdaemon/2.0.2/templates/common.yaml b/incubator/appdaemon/2.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/appdaemon/2.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/appdaemon/2.0.2/test_values.yaml b/incubator/appdaemon/2.0.2/test_values.yaml new file mode 100644 index 0000000000..1dc6672129 --- /dev/null +++ b/incubator/appdaemon/2.0.2/test_values.yaml @@ -0,0 +1,42 @@ +image: + repository: ghcr.io/truecharts/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 + emptyDir: + enabled: true diff --git a/incubator/appdaemon/2.0.2/values.yaml b/incubator/appdaemon/2.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/bazarr/5.0.2/CONFIG.md b/incubator/bazarr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/bazarr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/bazarr/5.0.2/Chart.lock new file mode 100644 index 0000000000..35234cb66c --- /dev/null +++ b/incubator/bazarr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:33.342970886Z" diff --git a/incubator/bazarr/5.0.2/Chart.yaml b/incubator/bazarr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..7ac8c3785a --- /dev/null +++ b/incubator/bazarr/5.0.2/Chart.yaml @@ -0,0 +1,35 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/incubator/bazarr +- https://github.com/k8s-at-home/charts/tree/master/charts/bazarr +- https://github.com/Bazarr/Bazarr +- https://hub.docker.com/r/linuxserver/bazarr +type: application +upstream_version: 5.2.1 +version: 5.0.2 diff --git a/incubator/bazarr/5.0.2/README.md b/incubator/bazarr/5.0.2/README.md new file mode 100644 index 0000000000..97a3c1848d --- /dev/null +++ b/incubator/bazarr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/bazarr/5.0.2/app-readme.md new file mode 100644 index 0000000000..d983e4cb85 --- /dev/null +++ b/incubator/bazarr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/bazarr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/bazarr/5.0.2/ix_values.yaml b/incubator/bazarr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..bef5c9e5e4 --- /dev/null +++ b/incubator/bazarr/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/incubator/bazarr/5.0.2/questions.yaml new file mode 100644 index 0000000000..0071f5b8eb --- /dev/null +++ b/incubator/bazarr/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/bazarr/5.0.2/templates/common.yaml b/incubator/bazarr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/bazarr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/bazarr/5.0.2/test_values.yaml b/incubator/bazarr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..b402a888ce --- /dev/null +++ b/incubator/bazarr/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Bazarr. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/bazarr/5.0.2/values.yaml b/incubator/bazarr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/calibre-web/5.0.2/CONFIG.md b/incubator/calibre-web/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/calibre-web/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/calibre-web/5.0.2/Chart.lock new file mode 100644 index 0000000000..571c6b569c --- /dev/null +++ b/incubator/calibre-web/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:33.780103783Z" diff --git a/incubator/calibre-web/5.0.2/Chart.yaml b/incubator/calibre-web/5.0.2/Chart.yaml new file mode 100644 index 0000000000..f9b9584dc7 --- /dev/null +++ b/incubator/calibre-web/5.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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://github.com/truecharts/apps/tree/master/incubator/calibre-web +- https://github.com/k8s-at-home/charts/tree/master/charts/calibre-web +- https://hub.docker.com/r/linuxserver/calibre-web/ +- https://github.com/janeczku/calibre-web +type: application +upstream_version: 4.3.1 +version: 5.0.2 diff --git a/incubator/calibre-web/5.0.2/README.md b/incubator/calibre-web/5.0.2/README.md new file mode 100644 index 0000000000..f0442d6fe3 --- /dev/null +++ b/incubator/calibre-web/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/calibre-web/5.0.2/app-readme.md new file mode 100644 index 0000000000..e5b39d2720 --- /dev/null +++ b/incubator/calibre-web/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/calibre-web/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/calibre-web/5.0.2/ix_values.yaml b/incubator/calibre-web/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..1f6e24d154 --- /dev/null +++ b/incubator/calibre-web/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.12 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/calibre-web/5.0.2/questions.yaml b/incubator/calibre-web/5.0.2/questions.yaml new file mode 100644 index 0000000000..47de72d3ab --- /dev/null +++ b/incubator/calibre-web/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/calibre-web/5.0.2/templates/common.yaml b/incubator/calibre-web/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/calibre-web/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/calibre-web/5.0.2/test_values.yaml b/incubator/calibre-web/5.0.2/test_values.yaml new file mode 100644 index 0000000000..526ade9ea0 --- /dev/null +++ b/incubator/calibre-web/5.0.2/test_values.yaml @@ -0,0 +1,32 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/calibre-web/5.0.2/values.yaml b/incubator/calibre-web/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/deluge/5.0.2/CONFIG.md b/incubator/deluge/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/deluge/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/deluge/5.0.2/Chart.lock new file mode 100644 index 0000000000..c7e4a27ac6 --- /dev/null +++ b/incubator/deluge/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:34.186431845Z" diff --git a/incubator/deluge/5.0.2/Chart.yaml b/incubator/deluge/5.0.2/Chart.yaml new file mode 100644 index 0000000000..622c52531e --- /dev/null +++ b/incubator/deluge/5.0.2/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Deluge App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/deluge +- https://github.com/deluge-torrent/deluge +type: application +version: 5.0.2 diff --git a/incubator/deluge/5.0.2/README.md b/incubator/deluge/5.0.2/README.md new file mode 100644 index 0000000000..bfcbb4e5a1 --- /dev/null +++ b/incubator/deluge/5.0.2/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/deluge/5.0.2/app-readme.md new file mode 100644 index 0000000000..0bce0f81e8 --- /dev/null +++ b/incubator/deluge/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/deluge/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/deluge/5.0.2/ix_values.yaml b/incubator/deluge/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..14051dceb2 --- /dev/null +++ b/incubator/deluge/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/deluge/5.0.2/questions.yaml b/incubator/deluge/5.0.2/questions.yaml new file mode 100644 index 0000000000..bd40e8fbfa --- /dev/null +++ b/incubator/deluge/5.0.2/questions.yaml @@ -0,0 +1,518 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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: "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: "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" + label: "Enable Host Network" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/deluge/5.0.2/templates/common.yaml b/incubator/deluge/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/deluge/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/deluge/5.0.2/test_values.yaml b/incubator/deluge/5.0.2/test_values.yaml new file mode 100644 index 0000000000..82af7c282c --- /dev/null +++ b/incubator/deluge/5.0.2/test_values.yaml @@ -0,0 +1,37 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/deluge/5.0.2/values.yaml b/incubator/deluge/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/fireflyiii/3.0.3/CONFIG.md b/incubator/fireflyiii/3.0.3/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/3.0.3/Chart.lock b/incubator/fireflyiii/3.0.3/Chart.lock new file mode 100644 index 0000000000..80f89b9759 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +digest: sha256:3c3f229fbadd04a81ecb81e46f12a256f11af0428dc07b05128ca2daaba9a168 +generated: "2021-05-25T10:47:37.467967877Z" diff --git a/incubator/fireflyiii/3.0.3/Chart.yaml b/incubator/fireflyiii/3.0.3/Chart.yaml new file mode 100644 index 0000000000..f715836ae6 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +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: 3.0.3 diff --git a/incubator/fireflyiii/3.0.3/README.md b/incubator/fireflyiii/3.0.3/README.md new file mode 100644 index 0000000000..8e87f22a2b --- /dev/null +++ b/incubator/fireflyiii/3.0.3/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.1](https://img.shields.io/badge/Version-1.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A free and open source personal finance manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | postgresql | 10.4.2 | +| https://truecharts.org/ | common | 3.5.5 | + +## 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/3.0.3/app-readme.md b/incubator/fireflyiii/3.0.3/app-readme.md new file mode 100644 index 0000000000..15307675f1 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/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/3.0.3/charts/common-5.0.2.tgz b/incubator/fireflyiii/3.0.3/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/fireflyiii/3.0.3/charts/postgresql-10.4.6.tgz b/incubator/fireflyiii/3.0.3/charts/postgresql-10.4.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..870621a666bac28b77f5dfee546b7c4cde6fce03 GIT binary patch literal 48717 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 literal 0 HcmV?d00001 diff --git a/incubator/fireflyiii/3.0.3/ix_values.yaml b/incubator/fireflyiii/3.0.3/ix_values.yaml new file mode 100644 index 0000000000..35d4ab31b1 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/ix_values.yaml @@ -0,0 +1,41 @@ +## +# 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: jc5x/firefly-iii + pullPolicy: IfNotPresent + tag: version-5.5.11 + +env: + DB_USERNAME: fireflyiii + DB_DATABASE: fireflyiii + DB_CONNECTION: pgsql + DB_PORT: 5432 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: dbcreds + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: fireflyiii + postgresqlDatabase: fireflyiii + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/fireflyiii/3.0.3/questions.yaml b/incubator/fireflyiii/3.0.3/questions.yaml new file mode 100644 index 0000000000..29656bbefe --- /dev/null +++ b/incubator/fireflyiii/3.0.3/questions.yaml @@ -0,0 +1,567 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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" + # Docker specific env + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: APP_KEY + label: "App Key" + description: "Your unique 32 application character key" + schema: + type: string + default: "" + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36048 + required: true + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: nameOverride + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 0 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" diff --git a/incubator/fireflyiii/3.0.3/templates/common.yaml b/incubator/fireflyiii/3.0.3/templates/common.yaml new file mode 100644 index 0000000000..64e027ac0f --- /dev/null +++ b/incubator/fireflyiii/3.0.3/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/incubator/fireflyiii/3.0.3/templates/secrets.yaml b/incubator/fireflyiii/3.0.3/templates/secrets.yaml new file mode 100644 index 0000000000..5d26274161 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/templates/secrets.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Secret +metadata: + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} + postgresql_host: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }} +type: Opaque diff --git a/incubator/fireflyiii/3.0.3/test_values.yaml b/incubator/fireflyiii/3.0.3/test_values.yaml new file mode 100644 index 0000000000..85e30d1b80 --- /dev/null +++ b/incubator/fireflyiii/3.0.3/test_values.yaml @@ -0,0 +1,83 @@ +# Default values for fireflyIII. + +image: + repository: jc5x/firefly-iii + pullPolicy: IfNotPresent + tag: version-5.5.11 + +strategy: + type: Recreate + +podSecurityContext: + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 + fsGroup: 0 + +service: + main: + ports: + main: + port: 8080 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP + +env: + DB_USERNAME: firefly + DB_DATABASE: firefly + DB_CONNECTION: pgsql + DB_PORT: 5432 + APP_Key: AGcfkCUS233ZWmBXztYbdyCs2u7kkz55 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: dbcreds + key: url + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html/storage/upload" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + db: + nameOverride: "db" + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + dbbackup: + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: firefly + postgresqlDatabase: firefly + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/incubator/fireflyiii/3.0.3/values.yaml b/incubator/fireflyiii/3.0.3/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/freshrss/5.0.2/CONFIG.md b/incubator/freshrss/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/freshrss/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/freshrss/5.0.2/Chart.lock b/incubator/freshrss/5.0.2/Chart.lock new file mode 100644 index 0000000000..f9f839f8f6 --- /dev/null +++ b/incubator/freshrss/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:40.721683977Z" diff --git a/incubator/freshrss/5.0.2/Chart.yaml b/incubator/freshrss/5.0.2/Chart.yaml new file mode 100644 index 0000000000..e6a14da09b --- /dev/null +++ b/incubator/freshrss/5.0.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: FreshRSS is a self-hosted RSS feed aggregator +home: https://github.com/truecharts/apps/tree/master/incubator/freshrss +icon: https://github.com/FreshRSS/FreshRSS/blob/master/docs/img/FreshRSS-logo.png?raw=true +keywords: +- freshrss +- rss +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: freshrss +sources: +- https://github.com/truecharts/apps/tree/master/incubator/freshrss +- https://github.com/k8s-at-home/charts/tree/master/charts/freshrss +- https://github.com/FreshRSS/FreshRSS +- https://hub.docker.com/r/linuxserver/freshrss +type: application +upstream_version: 2.3.1 +version: 5.0.2 diff --git a/incubator/freshrss/5.0.2/README.md b/incubator/freshrss/5.0.2/README.md new file mode 100644 index 0000000000..b8d65a6530 --- /dev/null +++ b/incubator/freshrss/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/freshrss/5.0.2/app-readme.md new file mode 100644 index 0000000000..7d8a844b9c --- /dev/null +++ b/incubator/freshrss/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/freshrss/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/freshrss/5.0.2/ix_values.yaml b/incubator/freshrss/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..9de79c7888 --- /dev/null +++ b/incubator/freshrss/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.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/freshrss/5.0.2/questions.yaml b/incubator/freshrss/5.0.2/questions.yaml new file mode 100644 index 0000000000..f26ddf3bbd --- /dev/null +++ b/incubator/freshrss/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/freshrss/5.0.2/templates/common.yaml b/incubator/freshrss/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/freshrss/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/freshrss/5.0.2/test_values.yaml b/incubator/freshrss/5.0.2/test_values.yaml new file mode 100644 index 0000000000..11d4c91b16 --- /dev/null +++ b/incubator/freshrss/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for FreshRSS. + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/freshrss/5.0.2/values.yaml b/incubator/freshrss/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/gaps/5.0.2/CONFIG.md b/incubator/gaps/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/gaps/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/gaps/5.0.2/Chart.lock new file mode 100644 index 0000000000..87caa3cb86 --- /dev/null +++ b/incubator/gaps/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:41.146731447Z" diff --git a/incubator/gaps/5.0.2/Chart.yaml b/incubator/gaps/5.0.2/Chart.yaml new file mode 100644 index 0000000000..282abaf2a0 --- /dev/null +++ b/incubator/gaps/5.0.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/incubator/gaps +- https://github.com/k8s-at-home/charts/tree/master/charts/gaps +- https://github.com/JasonHHouse/gaps +type: application +upstream_version: 1.1.1 +version: 5.0.2 diff --git a/incubator/gaps/5.0.2/README.md b/incubator/gaps/5.0.2/README.md new file mode 100644 index 0000000000..c5ab064301 --- /dev/null +++ b/incubator/gaps/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/gaps/5.0.2/app-readme.md new file mode 100644 index 0000000000..2333306b1d --- /dev/null +++ b/incubator/gaps/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/gaps/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/gaps/5.0.2/ix_values.yaml b/incubator/gaps/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..d11177660e --- /dev/null +++ b/incubator/gaps/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/gaps/5.0.2/questions.yaml b/incubator/gaps/5.0.2/questions.yaml new file mode 100644 index 0000000000..0e7cc8ac98 --- /dev/null +++ b/incubator/gaps/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/gaps/5.0.2/templates/common.yaml b/incubator/gaps/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/gaps/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/gaps/5.0.2/test_values.yaml b/incubator/gaps/5.0.2/test_values.yaml new file mode 100644 index 0000000000..8f8e194b1e --- /dev/null +++ b/incubator/gaps/5.0.2/test_values.yaml @@ -0,0 +1,28 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/gaps/5.0.2/values.yaml b/incubator/gaps/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/grocy/5.0.2/CONFIG.md b/incubator/grocy/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/grocy/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/grocy/5.0.2/Chart.lock new file mode 100644 index 0000000000..23e656d52c --- /dev/null +++ b/incubator/grocy/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:41.606541885Z" diff --git a/incubator/grocy/5.0.2/Chart.yaml b/incubator/grocy/5.0.2/Chart.yaml new file mode 100644 index 0000000000..8bf8e8e533 --- /dev/null +++ b/incubator/grocy/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/incubator/grocy +- https://github.com/k8s-at-home/charts/tree/master/charts/grocy +- https://github.com/grocy/grocy +type: application +upstream_version: 4.3.1 +version: 5.0.2 diff --git a/incubator/grocy/5.0.2/README.md b/incubator/grocy/5.0.2/README.md new file mode 100644 index 0000000000..48ea0db9a2 --- /dev/null +++ b/incubator/grocy/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/grocy/5.0.2/app-readme.md new file mode 100644 index 0000000000..de807b7ad2 --- /dev/null +++ b/incubator/grocy/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/grocy/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z z0T5-T4pF+QbSjxB-f7t zqjvBBRbmawC{wyjk=CZZ=sit2oRqWi0ib9`q}{#!gLV>DA8QSPXE=_i&3q|=rWDxIH>VmeG&sd52Z{de;ixvx7v!Cq}nn2vuCO85Q3B<{Apuo z0(N@c(ttIws~sPe2iJ}c7B@AQcWKuvAW zvl(x6y@%;~HNu^UjR*Kqv>Xj#U2t0-W}^i8&1xb8Q{yqn!;DNW6&weyJ3t!1EbnVk z8zxQ3oChXoQ-6|j)umqA@u38-bgf*?bzTpb*0fB|)ojNrqOnfrOS`$YIs5g+K3e=o zg3=kzGBVunev5C`6$jD~|8aOYF!MhgJ{xS#e?7|crNn<+mQ(M4;+u7cfjFT5nW8~- z60{2nagnVW8{#A|Z8}96ihQ)Xq3yJ=|0ljFP3!fU#s3rE)SAUV<9zy)n#OMx<3rB_ zC~uo%Io8?~Z!%b_HDq?E<9_>Q#GB)OK18&I<&u9jD@By8D96ewvl!K%(VC*R=B=mnPH zAAinu&B->@Ij1ekN#l<0(~w^l88f7c$^SG;P(2 zE19Vk|7G);wnJPO^g>=a=L5U8PZU!RXnw3M%hR3e6)H7E{?u|+l%wZxXz2(Ucd^TX zpI7hUG67ZbufaxUZ*4+}7qsFf2DBA&EBi1d4XRDA?ijTK%^s}l+2K4;)jN%6GZ+O; z2aHSIqMb(2UK3ba16WG(FCp<;OZxT_erd_Rq(pBi$sceA+^M_sdDE!7E1mrzPK9FH zppZ7@8R3oBYOeho9QCs)k)b`GO44b37lGbu@a*ur;j_c`jK!brUHSfRDfb z{`{Rsi(^_M)8Lica8BV?xh|OyHeEYxV{y)3SDrYVWdS%|jqW~K2e|UDZ`^?z?KRVjq z?EgQ?^9Aky>$knqt3f|O96((wf3kQ03n^O11=Nz!8Xr(kc=G23oIM~$!0j+-7d|f^ z%S`~v)xsXr#mp0QT4P4UY=gO>uyZd-b?g zkh)MR+b?KX15(wC6l_$J7sP@;kpi2{{g#o%a!KXNit1`t01&FS)nk>0t@*ZASkI$8 zPT_=n%GPlujQdQj($12%y{xpv)%J#<+q2v%LcgtZ{bWj;mi1$xq^}){*T{z<`o|BW zH8UFxuhHqri|0Mkh#NKhzQ^nIeDbR2;zo2@O1}JQ5bo6=y5T&_avqz|TZ#SDSgP7u zKRza_Z;7*yWg}VwVg+VR@chG1Ju2<&fCnP8CNomE|KecXx&QvsX#edW4))CW?}Nd! z!;Ss-7|$1D|HZ-DjXeeApUSd}gO+BTN+65PrqPf5DH51JM45AkWRhY)xgV=mhqK?; zM_~-XuBP}T$j4*M&M?@U8QMcA+myQg81t`0dLe~DEh0F>zM3ngg1~hx z0vt{##IGe-#mhU?i39zq@ruq4<|Sr&YxOH(gJ(Fc)~m0}9G;)3H7exw z83l8=bYt%^^$Adi?T~_?f6{{2oz)rSw+}yN$sUK+q#Qf69X6y>MCED!A(nT|k+JfO z7@a0vdeL?cyB|L*Yts4CADT7I%fm>^@FjV|t8N=Wo-3-Sg+ooDMCR>0(A6*Xrn&8i z46Q;rrE)S$G;C#|mFhg0PVcxf6RR|7nP5nAbqztYrN;b0t7vEncc=V^XcMcl_@%k7 z&IBLEL1&ASe@cwV8!f(L*+$e@3A(>rDFJ;SW!cM^e1DB#@Ng>b6qaoP+ z(T<`T?eQ=yGuqR2A$t7~UELH$Y`tB@Waja<9J;)iiw!{pvYb_+m$FA~m+HY>-c*`v z4i}O|>*9u-4Ob>)GZOCBT>(Okt!ovVslXIRf?@5-Sk!SOs!?Oh-v&E)PrXCuic0j$L94 zxA1()gxsnA$a9k-c>9Tk_;YT=IF9mu5-|=|Fx4I;R-7)Nmngu+4AdlX#=oN%c!qPA zTq$qGXOG?GhwM0dJY#$S6N5vl0 zB@1Vwo#Wjf@$z`HN?(R&>Oaawv=IXKLrf*}=S6=R{95nIGR!r5x>()R^~hWwOnNS%d~zcy_AG1+*nqpt2sXY(8H4E&prAfXUOu$kjyw%Q*=7XfX3B)N$5uTd?`0s|GO9roNKg=nvUgPk;7zf|u3C?mfS_)2ed{+!4t+r_hM%&s}QX1)XRS9gX z=ynn|*-AQ`I^nIAG$pwX#wpgzJ!UD}wVJ%2Gn7N3d3yC$nH2OTSXJ7qe58%YSGdX2 zg5N#pw(5=2tz_L|PPmChCxud>`Eql659}&MNt7KGEA_H5YY%Hx36(8>Zc;DfXtgc{ z{a95N7padjFGc?DAMh8O^mgIB1{5mvNfw;ph+W@Hpo(8yZ5=B1PqvMP<5|9k;`|g6RZNoasQW zG%=U=P6FH5yxFG}xoS?_oSWNU`$yMc-%DIaJ!u81UcSGdunS3;UtIxzgg zlRqeYN?*-wf&eK0L}^+z=2DawY2>ibz!%4@SMm%xd9{KGnFGS}W0Y6TWI79%@clW= zb7qpOO_!(hgo_;|9O^NHxlC(6U0q!+$^2w%wC?iFjg}J#T63c%+k11iIx$II zdu!~=m&>U)>~h`gQVhO}n~6#Da9(y2MR86qm0E*B?&M}lD+bWjd7A>W5=Ht6m|L6X z*2&%4wzoF+rZrd@r2B53LNvy=9*!m{$};b^xIt-za+G;E7M@M6|7V#$MbsSW64N}B z!M5NNaZ3laHtg~4M0J$II;C10AFWK*lhOWHqYkSJfG$H{{jF2|Nm|TkxT$|0s!AZ Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/grocy/5.0.2/ix_values.yaml b/incubator/grocy/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..f646426e75 --- /dev/null +++ b/incubator/grocy/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/grocy + tag: version-v3.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/5.0.2/questions.yaml b/incubator/grocy/5.0.2/questions.yaml new file mode 100644 index 0000000000..00ed9e969a --- /dev/null +++ b/incubator/grocy/5.0.2/questions.yaml @@ -0,0 +1,366 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/grocy/5.0.2/templates/common.yaml b/incubator/grocy/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/grocy/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/grocy/5.0.2/test_values.yaml b/incubator/grocy/5.0.2/test_values.yaml new file mode 100644 index 0000000000..e418d75847 --- /dev/null +++ b/incubator/grocy/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/grocy/5.0.2/values.yaml b/incubator/grocy/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/heimdall/5.0.2/CONFIG.md b/incubator/heimdall/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/heimdall/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/heimdall/5.0.2/Chart.lock new file mode 100644 index 0000000000..70fdddc921 --- /dev/null +++ b/incubator/heimdall/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:42.075553536Z" diff --git a/incubator/heimdall/5.0.2/Chart.yaml b/incubator/heimdall/5.0.2/Chart.yaml new file mode 100644 index 0000000000..0758dd6e12 --- /dev/null +++ b/incubator/heimdall/5.0.2/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: An Application dashboard and launcher +home: https://github.com/truecharts/apps/tree/master/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: +- https://github.com/truecharts/apps/tree/master/incubator/heimdall +- https://github.com/k8s-at-home/charts/tree/master/charts/heimdall +type: application +upstream_version: 4.1.1 +version: 5.0.2 diff --git a/incubator/heimdall/5.0.2/README.md b/incubator/heimdall/5.0.2/README.md new file mode 100644 index 0000000000..d7c114c3c9 --- /dev/null +++ b/incubator/heimdall/5.0.2/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/heimdall/5.0.2/app-readme.md new file mode 100644 index 0000000000..3fb24ea7f1 --- /dev/null +++ b/incubator/heimdall/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/heimdall/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/heimdall/5.0.2/ix_values.yaml b/incubator/heimdall/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..bdcc3ce017 --- /dev/null +++ b/incubator/heimdall/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/heimdall/5.0.2/questions.yaml b/incubator/heimdall/5.0.2/questions.yaml new file mode 100644 index 0000000000..e9b328c3bc --- /dev/null +++ b/incubator/heimdall/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/heimdall/5.0.2/templates/common.yaml b/incubator/heimdall/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/heimdall/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/heimdall/5.0.2/test_values.yaml b/incubator/heimdall/5.0.2/test_values.yaml new file mode 100644 index 0000000000..a8331f4dd5 --- /dev/null +++ b/incubator/heimdall/5.0.2/test_values.yaml @@ -0,0 +1,34 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/heimdall/5.0.2/values.yaml b/incubator/heimdall/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/lazylibrarian/5.0.2/CONFIG.md b/incubator/lazylibrarian/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/lazylibrarian/5.0.2/Chart.lock new file mode 100644 index 0000000000..98d74d18da --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:42.520606953Z" diff --git a/incubator/lazylibrarian/5.0.2/Chart.yaml b/incubator/lazylibrarian/5.0.2/Chart.yaml new file mode 100644 index 0000000000..4506fee94f --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Get all your books, like series with Sonarr... +home: https://github.com/truecharts/apps/tree/master/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://github.com/truecharts/apps/tree/master/incubator/lazylibrarian +- https://github.com/k8s-at-home/charts/tree/master/charts/lazylibrarian +- https://gitlab.com/LazyLibrarian/LazyLibrarian.git +- https://lazylibrarian.gitlab.io +type: application +upstream_version: 2.1.0 +version: 5.0.2 diff --git a/incubator/lazylibrarian/5.0.2/README.md b/incubator/lazylibrarian/5.0.2/README.md new file mode 100644 index 0000000000..56385ef988 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/lazylibrarian/5.0.2/app-readme.md new file mode 100644 index 0000000000..c67c184486 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/lazylibrarian/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/lazylibrarian/5.0.2/ix_values.yaml b/incubator/lazylibrarian/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..553b98dbe3 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/lazylibrarian/5.0.2/questions.yaml b/incubator/lazylibrarian/5.0.2/questions.yaml new file mode 100644 index 0000000000..97d2566b06 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/lazylibrarian/5.0.2/templates/common.yaml b/incubator/lazylibrarian/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lazylibrarian/5.0.2/test_values.yaml b/incubator/lazylibrarian/5.0.2/test_values.yaml new file mode 100644 index 0000000000..5aa4e24b14 --- /dev/null +++ b/incubator/lazylibrarian/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/lazylibrarian/5.0.2/values.yaml b/incubator/lazylibrarian/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/lychee/5.0.2/CONFIG.md b/incubator/lychee/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/lychee/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/lychee/5.0.2/Chart.lock new file mode 100644 index 0000000000..d3bb3daaaa --- /dev/null +++ b/incubator/lychee/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:42.922779611Z" diff --git a/incubator/lychee/5.0.2/Chart.yaml b/incubator/lychee/5.0.2/Chart.yaml new file mode 100644 index 0000000000..0ca3f07574 --- /dev/null +++ b/incubator/lychee/5.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/incubator/lychee +- https://github.com/k8s-at-home/charts/tree/master/charts/lychee +- https://github.com/LycheeOrg/Lychee +- https://hub.docker.com/r/lycheeorg/lychee +type: application +upstream_version: 2.3.1 +version: 5.0.2 diff --git a/incubator/lychee/5.0.2/README.md b/incubator/lychee/5.0.2/README.md new file mode 100644 index 0000000000..27772b1414 --- /dev/null +++ b/incubator/lychee/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/lychee/5.0.2/app-readme.md new file mode 100644 index 0000000000..792e9d50ab --- /dev/null +++ b/incubator/lychee/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/lychee/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/lychee/5.0.2/ix_values.yaml b/incubator/lychee/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..63bb15faef --- /dev/null +++ b/incubator/lychee/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.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/5.0.2/questions.yaml b/incubator/lychee/5.0.2/questions.yaml new file mode 100644 index 0000000000..05fbb4b420 --- /dev/null +++ b/incubator/lychee/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/lychee/5.0.2/templates/common.yaml b/incubator/lychee/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/lychee/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/lychee/5.0.2/test_values.yaml b/incubator/lychee/5.0.2/test_values.yaml new file mode 100644 index 0000000000..20e922c74e --- /dev/null +++ b/incubator/lychee/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/lychee/5.0.2/values.yaml b/incubator/lychee/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/navidrome/5.0.2/CONFIG.md b/incubator/navidrome/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/navidrome/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/navidrome/5.0.2/Chart.lock new file mode 100644 index 0000000000..07d5b74bb8 --- /dev/null +++ b/incubator/navidrome/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:43.39067106Z" diff --git a/incubator/navidrome/5.0.2/Chart.yaml b/incubator/navidrome/5.0.2/Chart.yaml new file mode 100644 index 0000000000..1c5b0e7618 --- /dev/null +++ b/incubator/navidrome/5.0.2/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Navidrome is an open source web-based music collection server and streamer +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/navidrome +- https://github.com/k8s-at-home/charts/tree/master/charts/navidrome +- https://github.com/deluan/navidrome +- https://hub.docker.com/r/deluan/navidrome +type: application +upstream_version: 2.3.1 +version: 5.0.2 diff --git a/incubator/navidrome/5.0.2/README.md b/incubator/navidrome/5.0.2/README.md new file mode 100644 index 0000000000..5e5e1c7412 --- /dev/null +++ b/incubator/navidrome/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/navidrome/5.0.2/app-readme.md new file mode 100644 index 0000000000..4f10b99427 --- /dev/null +++ b/incubator/navidrome/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/navidrome/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/navidrome/5.0.2/ix_values.yaml b/incubator/navidrome/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..e473a71be0 --- /dev/null +++ b/incubator/navidrome/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.42.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/navidrome/5.0.2/questions.yaml b/incubator/navidrome/5.0.2/questions.yaml new file mode 100644 index 0000000000..92bdce410a --- /dev/null +++ b/incubator/navidrome/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/navidrome/5.0.2/templates/common.yaml b/incubator/navidrome/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/navidrome/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/navidrome/5.0.2/test_values.yaml b/incubator/navidrome/5.0.2/test_values.yaml new file mode 100644 index 0000000000..574d19e5a5 --- /dev/null +++ b/incubator/navidrome/5.0.2/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for Navidrome. + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.42.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 4533 + +env: + ND_SCANINTERVAL: "15m" + ND_LOGLEVEL: "info" + ND_SESSIONTIMEOUT: "24h" + ND_ENABLETRANSCODINGCONFIG: "true" + ND_MUSICFOLDER: "/music" + +persistence: + data: + enabled: true + mountPath: "/data" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/navidrome/5.0.2/values.yaml b/incubator/navidrome/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/node-red/5.0.2/CONFIG.md b/incubator/node-red/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/node-red/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/node-red/5.0.2/Chart.lock new file mode 100644 index 0000000000..3b55b8fb73 --- /dev/null +++ b/incubator/node-red/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:43.796822023Z" diff --git a/incubator/node-red/5.0.2/Chart.yaml b/incubator/node-red/5.0.2/Chart.yaml new file mode 100644 index 0000000000..ba1775e3a0 --- /dev/null +++ b/incubator/node-red/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Node-RED is low-code programming for event-driven applications +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/node-red +- https://github.com/k8s-at-home/charts/tree/master/charts/node-red +- https://github.com/node-red/node-red-docker +type: application +upstream_version: 5.2.1 +version: 5.0.2 diff --git a/incubator/node-red/5.0.2/README.md b/incubator/node-red/5.0.2/README.md new file mode 100644 index 0000000000..ef5216e002 --- /dev/null +++ b/incubator/node-red/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/node-red/5.0.2/app-readme.md new file mode 100644 index 0000000000..6ecbe710e7 --- /dev/null +++ b/incubator/node-red/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/node-red/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/node-red/5.0.2/ix_values.yaml b/incubator/node-red/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..1a08797f27 --- /dev/null +++ b/incubator/node-red/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 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/5.0.2/questions.yaml b/incubator/node-red/5.0.2/questions.yaml new file mode 100644 index 0000000000..0f6c621c9f --- /dev/null +++ b/incubator/node-red/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/node-red/5.0.2/templates/common.yaml b/incubator/node-red/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/node-red/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/node-red/5.0.2/test_values.yaml b/incubator/node-red/5.0.2/test_values.yaml new file mode 100644 index 0000000000..f0e52b0b38 --- /dev/null +++ b/incubator/node-red/5.0.2/test_values.yaml @@ -0,0 +1,34 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/node-red/5.0.2/values.yaml b/incubator/node-red/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/nzbget/5.0.2/CONFIG.md b/incubator/nzbget/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/nzbget/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/nzbget/5.0.2/Chart.lock new file mode 100644 index 0000000000..f3fd857c9c --- /dev/null +++ b/incubator/nzbget/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:44.24123224Z" diff --git a/incubator/nzbget/5.0.2/Chart.yaml b/incubator/nzbget/5.0.2/Chart.yaml new file mode 100644 index 0000000000..647423da2d --- /dev/null +++ b/incubator/nzbget/5.0.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: NZBGet is a Usenet downloader client +home: https://github.com/truecharts/apps/tree/master/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://github.com/truecharts/apps/tree/master/incubator/nzbget +- https://github.com/k8s-at-home/charts/tree/master/charts/nzbget +- https://hub.docker.com/r/linuxserver/nzbget/ +- https://nzbget.net/ +type: application +upstream_version: 7.3.1 +version: 5.0.2 diff --git a/incubator/nzbget/5.0.2/README.md b/incubator/nzbget/5.0.2/README.md new file mode 100644 index 0000000000..927dec8826 --- /dev/null +++ b/incubator/nzbget/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/nzbget/5.0.2/app-readme.md new file mode 100644 index 0000000000..bde861cf21 --- /dev/null +++ b/incubator/nzbget/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/nzbget/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/nzbget/5.0.2/ix_values.yaml b/incubator/nzbget/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..08de88a735 --- /dev/null +++ b/incubator/nzbget/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/nzbget + pullPolicy: IfNotPresent + tag: v21.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/nzbget/5.0.2/questions.yaml b/incubator/nzbget/5.0.2/questions.yaml new file mode 100644 index 0000000000..5fcaa333d7 --- /dev/null +++ b/incubator/nzbget/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/nzbget/5.0.2/templates/common.yaml b/incubator/nzbget/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/nzbget/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/nzbget/5.0.2/test_values.yaml b/incubator/nzbget/5.0.2/test_values.yaml new file mode 100644 index 0000000000..36301618ec --- /dev/null +++ b/incubator/nzbget/5.0.2/test_values.yaml @@ -0,0 +1,25 @@ +# Default values for nzbget. + +image: + repository: ghcr.io/truecharts/nzbget + pullPolicy: IfNotPresent + tag: v21.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6789 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/nzbget/5.0.2/values.yaml b/incubator/nzbget/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/organizr/5.0.2/CONFIG.md b/incubator/organizr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/organizr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/organizr/5.0.2/Chart.lock new file mode 100644 index 0000000000..9979bd69ae --- /dev/null +++ b/incubator/organizr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:44.649728306Z" diff --git a/incubator/organizr/5.0.2/Chart.yaml b/incubator/organizr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..66aeed0c79 --- /dev/null +++ b/incubator/organizr/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: HTPC/Homelab Services Organizer +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/organizr +- https://github.com/k8s-at-home/charts/tree/master/charts/organizr +- https://github.com/causefx/Organizr +- https://hub.docker.com/r/organizr/organizr +type: application +upstream_version: 3.2.1 +version: 5.0.2 diff --git a/incubator/organizr/5.0.2/README.md b/incubator/organizr/5.0.2/README.md new file mode 100644 index 0000000000..dd5cdedc98 --- /dev/null +++ b/incubator/organizr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/organizr/5.0.2/app-readme.md new file mode 100644 index 0000000000..0bfeec6a4e --- /dev/null +++ b/incubator/organizr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/organizr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/organizr/5.0.2/ix_values.yaml b/incubator/organizr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..19a9fa1ee9 --- /dev/null +++ b/incubator/organizr/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/organizr/5.0.2/questions.yaml b/incubator/organizr/5.0.2/questions.yaml new file mode 100644 index 0000000000..7f712a590d --- /dev/null +++ b/incubator/organizr/5.0.2/questions.yaml @@ -0,0 +1,434 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/organizr/5.0.2/templates/common.yaml b/incubator/organizr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/organizr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/organizr/5.0.2/test_values.yaml b/incubator/organizr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..d4a987c157 --- /dev/null +++ b/incubator/organizr/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/organizr/5.0.2/values.yaml b/incubator/organizr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/podgrab/3.0.3/CONFIG.md b/incubator/podgrab/3.0.3/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/podgrab/3.0.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/3.0.3/Chart.lock b/incubator/podgrab/3.0.3/Chart.lock new file mode 100644 index 0000000000..72bd31024b --- /dev/null +++ b/incubator/podgrab/3.0.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:45.108408042Z" diff --git a/incubator/podgrab/3.0.3/Chart.yaml b/incubator/podgrab/3.0.3/Chart.yaml new file mode 100644 index 0000000000..2b99cbf891 --- /dev/null +++ b/incubator/podgrab/3.0.3/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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 +upstream_version: 1.0.0 +version: 3.0.3 diff --git a/incubator/podgrab/3.0.3/README.md b/incubator/podgrab/3.0.3/README.md new file mode 100644 index 0000000000..9977071a6c --- /dev/null +++ b/incubator/podgrab/3.0.3/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.0.3](https://img.shields.io/badge/Version-1.0.3-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) + +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 | 3.5.5 | + +## 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/3.0.3/app-readme.md b/incubator/podgrab/3.0.3/app-readme.md new file mode 100644 index 0000000000..6d69d3a84c --- /dev/null +++ b/incubator/podgrab/3.0.3/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/3.0.3/charts/common-5.0.2.tgz b/incubator/podgrab/3.0.3/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/podgrab/3.0.3/ix_values.yaml b/incubator/podgrab/3.0.3/ix_values.yaml new file mode 100644 index 0000000000..f7e28ef9ef --- /dev/null +++ b/incubator/podgrab/3.0.3/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: akhilrex/podgrab + pullPolicy: Always + tag: 1.0.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/podgrab/3.0.3/questions.yaml b/incubator/podgrab/3.0.3/questions.yaml new file mode 100644 index 0000000000..5245859e5a --- /dev/null +++ b/incubator/podgrab/3.0.3/questions.yaml @@ -0,0 +1,427 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "1Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/podgrab/3.0.3/templates/common.yaml b/incubator/podgrab/3.0.3/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/podgrab/3.0.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/podgrab/3.0.3/test_values.yaml b/incubator/podgrab/3.0.3/test_values.yaml new file mode 100644 index 0000000000..4ffe356c49 --- /dev/null +++ b/incubator/podgrab/3.0.3/test_values.yaml @@ -0,0 +1,51 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + +hostPathMounts: + - name: assets + enabled: true + mountPath: "/assets" + emptyDir: + enabled: true diff --git a/incubator/podgrab/3.0.3/values.yaml b/incubator/podgrab/3.0.3/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/qbittorrent/5.0.2/CONFIG.md b/incubator/qbittorrent/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/qbittorrent/5.0.2/Chart.lock new file mode 100644 index 0000000000..9834788202 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:45.514851706Z" diff --git a/incubator/qbittorrent/5.0.2/Chart.yaml b/incubator/qbittorrent/5.0.2/Chart.yaml new file mode 100644 index 0000000000..0f8483c2cd --- /dev/null +++ b/incubator/qbittorrent/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: qBittorrent is a cross-platform free and open-source BitTorrent client +home: https://github.com/truecharts/apps/tree/master/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: +- https://github.com/truecharts/apps/tree/master/incubator/qbittorrent +- https://github.com/k8s-at-home/charts/tree/master/charts/qbittorrent +- https://hub.docker.com/r/linuxserver/qbittorrent/ +type: application +upstream_version: 7.2.1 +version: 5.0.2 diff --git a/incubator/qbittorrent/5.0.2/README.md b/incubator/qbittorrent/5.0.2/README.md new file mode 100644 index 0000000000..885309a115 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/qbittorrent/5.0.2/app-readme.md new file mode 100644 index 0000000000..5d26b483c2 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/qbittorrent/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/qbittorrent/5.0.2/ix_values.yaml b/incubator/qbittorrent/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..a99eddeec4 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/incubator/qbittorrent/5.0.2/questions.yaml new file mode 100644 index 0000000000..5b6a2e2706 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/questions.yaml @@ -0,0 +1,570 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/qbittorrent/5.0.2/templates/_configmap.tpl b/incubator/qbittorrent/5.0.2/templates/_configmap.tpl new file mode 100644 index 0000000000..d52c601514 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/templates/_configmap.tpl @@ -0,0 +1,32 @@ +{{/* Define the configmap */}} +{{- define "qbittorrent.configmap" -}} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-scripts + labels: + {{- include "common.labels" . | nindent 4 }} +data: + {{- $bittorrentPort := "" -}} + {{- $bittorrentPort = .Values.service.torrent.ports.tcp.port -}} + {{- if $bittorrentPort }} + 31-update-port: |- + #!/bin/bash + QBITTORRENT_CONFIGFILE="/config/qBittorrent/qBittorrent.conf" + INCOMING_PORT={{- $bittorrentPort }} + + incoming_port_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin='${INCOMING_PORT}) + if [[ -z "${incoming_port_exist}" ]]; then + incoming_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin') + if [[ ! -z "${incoming_exist}" ]]; then + # Get line number of Incoming + LINE_NUM=$(grep -Fn -m 1 'Connection\PortRangeMin' ${QBITTORRENT_CONFIGFILE} | cut -d: -f 1) + sed -i "${LINE_NUM}s@.*@Connection\\\PortRangeMin=${INCOMING_PORT}@" ${QBITTORRENT_CONFIGFILE} + else + echo "Connection\\PortRangeMin=${INCOMING_PORT}" >> ${QBITTORRENT_CONFIGFILE} + fi + fi + {{- end }} +{{- end -}} diff --git a/incubator/qbittorrent/5.0.2/templates/common.yaml b/incubator/qbittorrent/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..bcb4715aa1 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/templates/common.yaml @@ -0,0 +1,6 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} + + +{{/* Render the configmap */}} +{{ include "qbittorrent.configmap" . }} diff --git a/incubator/qbittorrent/5.0.2/test_values.yaml b/incubator/qbittorrent/5.0.2/test_values.yaml new file mode 100644 index 0000000000..5458be8736 --- /dev/null +++ b/incubator/qbittorrent/5.0.2/test_values.yaml @@ -0,0 +1,55 @@ +# Default values for qbittorrent. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + +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/5.0.2/values.yaml b/incubator/qbittorrent/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/readarr/5.0.2/CONFIG.md b/incubator/readarr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/readarr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/readarr/5.0.2/Chart.lock new file mode 100644 index 0000000000..a3439625cd --- /dev/null +++ b/incubator/readarr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:45.926519677Z" diff --git a/incubator/readarr/5.0.2/Chart.yaml b/incubator/readarr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..aa8f041177 --- /dev/null +++ b/incubator/readarr/5.0.2/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: A fork of Radarr to work with Books & AudioBooks +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/readarr +- https://github.com/k8s-at-home/charts/tree/master/charts/readarr +- https://github.com/Readarr/Readarr +- https://readarr.com +type: application +upstream_version: 2.1.0 +version: 5.0.2 diff --git a/incubator/readarr/5.0.2/README.md b/incubator/readarr/5.0.2/README.md new file mode 100644 index 0000000000..dded0c1877 --- /dev/null +++ b/incubator/readarr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/readarr/5.0.2/app-readme.md new file mode 100644 index 0000000000..ec0ebb214b --- /dev/null +++ b/incubator/readarr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/readarr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/readarr/5.0.2/ix_values.yaml b/incubator/readarr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..5a2866a101 --- /dev/null +++ b/incubator/readarr/5.0.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.708 + +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/5.0.2/questions.yaml b/incubator/readarr/5.0.2/questions.yaml new file mode 100644 index 0000000000..dfad54cbf9 --- /dev/null +++ b/incubator/readarr/5.0.2/questions.yaml @@ -0,0 +1,419 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/readarr/5.0.2/templates/common.yaml b/incubator/readarr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/readarr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/readarr/5.0.2/test_values.yaml b/incubator/readarr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..27a736c3d1 --- /dev/null +++ b/incubator/readarr/5.0.2/test_values.yaml @@ -0,0 +1,51 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/truecharts/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.708 + +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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/readarr/5.0.2/values.yaml b/incubator/readarr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/sabnzbd/5.0.2/CONFIG.md b/incubator/sabnzbd/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/sabnzbd/5.0.2/Chart.lock new file mode 100644 index 0000000000..60a3790ea6 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:46.357244274Z" diff --git a/incubator/sabnzbd/5.0.2/Chart.yaml b/incubator/sabnzbd/5.0.2/Chart.yaml new file mode 100644 index 0000000000..ac56341bec --- /dev/null +++ b/incubator/sabnzbd/5.0.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Free and easy binary newsreader +home: https://github.com/truecharts/apps/tree/master/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://github.com/truecharts/apps/tree/master/incubator/sabnzbd +- https://github.com/k8s-at-home/charts/tree/master/charts/sabnzbd +- https://hub.docker.com/r/linuxserver/sabnzbd/ +- https://sabnzbd.org/ +type: application +upstream_version: 5.0.1 +version: 5.0.2 diff --git a/incubator/sabnzbd/5.0.2/README.md b/incubator/sabnzbd/5.0.2/README.md new file mode 100644 index 0000000000..cfa2b2d006 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/sabnzbd/5.0.2/app-readme.md new file mode 100644 index 0000000000..05e7f33985 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/sabnzbd/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f zgeElhfaqChjNhYxai+g+dw}|);)vEHC=ulegg8Q8$2%Ln8|86|I!{El;8-VMC%eCy>i z@^_r#N$1=Df9DB!3sW2y88|^s9*oP&klFZ`#<*vdz+35WcI}WFUuDpIv$5G?`8igV2ZZEUw^rxS0#q{ zCWYyu0XQk!<3$@`cRD{55sw;TRj7hph8%S|-+ud3JVObbpy9XQg8vk4PjEghZahDp z^@-NU0$ckqNwR*PBGjM3EJtadQRu%qohMJgONhl$luqXZ;5Yp|pFtdg58zE2f)AY! zpx5j50Q*P$LEo3HfDeHFM}fX(D$oo?1lcm-=MY@~*YU2md*}^%gKJupDfp!6zoP~C z00^bP2XMwWD#%}%pJIBu4{4HO!2U1((f*>pIv>F0kLPFL1Hci1asBM@yK9Et2XOhu z_2tdWlhNP72at)&C9k`K!CqH>x1Qhmz`~zDfa_m=wUjhA*jkiz7o#^a#R1AtI!7tZ zd-BWRR~_MA4;J~f+f;4Ws20T$s;eZ-j1S-@j>*ipre;fRjXC(hbHbDI_aAEtSF+J) z$eoWb;{1}|)YS+@$(^G?Aq7*iG{_%4R;3wQ4ktR8eecLSsI4ci1Bs$o#3i;T1h2e2 zy+uu8U65%(|EN-cr6=v7_i&bk$fNnu+Vn<(C0daDLx(Bu6*9G$9vn&@wqCHt5nC@UqLb`RhSHK94Qi{i@W+)VmZ)5vScHeSsJJYZ)j&^= zr{!Im$QqD@9gN_V+TGjV+ihJ{98l13xH`RT-MDr(W95G2m1)io-=5cEGH)Y9j5_@4 zp);K74OZHjCy_fK#N8CB#%@sk0f&00A{^REx8!N8Xp`_Dr9wPM5y~MbfIY!G^WVykHPibgGNzSMN^FUY=jrk!=EJ>RO}!9ld+` z>g>&n=T>-C9>ED|Eq#YmG$~*jJaqU?K&}aJ`&|a}X*@%HS)&!a%J}bk18;AzHyC`k zccefN=d)eQIh{E8l1NqP_$YSuPnxA?S@=b*(9;un8|$P@#x2X2X&r1LfaYH)3tN&P zIAnGWvlO|YtTf>n{M=Q`9D9y3WBi^PF?)$jo6a(`Gto$sioas5|CNBk`c`qbz$F zn}A;<82p^#9KDKs#oo0*Xc}Hi6*Y8Q9US(#wzUlZZeY6mBd)J;i<2UvH=TuHD=gV% zZRNJ2W1-rrEI|ui#YGGDS?O6Ev|z}Vj76@J>~yct48`FpC+0@+2J6TyZa+s<`j+Y| z+Kx8Ky8DCr%I2{kVHGu0GtMW~)JqWz@DemE%eNz9S$ePNLZzURe;tP*jwWxC0OpFOp(cv5P8;i47)!}cZ>gtqQsi-&MRZJ* zdUo^04COF@IRr&UaQ|hB!dWkf{S3@^y=UsSnXs(Oh6hvS18Lz1QOv2 zg`b1_&Q}z&N8fh7qI+gg2(@vJkHpeR6*k5RU@O_1vM!OsXpG_?p#mLYbj z^BCM>{}#k!mf(Z{1r*{Ah(%C0sotH$^kWy?#nCr8xQ*gF0B_8kAa zRt~=9gXdi--F;m|Tlo%%(A}1WM%%3j$r_@bBSuMz1id&1CciL-{%bjcU-3(XhQ<5L`w`_^>g{_w zpld8I(dJ2(p_EF0?;_5h6H|Pv+7hi$CL`Se@7Og^W;u@-*jrtuQgda2DcEJ@?zVS2 z#bJ=5XiJAHrs?pw49BL9A_kR@dUw0S$(Z||Im3^uR8@M&x@We>Xw1TBS;aX_0rc|% zhG#H`^d1dmRekkU`HfS;1Znh;&a-zr;1(^)Sylq!t$t-Rc?=-Uk+-G4r(ittYirxv zVpy?xLT0qJ+y5$H$iiB-sx;d%y2_{AS6_YHCTpZE%Q{IX+4B6#!mJ3O)i@QYxfGj% z=_EVOLWB~4Bj)8-*$9JI7B@?_WmmMBds=%()c)Am5LvW(TN{S;g)uBTRUO=l47!z7 z(Mn74DNTi^uO!G*?**ZJ>hjy+}zqBW>Eosy04TId}74&A$Bg@D+n#ECme9)?+0hJhP=Qv{B zl)aRKqIQyK%@L+T82Rz&>g4MD^xgA|x9@&<{p#hr7w4lZ!YX+gT3Idh_TnILbj=l$U(Ey~+j{o!geG+0H z=V~_{v!iT4UzV&xp3(j%>s@7W?*Oy!&TgO2s=aMm6c?|~p1->|dHH-T{gBX{I0|oM z&~CzA6CBU}_kxbgKkxr}Z(Q*I&yWB7*n`0gN7pUT=u}%44B4M^T&fMkO1C zT-2$~HN8Tm|Bec@zZ;eP3sl*O0_V`!$^5V>?4-(4`ug)|URBpiE%qf$nErW-wkoS& zyFqt<9?c!9yS$>(rM%Plsgwg`w=)VzFJZ!gky0X$1*`B2%jy5CsnE0H#0n9CSwOKq z2o2xufcRDgR9?UM>;EO6IAUK(00J*IAa$&&yKTouqj^1KCkWHlc?pwWI9YxL$FjRC z7&OnLxoXe6gvsjW3?a-)4q}^S!()5dL)2u&=3(FHq^PlXZ1xSSIb;b1N|{;$9D;6_ z$x6~2_TH{nu}dC>92z}8ef|8Z6n^Y$saA-F^R#fatMaNpAg5+MZpo!NVRuxnRuW^| zWO;ltIGCMe;W`Rcj^|*LwrXF1@OdohLngY()O8_58Kee+571v*j!;z`5s+;L$j-IO zsj>r1s3qp|8dhr3RhjFGoQ?*-tj6ao{u=^K<7CuGG%N!SuF?jF^(w!CO9qvX{?mTXmWX*xUx*Yc7G zC9Hm^-Tdz>cdn`r7cEQ?*K0t3ik7KBziQdLmS`-5c=j{Sr%a%}lsTi9Y+p$>-Dknm zl_KRik0Fp}J6^(QQ7M_>-_a24{%FT^#1m65OCdEM>JZEp^p9%WBJFi|w%{$XG-TH+ zSd-sMU5bT@Ud3c`@rFz_OVYmji6f%aV!9TsLTC~fxvXv|ME@ZKgo*;S^5{vIQiPRb z59B!*CR(5K$z}08HaA0Nv$GZYk-LONUyPZksu#{i9JAQjE-hv@EQWiyMDL7A>1@zl zZe*EokEK57I>bhOs8t_SK~SSbXg86ppiHREFrh5GnB|9ZGFYpLFo^P%@LMXcY)Xdi z?!#kXf;c{=(?w-w+@IK1h|6WMV?jnr5koC86%)Y^kLhh_!lUU>PpZvu9yN7;_Rmd<;BDzDeUO&&6VHL#q^Ib~SydS-lik7`cG`(mRp?i$$&8zzpU)CY zLrlc9Y|07EP(7+Jr9hYL)rJcZL@V^#QqQS~RUv+fDupTQ*C*hK_*+V<8+m=n40E+Z zzm?6Xl6=`_TIod_@x2k>8}Ypn-wyHpxer$TL7vL_KbD|ntp@-b@;@K!9vzzJ{|*iZ zoAZB<@i@=_5ye9}0!V)@alX$i?>aT8o&)5$fvN`qnGRW=1th#b-hquUH2B>ys6SrI|ilccBO2J@*<72*B{NM zHA~6fnAK|1f$GkIR@Ret)KCmm#f+-$y0koIWt@&$flL~c`{5`@=@|Ox{^Py6MmXcq zCaZW?E@^feM{6WNA(orPa3^a?6auW2`B%V1)@~>^a5;jWu z=YKT)e;TLwcVZ5Q?~*up2a7z;eE48Rrac ziJW-rHU^rS`7>Dt4qCJ`6B-FwwHcaePyXcIA<^&+%+Oo8iK3iZ=k*DeT8QAshZ-K` z<1|4WJ+T`jS2Ukj6}kiVOB}rxx!lwTM|rg@d|zAEZtm!^UZ}m!hv*=>u31k7p^TUE zUeURqv!PlZi*g<;iHxq3v%xR|?00O$AA;Q-8=;3_-`+K5PK;1aR!+8j5BXtrrK3Qb zo`38Y`*NseyjUP6d_ii5}&_%i^>GFH><3bbu?GbYe#cs0Y`Ik z^Q0Mvno+UZS*r-*mncuM|G6Y_jr&g|Gu5r?ioj$1^7Qh}n;eJucbY`<5~V(hayUV4 z_;Wjs>}uioaNuIHvJXR}6Zc&|DY`>&IQVE6GOWp$Xcni7Pu#DXMvjkG>Dr6}><+<^ zt9PgI>;^~e)Psi)&g1l24CoH1C%{JXJzVlF?V%H|Ij`d}30C&aN*E{KG+3;JT8@r`In^Vm5YRkma=W$JH@mE-FH`lPC}&z*dyXJW#-R?5MHR*$suYtDTP7 zZBA6wu&bO}SJ$p+I_|TzscRn%G-BQ?hXX8=NjT~;RA(6*#IA{pO8l2anBydLTWIU1 zc}A}bf$5^IMiZrULaF^B-4;pCKL0$@Zw0GDxNb9*94XG|$LojC4cMlODqCn1j)_BN z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/sabnzbd/5.0.2/ix_values.yaml b/incubator/sabnzbd/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..70a2cef7a7 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/sabnzbd + pullPolicy: IfNotPresent + tag: v3.2.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/sabnzbd/5.0.2/questions.yaml b/incubator/sabnzbd/5.0.2/questions.yaml new file mode 100644 index 0000000000..7164607676 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/questions.yaml @@ -0,0 +1,426 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/incubator/sabnzbd/5.0.2/templates/common.yaml b/incubator/sabnzbd/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/sabnzbd/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/sabnzbd/5.0.2/test_values.yaml b/incubator/sabnzbd/5.0.2/test_values.yaml new file mode 100644 index 0000000000..314240a80f --- /dev/null +++ b/incubator/sabnzbd/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Sabnzbd. + +image: + repository: ghcr.io/truecharts/sabnzbd + pullPolicy: IfNotPresent + tag: v3.2.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/sabnzbd/5.0.2/values.yaml b/incubator/sabnzbd/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/tvheadend/6.0.3/CONFIG.md b/incubator/tvheadend/6.0.3/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/tvheadend/6.0.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/6.0.3/Chart.lock b/incubator/tvheadend/6.0.3/Chart.lock new file mode 100644 index 0000000000..b1f3232fa0 --- /dev/null +++ b/incubator/tvheadend/6.0.3/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:46.934954476Z" diff --git a/incubator/tvheadend/6.0.3/Chart.yaml b/incubator/tvheadend/6.0.3/Chart.yaml new file mode 100644 index 0000000000..d4a68e3f19 --- /dev/null +++ b/incubator/tvheadend/6.0.3/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: TVheadend - a TV streaming server and digital video recorder +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/tvheadend +- https://github.com/k8s-at-home/charts/tree/master/charts/tvheadend +- https://github.com/tvheadend/tvheadend +type: application +upstream_version: 1.1.2 +version: 6.0.3 diff --git a/incubator/tvheadend/6.0.3/README.md b/incubator/tvheadend/6.0.3/README.md new file mode 100644 index 0000000000..63f3c61783 --- /dev/null +++ b/incubator/tvheadend/6.0.3/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 4.1.5](https://img.shields.io/badge/Version-4.1.5-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) + +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 | 3.5.5 | + +## 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/6.0.3/app-readme.md b/incubator/tvheadend/6.0.3/app-readme.md new file mode 100644 index 0000000000..972a532e25 --- /dev/null +++ b/incubator/tvheadend/6.0.3/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/6.0.3/charts/common-5.0.2.tgz b/incubator/tvheadend/6.0.3/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/tvheadend/6.0.3/ix_values.yaml b/incubator/tvheadend/6.0.3/ix_values.yaml new file mode 100644 index 0000000000..9f7637469c --- /dev/null +++ b/incubator/tvheadend/6.0.3/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: 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/6.0.3/questions.yaml b/incubator/tvheadend/6.0.3/questions.yaml new file mode 100644 index 0000000000..85cf57ee1a --- /dev/null +++ b/incubator/tvheadend/6.0.3/questions.yaml @@ -0,0 +1,465 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/tvheadend/6.0.3/templates/common.yaml b/incubator/tvheadend/6.0.3/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/tvheadend/6.0.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/tvheadend/6.0.3/test_values.yaml b/incubator/tvheadend/6.0.3/test_values.yaml new file mode 100644 index 0000000000..c811504f38 --- /dev/null +++ b/incubator/tvheadend/6.0.3/test_values.yaml @@ -0,0 +1,40 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/tvheadend/6.0.3/values.yaml b/incubator/tvheadend/6.0.3/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/unifi/5.0.2/CONFIG.md b/incubator/unifi/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/incubator/unifi/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/incubator/unifi/5.0.2/Chart.lock new file mode 100644 index 0000000000..f79c41561d --- /dev/null +++ b/incubator/unifi/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:47.430304463Z" diff --git a/incubator/unifi/5.0.2/Chart.yaml b/incubator/unifi/5.0.2/Chart.yaml new file mode 100644 index 0000000000..38b97df5c3 --- /dev/null +++ b/incubator/unifi/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Ubiquiti Network's Unifi Controller +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/unifi +- https://github.com/jacobalberty/unifi-docker +- https://unifi-network.ui.com +type: application +upstream_version: 1.5.1 +version: 5.0.2 diff --git a/incubator/unifi/5.0.2/README.md b/incubator/unifi/5.0.2/README.md new file mode 100644 index 0000000000..048495cac8 --- /dev/null +++ b/incubator/unifi/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/incubator/unifi/5.0.2/app-readme.md new file mode 100644 index 0000000000..0e6732e403 --- /dev/null +++ b/incubator/unifi/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/incubator/unifi/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/incubator/unifi/5.0.2/ix_values.yaml b/incubator/unifi/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..9fa028d1b5 --- /dev/null +++ b/incubator/unifi/5.0.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jacobalberty/unifi + tag: 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/5.0.2/questions.yaml b/incubator/unifi/5.0.2/questions.yaml new file mode 100644 index 0000000000..d2412e9ba1 --- /dev/null +++ b/incubator/unifi/5.0.2/questions.yaml @@ -0,0 +1,567 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/unifi" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/incubator/unifi/5.0.2/templates/common.yaml b/incubator/unifi/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/incubator/unifi/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/unifi/5.0.2/test_values.yaml b/incubator/unifi/5.0.2/test_values.yaml new file mode 100644 index 0000000000..b558a83b36 --- /dev/null +++ b/incubator/unifi/5.0.2/test_values.yaml @@ -0,0 +1,51 @@ +# 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: + 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/incubator/unifi/5.0.2/values.yaml b/incubator/unifi/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/collabora-online/5.0.2/CONFIG.md b/stable/collabora-online/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/collabora-online/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/collabora-online/5.0.2/Chart.lock new file mode 100644 index 0000000000..17be51fe0e --- /dev/null +++ b/stable/collabora-online/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:16.46547859Z" diff --git a/stable/collabora-online/5.0.2/Chart.yaml b/stable/collabora-online/5.0.2/Chart.yaml new file mode 100644 index 0000000000..1c06f48700 --- /dev/null +++ b/stable/collabora-online/5.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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://github.com/truecharts/apps/tree/master/stable/collabora-online +- https://github.com/k8s-at-home/charts/tree/master/charts/collabora-online +- https://hub.docker.com/r/collabora/code +- https://www.collaboraoffice.com/code/docker/ +type: application +version: 5.0.2 diff --git a/stable/collabora-online/5.0.2/README.md b/stable/collabora-online/5.0.2/README.md new file mode 100644 index 0000000000..f034c0bb4c --- /dev/null +++ b/stable/collabora-online/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/collabora-online/5.0.2/app-readme.md new file mode 100644 index 0000000000..f25a256798 --- /dev/null +++ b/stable/collabora-online/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/collabora-online/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/collabora-online/5.0.2/ix_values.yaml b/stable/collabora-online/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..8ad90d54ac --- /dev/null +++ b/stable/collabora-online/5.0.2/ix_values.yaml @@ -0,0 +1,14 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: collabora/code + tag: 6.4.8.6 + 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/5.0.2/questions.yaml b/stable/collabora-online/5.0.2/questions.yaml new file mode 100644 index 0000000000..9e5b8930b8 --- /dev/null +++ b/stable/collabora-online/5.0.2/questions.yaml @@ -0,0 +1,313 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/stable/collabora-online/5.0.2/templates/common.yaml b/stable/collabora-online/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/collabora-online/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/collabora-online/5.0.2/test_values.yaml b/stable/collabora-online/5.0.2/test_values.yaml new file mode 100644 index 0000000000..0db7572912 --- /dev/null +++ b/stable/collabora-online/5.0.2/test_values.yaml @@ -0,0 +1,22 @@ +image: + repository: collabora/code + tag: 6.4.8.6 + 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: + server_name: collabora\.domain\.tld diff --git a/stable/collabora-online/5.0.2/values.yaml b/stable/collabora-online/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/deepstack-cpu/3.0.2/CONFIG.md b/stable/deepstack-cpu/3.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/3.0.2/Chart.lock b/stable/deepstack-cpu/3.0.2/Chart.lock new file mode 100644 index 0000000000..fa39c535df --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:17.062789731Z" diff --git a/stable/deepstack-cpu/3.0.2/Chart.yaml b/stable/deepstack-cpu/3.0.2/Chart.yaml new file mode 100644 index 0000000000..82494bd56b --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/stable/deepstack-cpu +- https://github.com/johnolafenwa/DeepStack +- https://hub.docker.com/r/deepquestai/deepstack +- https://www.deepstack.cc/ +type: application +version: 3.0.2 diff --git a/stable/deepstack-cpu/3.0.2/README.md b/stable/deepstack-cpu/3.0.2/README.md new file mode 100644 index 0000000000..b082495e2f --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.0.3](https://img.shields.io/badge/Version-1.0.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) + +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 | 3.5.5 | + +## 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/3.0.2/app-readme.md b/stable/deepstack-cpu/3.0.2/app-readme.md new file mode 100644 index 0000000000..26df7a8b5d --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/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/3.0.2/charts/common-5.0.2.tgz b/stable/deepstack-cpu/3.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/deepstack-cpu/3.0.2/ix_values.yaml b/stable/deepstack-cpu/3.0.2/ix_values.yaml new file mode 100644 index 0000000000..4bff0fb6e8 --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deepquestai/deepstack + pullPolicy: IfNotPresent + tag: cpu-2021.02.1 + +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deepstack-cpu/3.0.2/questions.yaml b/stable/deepstack-cpu/3.0.2/questions.yaml new file mode 100644 index 0000000000..e3d149ad21 --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/questions.yaml @@ -0,0 +1,420 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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" + # Configure Enviroment Variables + - variable: env + group: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/datastore" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/stable/deepstack-cpu/3.0.2/templates/common.yaml b/stable/deepstack-cpu/3.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deepstack-cpu/3.0.2/test_values.yaml b/stable/deepstack-cpu/3.0.2/test_values.yaml new file mode 100644 index 0000000000..196439a072 --- /dev/null +++ b/stable/deepstack-cpu/3.0.2/test_values.yaml @@ -0,0 +1,43 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/deepstack-cpu/3.0.2/values.yaml b/stable/deepstack-cpu/3.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/emby/5.0.2/CONFIG.md b/stable/emby/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/emby/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/emby/5.0.2/Chart.lock new file mode 100644 index 0000000000..c7b0f1ba9c --- /dev/null +++ b/stable/emby/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:17.491755992Z" diff --git a/stable/emby/5.0.2/Chart.yaml b/stable/emby/5.0.2/Chart.yaml new file mode 100644 index 0000000000..5f82016c8f --- /dev/null +++ b/stable/emby/5.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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://github.com/truecharts/apps/tree/master/stable/emby +- https://hub.docker.com/r/linuxserver/emby +- https://github.com/linuxserver/docker-emby.git +type: application +version: 5.0.2 diff --git a/stable/emby/5.0.2/README.md b/stable/emby/5.0.2/README.md new file mode 100644 index 0000000000..05024fa417 --- /dev/null +++ b/stable/emby/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/emby/5.0.2/app-readme.md new file mode 100644 index 0000000000..14cf8a3a65 --- /dev/null +++ b/stable/emby/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/emby/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/emby/5.0.2/ix_values.yaml b/stable/emby/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..041b661687 --- /dev/null +++ b/stable/emby/5.0.2/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/truecharts/emby + pullPolicy: IfNotPresent + tag: v4.5.4.0 + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/emby/5.0.2/questions.yaml b/stable/emby/5.0.2/questions.yaml new file mode 100644 index 0000000000..d14513bf4b --- /dev/null +++ b/stable/emby/5.0.2/questions.yaml @@ -0,0 +1,415 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + 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" diff --git a/stable/emby/5.0.2/templates/common.yaml b/stable/emby/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/emby/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/emby/5.0.2/test_values.yaml b/stable/emby/5.0.2/test_values.yaml new file mode 100644 index 0000000000..c50b2d79fa --- /dev/null +++ b/stable/emby/5.0.2/test_values.yaml @@ -0,0 +1,33 @@ +# Default values for emby. + +image: + repository: ghcr.io/truecharts/emby + pullPolicy: IfNotPresent + tag: v4.5.4.0 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/emby/5.0.2/values.yaml b/stable/emby/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/esphome/5.0.2/CONFIG.md b/stable/esphome/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/esphome/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/esphome/5.0.2/Chart.lock new file mode 100644 index 0000000000..4c8533e1b2 --- /dev/null +++ b/stable/esphome/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:17.897835228Z" diff --git a/stable/esphome/5.0.2/Chart.yaml b/stable/esphome/5.0.2/Chart.yaml new file mode 100644 index 0000000000..d9d438edb8 --- /dev/null +++ b/stable/esphome/5.0.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/stable/esphome +- https://github.com/k8s-at-home/charts/tree/master/charts/esphome +- https://github.com/esphome/esphome +- https://hub.docker.com/u/esphome +type: application +upstream_version: 4.3.1 +version: 5.0.2 diff --git a/stable/esphome/5.0.2/README.md b/stable/esphome/5.0.2/README.md new file mode 100644 index 0000000000..3f7ce583e4 --- /dev/null +++ b/stable/esphome/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/esphome/5.0.2/app-readme.md new file mode 100644 index 0000000000..1854a47b15 --- /dev/null +++ b/stable/esphome/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/esphome/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/esphome/5.0.2/ix_values.yaml b/stable/esphome/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..74246b558c --- /dev/null +++ b/stable/esphome/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 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/5.0.2/questions.yaml b/stable/esphome/5.0.2/questions.yaml new file mode 100644 index 0000000000..a519f9a971 --- /dev/null +++ b/stable/esphome/5.0.2/questions.yaml @@ -0,0 +1,479 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/.platformio" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/esphome/5.0.2/templates/common.yaml b/stable/esphome/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/esphome/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/esphome/5.0.2/test_values.yaml b/stable/esphome/5.0.2/test_values.yaml new file mode 100644 index 0000000000..e006264097 --- /dev/null +++ b/stable/esphome/5.0.2/test_values.yaml @@ -0,0 +1,34 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/esphome/5.0.2/values.yaml b/stable/esphome/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/handbrake/5.0.2/CONFIG.md b/stable/handbrake/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/handbrake/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/handbrake/5.0.2/Chart.lock new file mode 100644 index 0000000000..ed0015a46b --- /dev/null +++ b/stable/handbrake/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:18.309699471Z" diff --git a/stable/handbrake/5.0.2/Chart.yaml b/stable/handbrake/5.0.2/Chart.yaml new file mode 100644 index 0000000000..947adca0d3 --- /dev/null +++ b/stable/handbrake/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +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/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/truecharts/apps/tree/master/stable/handbrake +- https://github.com/jlesage/docker-handbrake +- https://hub.docker.com/r/jlesage/handbrake/ +- https://handbrake.fr/ +type: application +version: 5.0.2 diff --git a/stable/handbrake/5.0.2/README.md b/stable/handbrake/5.0.2/README.md new file mode 100644 index 0000000000..5857382e0e --- /dev/null +++ b/stable/handbrake/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/handbrake/5.0.2/app-readme.md new file mode 100644 index 0000000000..483e45f40d --- /dev/null +++ b/stable/handbrake/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/handbrake/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f zgeElhfaqChjNhYxai+g+dw}|);)vEHC=ulegg8Q8$2%Ln8|86|I!{El;8-VMC%eCy>i z@^_r#N$1=Df9DB!3sW2y88|^s9*oP&klFZ`#<*vdz+35WcI}WFUuDpIv$5G?`8igV2ZZEUw^rxS0#q{ zCWYyu0XQk!<3$@`cRD{55sw;TRj7hph8%S|-+ud3JVObbpy9XQg8vk4PjEghZahDp z^@-NU0$ckqNwR*PBGjM3EJtadQRu%qohMJgONhl$luqXZ;5Yp|pFtdg58zE2f)AY! zpx5j50Q*P$LEo3HfDeHFM}fX(D$oo?1lcm-=MY@~*YU2md*}^%gKJupDfp!6zoP~C z00^bP2XMwWD#%}%pJIBu4{4HO!2U1((f*>pIv>F0kLPFL1Hci1asBM@yK9Et2XOhu z_2tdWlhNP72at)&C9k`K!CqH>x1Qhmz`~zDfa_m=wUjhA*jkiz7o#^a#R1AtI!7tZ zd-BWRR~_MA4;J~f+f;4Ws20T$s;eZ-j1S-@j>*ipre;fRjXC(hbHbDI_aAEtSF+J) z$eoWb;{1}|)YS+@$(^G?Aq7*iG{_%4R;3wQ4ktR8eecLSsI4ci1Bs$o#3i;T1h2e2 zy+uu8U65%(|EN-cr6=v7_i&bk$fNnu+Vn<(C0daDLx(Bu6*9G$9vn&@wqCHt5nC@UqLb`RhSHK94Qi{i@W+)VmZ)5vScHeSsJJYZ)j&^= zr{!Im$QqD@9gN_V+TGjV+ihJ{98l13xH`RT-MDr(W95G2m1)io-=5cEGH)Y9j5_@4 zp);K74OZHjCy_fK#N8CB#%@sk0f&00A{^REx8!N8Xp`_Dr9wPM5y~MbfIY!G^WVykHPibgGNzSMN^FUY=jrk!=EJ>RO}!9ld+` z>g>&n=T>-C9>ED|Eq#YmG$~*jJaqU?K&}aJ`&|a}X*@%HS)&!a%J}bk18;AzHyC`k zccefN=d)eQIh{E8l1NqP_$YSuPnxA?S@=b*(9;un8|$P@#x2X2X&r1LfaYH)3tN&P zIAnGWvlO|YtTf>n{M=Q`9D9y3WBi^PF?)$jo6a(`Gto$sioas5|CNBk`c`qbz$F zn}A;<82p^#9KDKs#oo0*Xc}Hi6*Y8Q9US(#wzUlZZeY6mBd)J;i<2UvH=TuHD=gV% zZRNJ2W1-rrEI|ui#YGGDS?O6Ev|z}Vj76@J>~yct48`FpC+0@+2J6TyZa+s<`j+Y| z+Kx8Ky8DCr%I2{kVHGu0GtMW~)JqWz@DemE%eNz9S$ePNLZzURe;tP*jwWxC0OpFOp(cv5P8;i47)!}cZ>gtqQsi-&MRZJ* zdUo^04COF@IRr&UaQ|hB!dWkf{S3@^y=UsSnXs(Oh6hvS18Lz1QOv2 zg`b1_&Q}z&N8fh7qI+gg2(@vJkHpeR6*k5RU@O_1vM!OsXpG_?p#mLYbj z^BCM>{}#k!mf(Z{1r*{Ah(%C0sotH$^kWy?#nCr8xQ*gF0B_8kAa zRt~=9gXdi--F;m|Tlo%%(A}1WM%%3j$r_@bBSuMz1id&1CciL-{%bjcU-3(XhQ<5L`w`_^>g{_w zpld8I(dJ2(p_EF0?;_5h6H|Pv+7hi$CL`Se@7Og^W;u@-*jrtuQgda2DcEJ@?zVS2 z#bJ=5XiJAHrs?pw49BL9A_kR@dUw0S$(Z||Im3^uR8@M&x@We>Xw1TBS;aX_0rc|% zhG#H`^d1dmRekkU`HfS;1Znh;&a-zr;1(^)Sylq!t$t-Rc?=-Uk+-G4r(ittYirxv zVpy?xLT0qJ+y5$H$iiB-sx;d%y2_{AS6_YHCTpZE%Q{IX+4B6#!mJ3O)i@QYxfGj% z=_EVOLWB~4Bj)8-*$9JI7B@?_WmmMBds=%()c)Am5LvW(TN{S;g)uBTRUO=l47!z7 z(Mn74DNTi^uO!G*?**ZJ>hjy+}zqBW>Eosy04TId}74&A$Bg@D+n#ECme9)?+0hJhP=Qv{B zl)aRKqIQyK%@L+T82Rz&>g4MD^xgA|x9@&<{p#hr7w4lZ!YX+gT3Idh_TnILbj=l$U(Ey~+j{o!geG+0H z=V~_{v!iT4UzV&xp3(j%>s@7W?*Oy!&TgO2s=aMm6c?|~p1->|dHH-T{gBX{I0|oM z&~CzA6CBU}_kxbgKkxr}Z(Q*I&yWB7*n`0gN7pUT=u}%44B4M^T&fMkO1C zT-2$~HN8Tm|Bec@zZ;eP3sl*O0_V`!$^5V>?4-(4`ug)|URBpiE%qf$nErW-wkoS& zyFqt<9?c!9yS$>(rM%Plsgwg`w=)VzFJZ!gky0X$1*`B2%jy5CsnE0H#0n9CSwOKq z2o2xufcRDgR9?UM>;EO6IAUK(00J*IAa$&&yKTouqj^1KCkWHlc?pwWI9YxL$FjRC z7&OnLxoXe6gvsjW3?a-)4q}^S!()5dL)2u&=3(FHq^PlXZ1xSSIb;b1N|{;$9D;6_ z$x6~2_TH{nu}dC>92z}8ef|8Z6n^Y$saA-F^R#fatMaNpAg5+MZpo!NVRuxnRuW^| zWO;ltIGCMe;W`Rcj^|*LwrXF1@OdohLngY()O8_58Kee+571v*j!;z`5s+;L$j-IO zsj>r1s3qp|8dhr3RhjFGoQ?*-tj6ao{u=^K<7CuGG%N!SuF?jF^(w!CO9qvX{?mTXmWX*xUx*Yc7G zC9Hm^-Tdz>cdn`r7cEQ?*K0t3ik7KBziQdLmS`-5c=j{Sr%a%}lsTi9Y+p$>-Dknm zl_KRik0Fp}J6^(QQ7M_>-_a24{%FT^#1m65OCdEM>JZEp^p9%WBJFi|w%{$XG-TH+ zSd-sMU5bT@Ud3c`@rFz_OVYmji6f%aV!9TsLTC~fxvXv|ME@ZKgo*;S^5{vIQiPRb z59B!*CR(5K$z}08HaA0Nv$GZYk-LONUyPZksu#{i9JAQjE-hv@EQWiyMDL7A>1@zl zZe*EokEK57I>bhOs8t_SK~SSbXg86ppiHREFrh5GnB|9ZGFYpLFo^P%@LMXcY)Xdi z?!#kXf;c{=(?w-w+@IK1h|6WMV?jnr5koC86%)Y^kLhh_!lUU>PpZvu9yN7;_Rmd<;BDzDeUO&&6VHL#q^Ib~SydS-lik7`cG`(mRp?i$$&8zzpU)CY zLrlc9Y|07EP(7+Jr9hYL)rJcZL@V^#QqQS~RUv+fDupTQ*C*hK_*+V<8+m=n40E+Z zzm?6Xl6=`_TIod_@x2k>8}Ypn-wyHpxer$TL7vL_KbD|ntp@-b@;@K!9vzzJ{|*iZ zoAZB<@i@=_5ye9}0!V)@alX$i?>aT8o&)5$fvN`qnGRW=1th#b-hquUH2B>ys6SrI|ilccBO2J@*<72*B{NM zHA~6fnAK|1f$GkIR@Ret)KCmm#f+-$y0koIWt@&$flL~c`{5`@=@|Ox{^Py6MmXcq zCaZW?E@^feM{6WNA(orPa3^a?6auW2`B%V1)@~>^a5;jWu z=YKT)e;TLwcVZ5Q?~*up2a7z;eE48Rrac ziJW-rHU^rS`7>Dt4qCJ`6B-FwwHcaePyXcIA<^&+%+Oo8iK3iZ=k*DeT8QAshZ-K` z<1|4WJ+T`jS2Ukj6}kiVOB}rxx!lwTM|rg@d|zAEZtm!^UZ}m!hv*=>u31k7p^TUE zUeURqv!PlZi*g<;iHxq3v%xR|?00O$AA;Q-8=;3_-`+K5PK;1aR!+8j5BXtrrK3Qb zo`38Y`*NseyjUP6d_ii5}&_%i^>GFH><3bbu?GbYe#cs0Y`Ik z^Q0Mvno+UZS*r-*mncuM|G6Y_jr&g|Gu5r?ioj$1^7Qh}n;eJucbY`<5~V(hayUV4 z_;Wjs>}uioaNuIHvJXR}6Zc&|DY`>&IQVE6GOWp$Xcni7Pu#DXMvjkG>Dr6}><+<^ zt9PgI>;^~e)Psi)&g1l24CoH1C%{JXJzVlF?V%H|Ij`d}30C&aN*E{KG+3;JT8@r`In^Vm5YRkma=W$JH@mE-FH`lPC}&z*dyXJW#-R?5MHR*$suYtDTP7 zZBA6wu&bO}SJ$p+I_|TzscRn%G-BQ?hXX8=NjT~;RA(6*#IA{pO8l2anBydLTWIU1 zc}A}bf$5^IMiZrULaF^B-4;pCKL0$@Zw0GDxNb9*94XG|$LojC4cMlODqCn1j)_BN z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/handbrake/5.0.2/ix_values.yaml b/stable/handbrake/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..a47a4681e9 --- /dev/null +++ b/stable/handbrake/5.0.2/ix_values.yaml @@ -0,0 +1,20 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/handbrake + tag: v1.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/5.0.2/questions.yaml b/stable/handbrake/5.0.2/questions.yaml new file mode 100644 index 0000000000..a13519f5d8 --- /dev/null +++ b/stable/handbrake/5.0.2/questions.yaml @@ -0,0 +1,590 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + - variable: deviceMounts + label: "Mount Devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: devicePath + label: "Device Path" + description: "Path to the device to mount inside the container" + schema: + type: path + required: true + default: "/dev/ttyACM0" + editable: true diff --git a/stable/handbrake/5.0.2/templates/common.yaml b/stable/handbrake/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/handbrake/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/handbrake/5.0.2/test_values.yaml b/stable/handbrake/5.0.2/test_values.yaml new file mode 100644 index 0000000000..8662a4bd6c --- /dev/null +++ b/stable/handbrake/5.0.2/test_values.yaml @@ -0,0 +1,55 @@ +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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/handbrake/5.0.2/values.yaml b/stable/handbrake/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/home-assistant/5.0.2/CONFIG.md b/stable/home-assistant/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/home-assistant/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/home-assistant/5.0.2/Chart.lock new file mode 100644 index 0000000000..1ffbab0b87 --- /dev/null +++ b/stable/home-assistant/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:18.717266109Z" diff --git a/stable/home-assistant/5.0.2/Chart.yaml b/stable/home-assistant/5.0.2/Chart.yaml new file mode 100644 index 0000000000..b0dc78ee89 --- /dev/null +++ b/stable/home-assistant/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: home-assistant App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/home-assistant +- https://github.com/k8s-at-home/charts/tree/master/charts/home-assistant +- https://github.com/home-assistant/home-assistant +- https://github.com/cdr/code-server +type: application +upstream_version: 5.3.0 +version: 5.0.2 diff --git a/stable/home-assistant/5.0.2/README.md b/stable/home-assistant/5.0.2/README.md new file mode 100644 index 0000000000..38e875fc8c --- /dev/null +++ b/stable/home-assistant/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/home-assistant/5.0.2/app-readme.md new file mode 100644 index 0000000000..822d932e2e --- /dev/null +++ b/stable/home-assistant/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/home-assistant/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/home-assistant/5.0.2/ix_values.yaml b/stable/home-assistant/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..c356b9f83b --- /dev/null +++ b/stable/home-assistant/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.5.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/home-assistant/5.0.2/questions.yaml b/stable/home-assistant/5.0.2/questions.yaml new file mode 100644 index 0000000000..8b13f973eb --- /dev/null +++ b/stable/home-assistant/5.0.2/questions.yaml @@ -0,0 +1,434 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: git + group: "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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/src/app/store" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + - variable: deviceMounts + label: "Mount Devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: devicePath + label: "Device Path" + description: "Path to the device to mount inside the container" + schema: + type: path + required: true + default: "/dev/ttyACM0" + editable: true diff --git a/stable/home-assistant/5.0.2/templates/common.yaml b/stable/home-assistant/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/home-assistant/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/home-assistant/5.0.2/templates/secret.yaml b/stable/home-assistant/5.0.2/templates/secret.yaml new file mode 100644 index 0000000000..19f769cf59 --- /dev/null +++ b/stable/home-assistant/5.0.2/templates/secret.yaml @@ -0,0 +1,15 @@ +{{- if or .Values.git.deployKey .Values.git.deployKeyBase64 }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "common.names.fullname" . }}-deploykey + labels: + {{- include "common.labels" . | nindent 4 }} +type: Opaque +data: + {{- if .Values.git.deployKey }} + id_rsa: {{ .Values.git.deployKey | b64enc | quote }} + {{- else }} + id_rsa: {{ .Values.git.deployKeyBase64 | quote }} + {{- end }} +{{- end }} diff --git a/stable/home-assistant/5.0.2/test_values.yaml b/stable/home-assistant/5.0.2/test_values.yaml new file mode 100644 index 0000000000..68988525dc --- /dev/null +++ b/stable/home-assistant/5.0.2/test_values.yaml @@ -0,0 +1,101 @@ +# Default values for Home Assistant + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.5.5 + +strategy: + type: Recreate + +env: {} + # TZ: + +service: + main: + ports: + main: + port: 8123 + +# # Enable devices to be discoverable +# hostNetwork: true + +# # When hostNetwork is true set dnsPolicy to ClusterFirstWithHostNet +# dnsPolicy: ClusterFirstWithHostNet + +# # Enable passing thru a USB device to Home Assistant +# securityContext: +# privileged: true + +# Allow access a Git repository by passing in a private SSH key +git: + # Raw SSH private key + deployKey: "" + # Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. + deployKeyBase64: "" + +# Enable a prometheus-operator servicemonitor +prometheus: + serviceMonitor: + enabled: false + # interval: 1m + # additionalLabels: {} + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + +# # 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 mariadb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb +mariadb: + enabled: false + architecture: standalone + auth: + database: home-assistant + username: home-assistant + password: home-assistant-pass + rootPassword: home-assistantrootpass + primary: + persistence: + enabled: false + # storageClass: "" + +# 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/5.0.2/values.yaml b/stable/home-assistant/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/jackett/5.0.2/CONFIG.md b/stable/jackett/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/jackett/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/jackett/5.0.2/Chart.lock new file mode 100644 index 0000000000..bd375e0a0e --- /dev/null +++ b/stable/jackett/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:19.156354281Z" diff --git a/stable/jackett/5.0.2/Chart.yaml b/stable/jackett/5.0.2/Chart.yaml new file mode 100644 index 0000000000..9c1e52ac2f --- /dev/null +++ b/stable/jackett/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/jackett +- https://github.com/k8s-at-home/charts/tree/master/charts/jackett +- https://github.com/Jackett/Jackett +- https://hub.docker.com/r/linuxserver/jackett +type: application +upstream_version: 7.0.1 +version: 5.0.2 diff --git a/stable/jackett/5.0.2/README.md b/stable/jackett/5.0.2/README.md new file mode 100644 index 0000000000..88c3c913b1 --- /dev/null +++ b/stable/jackett/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/jackett/5.0.2/app-readme.md new file mode 100644 index 0000000000..7e8f54afb7 --- /dev/null +++ b/stable/jackett/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/jackett/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f zgeElhfaqChjNhYxai+g+dw}|);)vEHC=ulegg8Q8$2%Ln8|86|I!{El;8-VMC%eCy>i z@^_r#N$1=Df9DB!3sW2y88|^s9*oP&klFZ`#<*vdz+35WcI}WFUuDpIv$5G?`8igV2ZZEUw^rxS0#q{ zCWYyu0XQk!<3$@`cRD{55sw;TRj7hph8%S|-+ud3JVObbpy9XQg8vk4PjEghZahDp z^@-NU0$ckqNwR*PBGjM3EJtadQRu%qohMJgONhl$luqXZ;5Yp|pFtdg58zE2f)AY! zpx5j50Q*P$LEo3HfDeHFM}fX(D$oo?1lcm-=MY@~*YU2md*}^%gKJupDfp!6zoP~C z00^bP2XMwWD#%}%pJIBu4{4HO!2U1((f*>pIv>F0kLPFL1Hci1asBM@yK9Et2XOhu z_2tdWlhNP72at)&C9k`K!CqH>x1Qhmz`~zDfa_m=wUjhA*jkiz7o#^a#R1AtI!7tZ zd-BWRR~_MA4;J~f+f;4Ws20T$s;eZ-j1S-@j>*ipre;fRjXC(hbHbDI_aAEtSF+J) z$eoWb;{1}|)YS+@$(^G?Aq7*iG{_%4R;3wQ4ktR8eecLSsI4ci1Bs$o#3i;T1h2e2 zy+uu8U65%(|EN-cr6=v7_i&bk$fNnu+Vn<(C0daDLx(Bu6*9G$9vn&@wqCHt5nC@UqLb`RhSHK94Qi{i@W+)VmZ)5vScHeSsJJYZ)j&^= zr{!Im$QqD@9gN_V+TGjV+ihJ{98l13xH`RT-MDr(W95G2m1)io-=5cEGH)Y9j5_@4 zp);K74OZHjCy_fK#N8CB#%@sk0f&00A{^REx8!N8Xp`_Dr9wPM5y~MbfIY!G^WVykHPibgGNzSMN^FUY=jrk!=EJ>RO}!9ld+` z>g>&n=T>-C9>ED|Eq#YmG$~*jJaqU?K&}aJ`&|a}X*@%HS)&!a%J}bk18;AzHyC`k zccefN=d)eQIh{E8l1NqP_$YSuPnxA?S@=b*(9;un8|$P@#x2X2X&r1LfaYH)3tN&P zIAnGWvlO|YtTf>n{M=Q`9D9y3WBi^PF?)$jo6a(`Gto$sioas5|CNBk`c`qbz$F zn}A;<82p^#9KDKs#oo0*Xc}Hi6*Y8Q9US(#wzUlZZeY6mBd)J;i<2UvH=TuHD=gV% zZRNJ2W1-rrEI|ui#YGGDS?O6Ev|z}Vj76@J>~yct48`FpC+0@+2J6TyZa+s<`j+Y| z+Kx8Ky8DCr%I2{kVHGu0GtMW~)JqWz@DemE%eNz9S$ePNLZzURe;tP*jwWxC0OpFOp(cv5P8;i47)!}cZ>gtqQsi-&MRZJ* zdUo^04COF@IRr&UaQ|hB!dWkf{S3@^y=UsSnXs(Oh6hvS18Lz1QOv2 zg`b1_&Q}z&N8fh7qI+gg2(@vJkHpeR6*k5RU@O_1vM!OsXpG_?p#mLYbj z^BCM>{}#k!mf(Z{1r*{Ah(%C0sotH$^kWy?#nCr8xQ*gF0B_8kAa zRt~=9gXdi--F;m|Tlo%%(A}1WM%%3j$r_@bBSuMz1id&1CciL-{%bjcU-3(XhQ<5L`w`_^>g{_w zpld8I(dJ2(p_EF0?;_5h6H|Pv+7hi$CL`Se@7Og^W;u@-*jrtuQgda2DcEJ@?zVS2 z#bJ=5XiJAHrs?pw49BL9A_kR@dUw0S$(Z||Im3^uR8@M&x@We>Xw1TBS;aX_0rc|% zhG#H`^d1dmRekkU`HfS;1Znh;&a-zr;1(^)Sylq!t$t-Rc?=-Uk+-G4r(ittYirxv zVpy?xLT0qJ+y5$H$iiB-sx;d%y2_{AS6_YHCTpZE%Q{IX+4B6#!mJ3O)i@QYxfGj% z=_EVOLWB~4Bj)8-*$9JI7B@?_WmmMBds=%()c)Am5LvW(TN{S;g)uBTRUO=l47!z7 z(Mn74DNTi^uO!G*?**ZJ>hjy+}zqBW>Eosy04TId}74&A$Bg@D+n#ECme9)?+0hJhP=Qv{B zl)aRKqIQyK%@L+T82Rz&>g4MD^xgA|x9@&<{p#hr7w4lZ!YX+gT3Idh_TnILbj=l$U(Ey~+j{o!geG+0H z=V~_{v!iT4UzV&xp3(j%>s@7W?*Oy!&TgO2s=aMm6c?|~p1->|dHH-T{gBX{I0|oM z&~CzA6CBU}_kxbgKkxr}Z(Q*I&yWB7*n`0gN7pUT=u}%44B4M^T&fMkO1C zT-2$~HN8Tm|Bec@zZ;eP3sl*O0_V`!$^5V>?4-(4`ug)|URBpiE%qf$nErW-wkoS& zyFqt<9?c!9yS$>(rM%Plsgwg`w=)VzFJZ!gky0X$1*`B2%jy5CsnE0H#0n9CSwOKq z2o2xufcRDgR9?UM>;EO6IAUK(00J*IAa$&&yKTouqj^1KCkWHlc?pwWI9YxL$FjRC z7&OnLxoXe6gvsjW3?a-)4q}^S!()5dL)2u&=3(FHq^PlXZ1xSSIb;b1N|{;$9D;6_ z$x6~2_TH{nu}dC>92z}8ef|8Z6n^Y$saA-F^R#fatMaNpAg5+MZpo!NVRuxnRuW^| zWO;ltIGCMe;W`Rcj^|*LwrXF1@OdohLngY()O8_58Kee+571v*j!;z`5s+;L$j-IO zsj>r1s3qp|8dhr3RhjFGoQ?*-tj6ao{u=^K<7CuGG%N!SuF?jF^(w!CO9qvX{?mTXmWX*xUx*Yc7G zC9Hm^-Tdz>cdn`r7cEQ?*K0t3ik7KBziQdLmS`-5c=j{Sr%a%}lsTi9Y+p$>-Dknm zl_KRik0Fp}J6^(QQ7M_>-_a24{%FT^#1m65OCdEM>JZEp^p9%WBJFi|w%{$XG-TH+ zSd-sMU5bT@Ud3c`@rFz_OVYmji6f%aV!9TsLTC~fxvXv|ME@ZKgo*;S^5{vIQiPRb z59B!*CR(5K$z}08HaA0Nv$GZYk-LONUyPZksu#{i9JAQjE-hv@EQWiyMDL7A>1@zl zZe*EokEK57I>bhOs8t_SK~SSbXg86ppiHREFrh5GnB|9ZGFYpLFo^P%@LMXcY)Xdi z?!#kXf;c{=(?w-w+@IK1h|6WMV?jnr5koC86%)Y^kLhh_!lUU>PpZvu9yN7;_Rmd<;BDzDeUO&&6VHL#q^Ib~SydS-lik7`cG`(mRp?i$$&8zzpU)CY zLrlc9Y|07EP(7+Jr9hYL)rJcZL@V^#QqQS~RUv+fDupTQ*C*hK_*+V<8+m=n40E+Z zzm?6Xl6=`_TIod_@x2k>8}Ypn-wyHpxer$TL7vL_KbD|ntp@-b@;@K!9vzzJ{|*iZ zoAZB<@i@=_5ye9}0!V)@alX$i?>aT8o&)5$fvN`qnGRW=1th#b-hquUH2B>ys6SrI|ilccBO2J@*<72*B{NM zHA~6fnAK|1f$GkIR@Ret)KCmm#f+-$y0koIWt@&$flL~c`{5`@=@|Ox{^Py6MmXcq zCaZW?E@^feM{6WNA(orPa3^a?6auW2`B%V1)@~>^a5;jWu z=YKT)e;TLwcVZ5Q?~*up2a7z;eE48Rrac ziJW-rHU^rS`7>Dt4qCJ`6B-FwwHcaePyXcIA<^&+%+Oo8iK3iZ=k*DeT8QAshZ-K` z<1|4WJ+T`jS2Ukj6}kiVOB}rxx!lwTM|rg@d|zAEZtm!^UZ}m!hv*=>u31k7p^TUE zUeURqv!PlZi*g<;iHxq3v%xR|?00O$AA;Q-8=;3_-`+K5PK;1aR!+8j5BXtrrK3Qb zo`38Y`*NseyjUP6d_ii5}&_%i^>GFH><3bbu?GbYe#cs0Y`Ik z^Q0Mvno+UZS*r-*mncuM|G6Y_jr&g|Gu5r?ioj$1^7Qh}n;eJucbY`<5~V(hayUV4 z_;Wjs>}uioaNuIHvJXR}6Zc&|DY`>&IQVE6GOWp$Xcni7Pu#DXMvjkG>Dr6}><+<^ zt9PgI>;^~e)Psi)&g1l24CoH1C%{JXJzVlF?V%H|Ij`d}30C&aN*E{KG+3;JT8@r`In^Vm5YRkma=W$JH@mE-FH`lPC}&z*dyXJW#-R?5MHR*$suYtDTP7 zZBA6wu&bO}SJ$p+I_|TzscRn%G-BQ?hXX8=NjT~;RA(6*#IA{pO8l2anBydLTWIU1 zc}A}bf$5^IMiZrULaF^B-4;pCKL0$@Zw0GDxNb9*94XG|$LojC4cMlODqCn1j)_BN z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/jackett/5.0.2/ix_values.yaml b/stable/jackett/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..b13a9410f8 --- /dev/null +++ b/stable/jackett/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: v0.18.106 + +## +# 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/5.0.2/questions.yaml b/stable/jackett/5.0.2/questions.yaml new file mode 100644 index 0000000000..3883aaabf4 --- /dev/null +++ b/stable/jackett/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/jackett/5.0.2/templates/common.yaml b/stable/jackett/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/jackett/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jackett/5.0.2/test_values.yaml b/stable/jackett/5.0.2/test_values.yaml new file mode 100644 index 0000000000..03d002dd45 --- /dev/null +++ b/stable/jackett/5.0.2/test_values.yaml @@ -0,0 +1,33 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: v0.18.106 + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 9117 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/jackett/5.0.2/values.yaml b/stable/jackett/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/jellyfin/5.0.2/CONFIG.md b/stable/jellyfin/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/jellyfin/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/jellyfin/5.0.2/Chart.lock new file mode 100644 index 0000000000..61a9601590 --- /dev/null +++ b/stable/jellyfin/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:19.606075164Z" diff --git a/stable/jellyfin/5.0.2/Chart.yaml b/stable/jellyfin/5.0.2/Chart.yaml new file mode 100644 index 0000000000..324440c02d --- /dev/null +++ b/stable/jellyfin/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Jellyfin is a Free Software Media System +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/jellyfin +- https://github.com/k8s-at-home/charts/tree/master/charts/jellyfin +- https://hub.docker.com/r/linuxserver/Jellyfin/ +- https://github.com/jellyfin/jellyfin +type: application +upstream_version: 4.2.1 +version: 5.0.2 diff --git a/stable/jellyfin/5.0.2/README.md b/stable/jellyfin/5.0.2/README.md new file mode 100644 index 0000000000..11b93b8a0e --- /dev/null +++ b/stable/jellyfin/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/jellyfin/5.0.2/app-readme.md new file mode 100644 index 0000000000..64d3430474 --- /dev/null +++ b/stable/jellyfin/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/jellyfin/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/jellyfin/5.0.2/ix_values.yaml b/stable/jellyfin/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..13fabd7f7f --- /dev/null +++ b/stable/jellyfin/5.0.2/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/5.0.2/questions.yaml b/stable/jellyfin/5.0.2/questions.yaml new file mode 100644 index 0000000000..42f85de368 --- /dev/null +++ b/stable/jellyfin/5.0.2/questions.yaml @@ -0,0 +1,415 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + 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" diff --git a/stable/jellyfin/5.0.2/templates/common.yaml b/stable/jellyfin/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/jellyfin/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jellyfin/5.0.2/test_values.yaml b/stable/jellyfin/5.0.2/test_values.yaml new file mode 100644 index 0000000000..d12fe40141 --- /dev/null +++ b/stable/jellyfin/5.0.2/test_values.yaml @@ -0,0 +1,33 @@ +# 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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/jellyfin/5.0.2/values.yaml b/stable/jellyfin/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/kms/5.0.2/CONFIG.md b/stable/kms/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/kms/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/kms/5.0.2/Chart.lock new file mode 100644 index 0000000000..6e08a19be5 --- /dev/null +++ b/stable/kms/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:20.051924844Z" diff --git a/stable/kms/5.0.2/Chart.yaml b/stable/kms/5.0.2/Chart.yaml new file mode 100644 index 0000000000..680857fa77 --- /dev/null +++ b/stable/kms/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: minimal +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Private Windows Activation Server for development and testing +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/kms +- https://github.com/SystemRage/py-kms +type: application +version: 5.0.2 diff --git a/stable/kms/5.0.2/README.md b/stable/kms/5.0.2/README.md new file mode 100644 index 0000000000..decd88d45f --- /dev/null +++ b/stable/kms/5.0.2/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/kms/5.0.2/app-readme.md new file mode 100644 index 0000000000..79791f4322 --- /dev/null +++ b/stable/kms/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/kms/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/kms/5.0.2/ix_values.yaml b/stable/kms/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..05f3f76e0a --- /dev/null +++ b/stable/kms/5.0.2/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/kms/5.0.2/questions.yaml b/stable/kms/5.0.2/questions.yaml new file mode 100644 index 0000000000..a96b7c6f56 --- /dev/null +++ b/stable/kms/5.0.2/questions.yaml @@ -0,0 +1,285 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/stable/kms/5.0.2/templates/common.yaml b/stable/kms/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/kms/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/kms/5.0.2/test_values.yaml b/stable/kms/5.0.2/test_values.yaml new file mode 100644 index 0000000000..8e46855095 --- /dev/null +++ b/stable/kms/5.0.2/test_values.yaml @@ -0,0 +1,15 @@ +# Default values for KMS. + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 1688 diff --git a/stable/kms/5.0.2/values.yaml b/stable/kms/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/lidarr/5.0.2/CONFIG.md b/stable/lidarr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/lidarr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/lidarr/5.0.2/Chart.lock new file mode 100644 index 0000000000..eb3056b422 --- /dev/null +++ b/stable/lidarr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:20.487770512Z" diff --git a/stable/lidarr/5.0.2/Chart.yaml b/stable/lidarr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..a556a01fc8 --- /dev/null +++ b/stable/lidarr/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Looks and smells like Sonarr but made for music +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/lidarr +- https://github.com/k8s-at-home/charts/tree/master/charts/lidarr +- https://github.com/Lidarr/Lidarr +- https://hub.docker.com/r/linuxserver/lidarr +type: application +upstream_version: 7.1.0 +version: 5.0.2 diff --git a/stable/lidarr/5.0.2/README.md b/stable/lidarr/5.0.2/README.md new file mode 100644 index 0000000000..b6f601f4c4 --- /dev/null +++ b/stable/lidarr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/lidarr/5.0.2/app-readme.md new file mode 100644 index 0000000000..399c4eb028 --- /dev/null +++ b/stable/lidarr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/lidarr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z z0T5-T4pF+QbSjxB-f7t zqjvBBRbmawC{wyjk=CZZ=sit2oRqWi0ib9`q}{#!gLV>DA8QSPXE=_i&3q|=rWDxIH>VmeG&sd52Z{de;ixvx7v!Cq}nn2vuCO85Q3B<{Apuo z0(N@c(ttIws~sPe2iJ}c7B@AQcWKuvAW zvl(x6y@%;~HNu^UjR*Kqv>Xj#U2t0-W}^i8&1xb8Q{yqn!;DNW6&weyJ3t!1EbnVk z8zxQ3oChXoQ-6|j)umqA@u38-bgf*?bzTpb*0fB|)ojNrqOnfrOS`$YIs5g+K3e=o zg3=kzGBVunev5C`6$jD~|8aOYF!MhgJ{xS#e?7|crNn<+mQ(M4;+u7cfjFT5nW8~- z60{2nagnVW8{#A|Z8}96ihQ)Xq3yJ=|0ljFP3!fU#s3rE)SAUV<9zy)n#OMx<3rB_ zC~uo%Io8?~Z!%b_HDq?E<9_>Q#GB)OK18&I<&u9jD@By8D96ewvl!K%(VC*R=B=mnPH zAAinu&B->@Ij1ekN#l<0(~w^l88f7c$^SG;P(2 zE19Vk|7G);wnJPO^g>=a=L5U8PZU!RXnw3M%hR3e6)H7E{?u|+l%wZxXz2(Ucd^TX zpI7hUG67ZbufaxUZ*4+}7qsFf2DBA&EBi1d4XRDA?ijTK%^s}l+2K4;)jN%6GZ+O; z2aHSIqMb(2UK3ba16WG(FCp<;OZxT_erd_Rq(pBi$sceA+^M_sdDE!7E1mrzPK9FH zppZ7@8R3oBYOeho9QCs)k)b`GO44b37lGbu@a*ur;j_c`jK!brUHSfRDfb z{`{Rsi(^_M)8Lica8BV?xh|OyHeEYxV{y)3SDrYVWdS%|jqW~K2e|UDZ`^?z?KRVjq z?EgQ?^9Aky>$knqt3f|O96((wf3kQ03n^O11=Nz!8Xr(kc=G23oIM~$!0j+-7d|f^ z%S`~v)xsXr#mp0QT4P4UY=gO>uyZd-b?g zkh)MR+b?KX15(wC6l_$J7sP@;kpi2{{g#o%a!KXNit1`t01&FS)nk>0t@*ZASkI$8 zPT_=n%GPlujQdQj($12%y{xpv)%J#<+q2v%LcgtZ{bWj;mi1$xq^}){*T{z<`o|BW zH8UFxuhHqri|0Mkh#NKhzQ^nIeDbR2;zo2@O1}JQ5bo6=y5T&_avqz|TZ#SDSgP7u zKRza_Z;7*yWg}VwVg+VR@chG1Ju2<&fCnP8CNomE|KecXx&QvsX#edW4))CW?}Nd! z!;Ss-7|$1D|HZ-DjXeeApUSd}gO+BTN+65PrqPf5DH51JM45AkWRhY)xgV=mhqK?; zM_~-XuBP}T$j4*M&M?@U8QMcA+myQg81t`0dLe~DEh0F>zM3ngg1~hx z0vt{##IGe-#mhU?i39zq@ruq4<|Sr&YxOH(gJ(Fc)~m0}9G;)3H7exw z83l8=bYt%^^$Adi?T~_?f6{{2oz)rSw+}yN$sUK+q#Qf69X6y>MCED!A(nT|k+JfO z7@a0vdeL?cyB|L*Yts4CADT7I%fm>^@FjV|t8N=Wo-3-Sg+ooDMCR>0(A6*Xrn&8i z46Q;rrE)S$G;C#|mFhg0PVcxf6RR|7nP5nAbqztYrN;b0t7vEncc=V^XcMcl_@%k7 z&IBLEL1&ASe@cwV8!f(L*+$e@3A(>rDFJ;SW!cM^e1DB#@Ng>b6qaoP+ z(T<`T?eQ=yGuqR2A$t7~UELH$Y`tB@Waja<9J;)iiw!{pvYb_+m$FA~m+HY>-c*`v z4i}O|>*9u-4Ob>)GZOCBT>(Okt!ovVslXIRf?@5-Sk!SOs!?Oh-v&E)PrXCuic0j$L94 zxA1()gxsnA$a9k-c>9Tk_;YT=IF9mu5-|=|Fx4I;R-7)Nmngu+4AdlX#=oN%c!qPA zTq$qGXOG?GhwM0dJY#$S6N5vl0 zB@1Vwo#Wjf@$z`HN?(R&>Oaawv=IXKLrf*}=S6=R{95nIGR!r5x>()R^~hWwOnNS%d~zcy_AG1+*nqpt2sXY(8H4E&prAfXUOu$kjyw%Q*=7XfX3B)N$5uTd?`0s|GO9roNKg=nvUgPk;7zf|u3C?mfS_)2ed{+!4t+r_hM%&s}QX1)XRS9gX z=ynn|*-AQ`I^nIAG$pwX#wpgzJ!UD}wVJ%2Gn7N3d3yC$nH2OTSXJ7qe58%YSGdX2 zg5N#pw(5=2tz_L|PPmChCxud>`Eql659}&MNt7KGEA_H5YY%Hx36(8>Zc;DfXtgc{ z{a95N7padjFGc?DAMh8O^mgIB1{5mvNfw;ph+W@Hpo(8yZ5=B1PqvMP<5|9k;`|g6RZNoasQW zG%=U=P6FH5yxFG}xoS?_oSWNU`$yMc-%DIaJ!u81UcSGdunS3;UtIxzgg zlRqeYN?*-wf&eK0L}^+z=2DawY2>ibz!%4@SMm%xd9{KGnFGS}W0Y6TWI79%@clW= zb7qpOO_!(hgo_;|9O^NHxlC(6U0q!+$^2w%wC?iFjg}J#T63c%+k11iIx$II zdu!~=m&>U)>~h`gQVhO}n~6#Da9(y2MR86qm0E*B?&M}lD+bWjd7A>W5=Ht6m|L6X z*2&%4wzoF+rZrd@r2B53LNvy=9*!m{$};b^xIt-za+G;E7M@M6|7V#$MbsSW64N}B z!M5NNaZ3laHtg~4M0J$II;C10AFWK*lhOWHqYkSJfG$H{{jF2|Nm|TkxT$|0s!AZ Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/lidarr/5.0.2/ix_values.yaml b/stable/lidarr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..d35da43416 --- /dev/null +++ b/stable/lidarr/5.0.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/stable/lidarr/5.0.2/questions.yaml new file mode 100644 index 0000000000..d123c1d450 --- /dev/null +++ b/stable/lidarr/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/lidarr/5.0.2/templates/common.yaml b/stable/lidarr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/lidarr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lidarr/5.0.2/test_values.yaml b/stable/lidarr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..00488d10b5 --- /dev/null +++ b/stable/lidarr/5.0.2/test_values.yaml @@ -0,0 +1,51 @@ +# Default values for Lidarr. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/lidarr/5.0.2/values.yaml b/stable/lidarr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/ombi/5.0.2/CONFIG.md b/stable/ombi/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/ombi/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/ombi/5.0.2/Chart.lock new file mode 100644 index 0000000000..d27ca4ac3b --- /dev/null +++ b/stable/ombi/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:20.907980464Z" diff --git a/stable/ombi/5.0.2/Chart.yaml b/stable/ombi/5.0.2/Chart.yaml new file mode 100644 index 0000000000..c9ab5ff31a --- /dev/null +++ b/stable/ombi/5.0.2/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Want a Movie or TV Show on Plex or Emby? Use Ombi! +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/ombi +- https://github.com/k8s-at-home/charts/tree/master/charts/ombi +- https://github.com/tidusjar/Ombi +- https://hub.docker.com/r/linuxserver/ombi +type: application +upstream_version: 8.0.1 +version: 5.0.2 diff --git a/stable/ombi/5.0.2/README.md b/stable/ombi/5.0.2/README.md new file mode 100644 index 0000000000..879b01a66a --- /dev/null +++ b/stable/ombi/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/ombi/5.0.2/app-readme.md new file mode 100644 index 0000000000..b573c95c43 --- /dev/null +++ b/stable/ombi/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/ombi/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z z0T5-T4pF+QbSjxB-f7t zqjvBBRbmawC{wyjk=CZZ=sit2oRqWi0ib9`q}{#!gLV>DA8QSPXE=_i&3q|=rWDxIH>VmeG&sd52Z{de;ixvx7v!Cq}nn2vuCO85Q3B<{Apuo z0(N@c(ttIws~sPe2iJ}c7B@AQcWKuvAW zvl(x6y@%;~HNu^UjR*Kqv>Xj#U2t0-W}^i8&1xb8Q{yqn!;DNW6&weyJ3t!1EbnVk z8zxQ3oChXoQ-6|j)umqA@u38-bgf*?bzTpb*0fB|)ojNrqOnfrOS`$YIs5g+K3e=o zg3=kzGBVunev5C`6$jD~|8aOYF!MhgJ{xS#e?7|crNn<+mQ(M4;+u7cfjFT5nW8~- z60{2nagnVW8{#A|Z8}96ihQ)Xq3yJ=|0ljFP3!fU#s3rE)SAUV<9zy)n#OMx<3rB_ zC~uo%Io8?~Z!%b_HDq?E<9_>Q#GB)OK18&I<&u9jD@By8D96ewvl!K%(VC*R=B=mnPH zAAinu&B->@Ij1ekN#l<0(~w^l88f7c$^SG;P(2 zE19Vk|7G);wnJPO^g>=a=L5U8PZU!RXnw3M%hR3e6)H7E{?u|+l%wZxXz2(Ucd^TX zpI7hUG67ZbufaxUZ*4+}7qsFf2DBA&EBi1d4XRDA?ijTK%^s}l+2K4;)jN%6GZ+O; z2aHSIqMb(2UK3ba16WG(FCp<;OZxT_erd_Rq(pBi$sceA+^M_sdDE!7E1mrzPK9FH zppZ7@8R3oBYOeho9QCs)k)b`GO44b37lGbu@a*ur;j_c`jK!brUHSfRDfb z{`{Rsi(^_M)8Lica8BV?xh|OyHeEYxV{y)3SDrYVWdS%|jqW~K2e|UDZ`^?z?KRVjq z?EgQ?^9Aky>$knqt3f|O96((wf3kQ03n^O11=Nz!8Xr(kc=G23oIM~$!0j+-7d|f^ z%S`~v)xsXr#mp0QT4P4UY=gO>uyZd-b?g zkh)MR+b?KX15(wC6l_$J7sP@;kpi2{{g#o%a!KXNit1`t01&FS)nk>0t@*ZASkI$8 zPT_=n%GPlujQdQj($12%y{xpv)%J#<+q2v%LcgtZ{bWj;mi1$xq^}){*T{z<`o|BW zH8UFxuhHqri|0Mkh#NKhzQ^nIeDbR2;zo2@O1}JQ5bo6=y5T&_avqz|TZ#SDSgP7u zKRza_Z;7*yWg}VwVg+VR@chG1Ju2<&fCnP8CNomE|KecXx&QvsX#edW4))CW?}Nd! z!;Ss-7|$1D|HZ-DjXeeApUSd}gO+BTN+65PrqPf5DH51JM45AkWRhY)xgV=mhqK?; zM_~-XuBP}T$j4*M&M?@U8QMcA+myQg81t`0dLe~DEh0F>zM3ngg1~hx z0vt{##IGe-#mhU?i39zq@ruq4<|Sr&YxOH(gJ(Fc)~m0}9G;)3H7exw z83l8=bYt%^^$Adi?T~_?f6{{2oz)rSw+}yN$sUK+q#Qf69X6y>MCED!A(nT|k+JfO z7@a0vdeL?cyB|L*Yts4CADT7I%fm>^@FjV|t8N=Wo-3-Sg+ooDMCR>0(A6*Xrn&8i z46Q;rrE)S$G;C#|mFhg0PVcxf6RR|7nP5nAbqztYrN;b0t7vEncc=V^XcMcl_@%k7 z&IBLEL1&ASe@cwV8!f(L*+$e@3A(>rDFJ;SW!cM^e1DB#@Ng>b6qaoP+ z(T<`T?eQ=yGuqR2A$t7~UELH$Y`tB@Waja<9J;)iiw!{pvYb_+m$FA~m+HY>-c*`v z4i}O|>*9u-4Ob>)GZOCBT>(Okt!ovVslXIRf?@5-Sk!SOs!?Oh-v&E)PrXCuic0j$L94 zxA1()gxsnA$a9k-c>9Tk_;YT=IF9mu5-|=|Fx4I;R-7)Nmngu+4AdlX#=oN%c!qPA zTq$qGXOG?GhwM0dJY#$S6N5vl0 zB@1Vwo#Wjf@$z`HN?(R&>Oaawv=IXKLrf*}=S6=R{95nIGR!r5x>()R^~hWwOnNS%d~zcy_AG1+*nqpt2sXY(8H4E&prAfXUOu$kjyw%Q*=7XfX3B)N$5uTd?`0s|GO9roNKg=nvUgPk;7zf|u3C?mfS_)2ed{+!4t+r_hM%&s}QX1)XRS9gX z=ynn|*-AQ`I^nIAG$pwX#wpgzJ!UD}wVJ%2Gn7N3d3yC$nH2OTSXJ7qe58%YSGdX2 zg5N#pw(5=2tz_L|PPmChCxud>`Eql659}&MNt7KGEA_H5YY%Hx36(8>Zc;DfXtgc{ z{a95N7padjFGc?DAMh8O^mgIB1{5mvNfw;ph+W@Hpo(8yZ5=B1PqvMP<5|9k;`|g6RZNoasQW zG%=U=P6FH5yxFG}xoS?_oSWNU`$yMc-%DIaJ!u81UcSGdunS3;UtIxzgg zlRqeYN?*-wf&eK0L}^+z=2DawY2>ibz!%4@SMm%xd9{KGnFGS}W0Y6TWI79%@clW= zb7qpOO_!(hgo_;|9O^NHxlC(6U0q!+$^2w%wC?iFjg}J#T63c%+k11iIx$II zdu!~=m&>U)>~h`gQVhO}n~6#Da9(y2MR86qm0E*B?&M}lD+bWjd7A>W5=Ht6m|L6X z*2&%4wzoF+rZrd@r2B53LNvy=9*!m{$};b^xIt-za+G;E7M@M6|7V#$MbsSW64N}B z!M5NNaZ3laHtg~4M0J$II;C10AFWK*lhOWHqYkSJfG$H{{jF2|Nm|TkxT$|0s!AZ Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/ombi/5.0.2/ix_values.yaml b/stable/ombi/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..a4afd55a47 --- /dev/null +++ b/stable/ombi/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1394 + +## +# 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/5.0.2/questions.yaml b/stable/ombi/5.0.2/questions.yaml new file mode 100644 index 0000000000..35e28fabab --- /dev/null +++ b/stable/ombi/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/ombi/5.0.2/templates/common.yaml b/stable/ombi/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/ombi/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ombi/5.0.2/test_values.yaml b/stable/ombi/5.0.2/test_values.yaml new file mode 100644 index 0000000000..0fa1586a28 --- /dev/null +++ b/stable/ombi/5.0.2/test_values.yaml @@ -0,0 +1,43 @@ +# Default values for Ombi. + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1394 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 3579 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + +# 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/5.0.2/values.yaml b/stable/ombi/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/plex/4.0.2/CONFIG.md b/stable/plex/4.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/plex/4.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/4.0.2/Chart.lock b/stable/plex/4.0.2/Chart.lock new file mode 100644 index 0000000000..84d2037584 --- /dev/null +++ b/stable/plex/4.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:21.381699773Z" diff --git a/stable/plex/4.0.2/Chart.yaml b/stable/plex/4.0.2/Chart.yaml new file mode 100644 index 0000000000..b589c65231 --- /dev/null +++ b/stable/plex/4.0.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Plex Media Server +home: https://github.com/truecharts/apps/tree/master/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: +- https://github.com/truecharts/apps/tree/master/stable/plex +type: application +upstream_version: 4.2.1 +version: 4.0.2 diff --git a/stable/plex/4.0.2/README.md b/stable/plex/4.0.2/README.md new file mode 100644 index 0000000000..b0edfa0be5 --- /dev/null +++ b/stable/plex/4.0.2/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 2.1.5](https://img.shields.io/badge/Version-2.1.5-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)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 3.5.5 | + +## 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/4.0.2/app-readme.md b/stable/plex/4.0.2/app-readme.md new file mode 100644 index 0000000000..4d5dfd7c1f --- /dev/null +++ b/stable/plex/4.0.2/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/4.0.2/charts/common-5.0.2.tgz b/stable/plex/4.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/plex/4.0.2/ix_values.yaml b/stable/plex/4.0.2/ix_values.yaml new file mode 100644 index 0000000000..ee4e47d723 --- /dev/null +++ b/stable/plex/4.0.2/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/truecharts/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/4.0.2/questions.yaml b/stable/plex/4.0.2/questions.yaml new file mode 100644 index 0000000000..7cb7ff3d11 --- /dev/null +++ b/stable/plex/4.0.2/questions.yaml @@ -0,0 +1,433 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + 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" diff --git a/stable/plex/4.0.2/templates/common.yaml b/stable/plex/4.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/plex/4.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/plex/4.0.2/test_values.yaml b/stable/plex/4.0.2/test_values.yaml new file mode 100644 index 0000000000..3cdcd873c1 --- /dev/null +++ b/stable/plex/4.0.2/test_values.yaml @@ -0,0 +1,33 @@ +# Default values for Plex. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/plex/4.0.2/values.yaml b/stable/plex/4.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/radarr/5.0.2/CONFIG.md b/stable/radarr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/radarr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/radarr/5.0.2/Chart.lock new file mode 100644 index 0000000000..1d0a0e391f --- /dev/null +++ b/stable/radarr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:21.839968765Z" diff --git a/stable/radarr/5.0.2/Chart.yaml b/stable/radarr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..ef494ba9f2 --- /dev/null +++ b/stable/radarr/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: "A fork of Sonarr to work with movies \xE0 la Couchpotato" +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/radarr +- https://github.com/k8s-at-home/charts/tree/master/charts/radarr +- https://github.com/Radarr/Radarr +- https://hub.docker.com/r/linuxserver/radarr +type: application +upstream_version: 9.1.0 +version: 5.0.2 diff --git a/stable/radarr/5.0.2/README.md b/stable/radarr/5.0.2/README.md new file mode 100644 index 0000000000..65b6630744 --- /dev/null +++ b/stable/radarr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/radarr/5.0.2/app-readme.md new file mode 100644 index 0000000000..a48f339600 --- /dev/null +++ b/stable/radarr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/radarr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z z0T5-T4pF+QbSjxB-f7t zqjvBBRbmawC{wyjk=CZZ=sit2oRqWi0ib9`q}{#!gLV>DA8QSPXE=_i&3q|=rWDxIH>VmeG&sd52Z{de;ixvx7v!Cq}nn2vuCO85Q3B<{Apuo z0(N@c(ttIws~sPe2iJ}c7B@AQcWKuvAW zvl(x6y@%;~HNu^UjR*Kqv>Xj#U2t0-W}^i8&1xb8Q{yqn!;DNW6&weyJ3t!1EbnVk z8zxQ3oChXoQ-6|j)umqA@u38-bgf*?bzTpb*0fB|)ojNrqOnfrOS`$YIs5g+K3e=o zg3=kzGBVunev5C`6$jD~|8aOYF!MhgJ{xS#e?7|crNn<+mQ(M4;+u7cfjFT5nW8~- z60{2nagnVW8{#A|Z8}96ihQ)Xq3yJ=|0ljFP3!fU#s3rE)SAUV<9zy)n#OMx<3rB_ zC~uo%Io8?~Z!%b_HDq?E<9_>Q#GB)OK18&I<&u9jD@By8D96ewvl!K%(VC*R=B=mnPH zAAinu&B->@Ij1ekN#l<0(~w^l88f7c$^SG;P(2 zE19Vk|7G);wnJPO^g>=a=L5U8PZU!RXnw3M%hR3e6)H7E{?u|+l%wZxXz2(Ucd^TX zpI7hUG67ZbufaxUZ*4+}7qsFf2DBA&EBi1d4XRDA?ijTK%^s}l+2K4;)jN%6GZ+O; z2aHSIqMb(2UK3ba16WG(FCp<;OZxT_erd_Rq(pBi$sceA+^M_sdDE!7E1mrzPK9FH zppZ7@8R3oBYOeho9QCs)k)b`GO44b37lGbu@a*ur;j_c`jK!brUHSfRDfb z{`{Rsi(^_M)8Lica8BV?xh|OyHeEYxV{y)3SDrYVWdS%|jqW~K2e|UDZ`^?z?KRVjq z?EgQ?^9Aky>$knqt3f|O96((wf3kQ03n^O11=Nz!8Xr(kc=G23oIM~$!0j+-7d|f^ z%S`~v)xsXr#mp0QT4P4UY=gO>uyZd-b?g zkh)MR+b?KX15(wC6l_$J7sP@;kpi2{{g#o%a!KXNit1`t01&FS)nk>0t@*ZASkI$8 zPT_=n%GPlujQdQj($12%y{xpv)%J#<+q2v%LcgtZ{bWj;mi1$xq^}){*T{z<`o|BW zH8UFxuhHqri|0Mkh#NKhzQ^nIeDbR2;zo2@O1}JQ5bo6=y5T&_avqz|TZ#SDSgP7u zKRza_Z;7*yWg}VwVg+VR@chG1Ju2<&fCnP8CNomE|KecXx&QvsX#edW4))CW?}Nd! z!;Ss-7|$1D|HZ-DjXeeApUSd}gO+BTN+65PrqPf5DH51JM45AkWRhY)xgV=mhqK?; zM_~-XuBP}T$j4*M&M?@U8QMcA+myQg81t`0dLe~DEh0F>zM3ngg1~hx z0vt{##IGe-#mhU?i39zq@ruq4<|Sr&YxOH(gJ(Fc)~m0}9G;)3H7exw z83l8=bYt%^^$Adi?T~_?f6{{2oz)rSw+}yN$sUK+q#Qf69X6y>MCED!A(nT|k+JfO z7@a0vdeL?cyB|L*Yts4CADT7I%fm>^@FjV|t8N=Wo-3-Sg+ooDMCR>0(A6*Xrn&8i z46Q;rrE)S$G;C#|mFhg0PVcxf6RR|7nP5nAbqztYrN;b0t7vEncc=V^XcMcl_@%k7 z&IBLEL1&ASe@cwV8!f(L*+$e@3A(>rDFJ;SW!cM^e1DB#@Ng>b6qaoP+ z(T<`T?eQ=yGuqR2A$t7~UELH$Y`tB@Waja<9J;)iiw!{pvYb_+m$FA~m+HY>-c*`v z4i}O|>*9u-4Ob>)GZOCBT>(Okt!ovVslXIRf?@5-Sk!SOs!?Oh-v&E)PrXCuic0j$L94 zxA1()gxsnA$a9k-c>9Tk_;YT=IF9mu5-|=|Fx4I;R-7)Nmngu+4AdlX#=oN%c!qPA zTq$qGXOG?GhwM0dJY#$S6N5vl0 zB@1Vwo#Wjf@$z`HN?(R&>Oaawv=IXKLrf*}=S6=R{95nIGR!r5x>()R^~hWwOnNS%d~zcy_AG1+*nqpt2sXY(8H4E&prAfXUOu$kjyw%Q*=7XfX3B)N$5uTd?`0s|GO9roNKg=nvUgPk;7zf|u3C?mfS_)2ed{+!4t+r_hM%&s}QX1)XRS9gX z=ynn|*-AQ`I^nIAG$pwX#wpgzJ!UD}wVJ%2Gn7N3d3yC$nH2OTSXJ7qe58%YSGdX2 zg5N#pw(5=2tz_L|PPmChCxud>`Eql659}&MNt7KGEA_H5YY%Hx36(8>Zc;DfXtgc{ z{a95N7padjFGc?DAMh8O^mgIB1{5mvNfw;ph+W@Hpo(8yZ5=B1PqvMP<5|9k;`|g6RZNoasQW zG%=U=P6FH5yxFG}xoS?_oSWNU`$yMc-%DIaJ!u81UcSGdunS3;UtIxzgg zlRqeYN?*-wf&eK0L}^+z=2DawY2>ibz!%4@SMm%xd9{KGnFGS}W0Y6TWI79%@clW= zb7qpOO_!(hgo_;|9O^NHxlC(6U0q!+$^2w%wC?iFjg}J#T63c%+k11iIx$II zdu!~=m&>U)>~h`gQVhO}n~6#Da9(y2MR86qm0E*B?&M}lD+bWjd7A>W5=Ht6m|L6X z*2&%4wzoF+rZrd@r2B53LNvy=9*!m{$};b^xIt-za+G;E7M@M6|7V#$MbsSW64N}B z!M5NNaZ3laHtg~4M0J$II;C10AFWK*lhOWHqYkSJfG$H{{jF2|Nm|TkxT$|0s!AZ Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/radarr/5.0.2/ix_values.yaml b/stable/radarr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..d072268cac --- /dev/null +++ b/stable/radarr/5.0.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/radarr + pullPolicy: IfNotPresent + tag: v3.2.0.5048 + +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/5.0.2/questions.yaml b/stable/radarr/5.0.2/questions.yaml new file mode 100644 index 0000000000..e38e014331 --- /dev/null +++ b/stable/radarr/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/radarr/5.0.2/templates/common.yaml b/stable/radarr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/radarr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/radarr/5.0.2/test_values.yaml b/stable/radarr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..e0c08d1333 --- /dev/null +++ b/stable/radarr/5.0.2/test_values.yaml @@ -0,0 +1,51 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/truecharts/radarr + pullPolicy: IfNotPresent + tag: v3.2.0.5048 + +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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/radarr/5.0.2/values.yaml b/stable/radarr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/sonarr/5.0.2/CONFIG.md b/stable/sonarr/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/sonarr/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/sonarr/5.0.2/Chart.lock new file mode 100644 index 0000000000..c5dfe0de45 --- /dev/null +++ b/stable/sonarr/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:22.334323597Z" diff --git a/stable/sonarr/5.0.2/Chart.yaml b/stable/sonarr/5.0.2/Chart.yaml new file mode 100644 index 0000000000..84e1c69607 --- /dev/null +++ b/stable/sonarr/5.0.2/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Smart PVR for newsgroup and bittorrent users +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/sonarr +- https://github.com/k8s-at-home/charts/tree/master/charts/sonarr +- https://github.com/Sonarr/Sonarr +- https://hub.docker.com/r/linuxserver/sonarr +type: application +upstream_version: 9.1.0 +version: 5.0.2 diff --git a/stable/sonarr/5.0.2/README.md b/stable/sonarr/5.0.2/README.md new file mode 100644 index 0000000000..d9948719ae --- /dev/null +++ b/stable/sonarr/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/sonarr/5.0.2/app-readme.md new file mode 100644 index 0000000000..07c189ecff --- /dev/null +++ b/stable/sonarr/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/sonarr/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/sonarr/5.0.2/ix_values.yaml b/stable/sonarr/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..7e80aefc35 --- /dev/null +++ b/stable/sonarr/5.0.2/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/stable/sonarr/5.0.2/questions.yaml new file mode 100644 index 0000000000..cec99e6325 --- /dev/null +++ b/stable/sonarr/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/sonarr/5.0.2/templates/common.yaml b/stable/sonarr/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/sonarr/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sonarr/5.0.2/test_values.yaml b/stable/sonarr/5.0.2/test_values.yaml new file mode 100644 index 0000000000..41f7eb4bc9 --- /dev/null +++ b/stable/sonarr/5.0.2/test_values.yaml @@ -0,0 +1,51 @@ +# Default values for Sonarr. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/sonarr/5.0.2/values.yaml b/stable/sonarr/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/syncthing/5.1.2/CONFIG.md b/stable/syncthing/5.1.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/syncthing/5.1.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.1.2/Chart.lock b/stable/syncthing/5.1.2/Chart.lock new file mode 100644 index 0000000000..eae5426029 --- /dev/null +++ b/stable/syncthing/5.1.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:22.750266844Z" diff --git a/stable/syncthing/5.1.2/Chart.yaml b/stable/syncthing/5.1.2/Chart.yaml new file mode 100644 index 0000000000..db3b2c8c1a --- /dev/null +++ b/stable/syncthing/5.1.2/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: P2P file synchronization application +home: https://github.com/truecharts/apps/tree/master/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: 5.1.2 diff --git a/stable/syncthing/5.1.2/README.md b/stable/syncthing/5.1.2/README.md new file mode 100644 index 0000000000..fdc91d9c28 --- /dev/null +++ b/stable/syncthing/5.1.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.1.2/app-readme.md b/stable/syncthing/5.1.2/app-readme.md new file mode 100644 index 0000000000..7eaa0780e0 --- /dev/null +++ b/stable/syncthing/5.1.2/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/5.1.2/charts/common-5.0.2.tgz b/stable/syncthing/5.1.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/syncthing/5.1.2/ix_values.yaml b/stable/syncthing/5.1.2/ix_values.yaml new file mode 100644 index 0000000000..7e23af4fd5 --- /dev/null +++ b/stable/syncthing/5.1.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.16" + +## +# 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/5.1.2/questions.yaml b/stable/syncthing/5.1.2/questions.yaml new file mode 100644 index 0000000000..fec91cd9c5 --- /dev/null +++ b/stable/syncthing/5.1.2/questions.yaml @@ -0,0 +1,686 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/syncthing" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/syncthing/5.1.2/templates/common.yaml b/stable/syncthing/5.1.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/syncthing/5.1.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/5.1.2/test_values.yaml b/stable/syncthing/5.1.2/test_values.yaml new file mode 100644 index 0000000000..832d9dfe8d --- /dev/null +++ b/stable/syncthing/5.1.2/test_values.yaml @@ -0,0 +1,41 @@ +# Default values for Syncthing. + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.16" + +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 + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + mountPath: "/var/syncthing/" diff --git a/stable/syncthing/5.1.2/values.yaml b/stable/syncthing/5.1.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/tautulli/5.0.2/CONFIG.md b/stable/tautulli/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/tautulli/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/tautulli/5.0.2/Chart.lock new file mode 100644 index 0000000000..8e9dfe8eb4 --- /dev/null +++ b/stable/tautulli/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:23.171996497Z" diff --git a/stable/tautulli/5.0.2/Chart.yaml b/stable/tautulli/5.0.2/Chart.yaml new file mode 100644 index 0000000000..bb4dbb1293 --- /dev/null +++ b/stable/tautulli/5.0.2/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: A Python based monitoring and tracking tool for Plex Media Server +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/tautulli +- https://github.com/k8s-at-home/charts/tree/master/charts/tautulli +- https://github.com/Tautulli/Tautulli +- https://hub.docker.com/r/tautulli/tautulli +type: application +upstream_version: 7.0.1 +version: 5.0.2 diff --git a/stable/tautulli/5.0.2/README.md b/stable/tautulli/5.0.2/README.md new file mode 100644 index 0000000000..6fcf22415e --- /dev/null +++ b/stable/tautulli/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/tautulli/5.0.2/app-readme.md new file mode 100644 index 0000000000..4286929041 --- /dev/null +++ b/stable/tautulli/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/tautulli/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/tautulli/5.0.2/ix_values.yaml b/stable/tautulli/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..cc4f3b0070 --- /dev/null +++ b/stable/tautulli/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/stable/tautulli/5.0.2/questions.yaml new file mode 100644 index 0000000000..c815db7a94 --- /dev/null +++ b/stable/tautulli/5.0.2/questions.yaml @@ -0,0 +1,418 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/tautulli/5.0.2/templates/common.yaml b/stable/tautulli/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/tautulli/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tautulli/5.0.2/test_values.yaml b/stable/tautulli/5.0.2/test_values.yaml new file mode 100644 index 0000000000..e6708c206c --- /dev/null +++ b/stable/tautulli/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Tautulli. + +image: + repository: ghcr.io/truecharts/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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/tautulli/5.0.2/values.yaml b/stable/tautulli/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/traefik/4.0.1/Chart.lock b/stable/traefik/4.0.1/Chart.lock index 2cc3c972e9..bc4da38658 100644 --- a/stable/traefik/4.0.1/Chart.lock +++ b/stable/traefik/4.0.1/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://helm.traefik.io/traefik version: 9.19.1 digest: sha256:6837d576d0a80cb63dcd82a8dd3a2e7e5ea10f710b1ef1d5c29ce3af4eb3fbfe -generated: "2021-05-24T22:56:14.082985091Z" +generated: "2021-05-25T10:47:24.055796747Z" diff --git a/stable/transmission/5.0.2/CONFIG.md b/stable/transmission/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/transmission/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/transmission/5.0.2/Chart.lock new file mode 100644 index 0000000000..f0904aaf2a --- /dev/null +++ b/stable/transmission/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:25.575287441Z" diff --git a/stable/transmission/5.0.2/Chart.yaml b/stable/transmission/5.0.2/Chart.yaml new file mode 100644 index 0000000000..c3c07c5e06 --- /dev/null +++ b/stable/transmission/5.0.2/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/stable/transmission +- https://github.com/transmission/transmission +- https://hub.docker.com/r/linuxserver/transmission +type: application +version: 5.0.2 diff --git a/stable/transmission/5.0.2/README.md b/stable/transmission/5.0.2/README.md new file mode 100644 index 0000000000..2baf31e54c --- /dev/null +++ b/stable/transmission/5.0.2/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/transmission/5.0.2/app-readme.md new file mode 100644 index 0000000000..7e8f54afb7 --- /dev/null +++ b/stable/transmission/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/transmission/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 zcmV)aK&rnViwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT3$Fb>bZ)u+HH>8ahvqU1~LR?qQykH=11pGh3A$Vs0w zovs)rAqh1_a(I!WI(a|)Z{bP+1V~C&oOCL#uErvPjg1Xp->|Xa$Fo@+^-rfT&AkPj zg@0N9GZ+j8hX)7r-@#yD{<}LkI{eG-!Qk2cVDD)E+1_6UyL$(RhkpTsPk>A1DY6`< ze;GWuEwgifkOwCCElM*SM?)~*>%b(DKchH8od9Kiij$na`Jsq>@)rp4O$yTm7{@8N zN()4%Pu7{nGc*L#JWsM=zdynGw7Bv7c-GI;0{OH|A0|oG&r^i@GnnNl?Xwx!!9Hn0 z)V;gA^CodT2@$Q2XK;eD{!I#_07sKP`xM5LxWD^e`Ss3^!#I7nceMBZ`@JCXl4#Po zMT@&Q4YFaU2TD9TJ<*9CebMOwj>v6sgCq^U`LE+$Z}-p}^akH_W)Md?#1Tp9Y2opG!8?QR=|{> z0O3X+{r(n)H~=w~Oc{VFX(0*Y#SBIH4hSHc#ZiWG5T_u^VUET{n4!D_0ApxnVZG~7 zoI?gOj%ed$!M*~gFB|9pwbl^ae^dd6@CJp;z+x3tFc-z_2Bn1b0m^WS0+7T3ktZoi zLhQqA2zF~IRwR=Y1_)$%3Uf4B(4s%YDL9kJWIJF^smZtiCFX17rwHZJc;5IfqaTH@=f4R zW=E=mATN~emozq7n!)#=h~OOJ5Z;7{)>3{i112ld2?Id?GO8*=Yt&6(nu{d>%3pHA zzh)y!fTU=SiKGQnoaJ%403n{?oQ^vC@DqFgg1jDr{Z5DKND>tNMW#rcVN#CG7yiR2 zl|!Pj5pNjLraO(%ctCI2BTmr+m=j&4=tUIRBh_;LPPM& zuNDw6on$qY$!A)#Q@37|IOrsCaAK@UR_7!L00ck9DgK>+4Z&p`fRiGRGarU1?K}bh zE!yq%z<&lfBU2;zuMXs8a72lOBKm#^#xTqfC0;r~`H+yWoH?9D&T#ZvE>-Y^uGSfR zufH1%B$U(3H*azr;@>Iymnij7l#{U~1-~oHy+pG(UDOusWGJ0uAD#GqTts=vSrg>r zF-94DOO!F$Sx%EyUJtZ^F8 zcXAky+xQPM`D{|bQa%5cQ6gW$>lkzJVHp? zg~Z@ZBb1}e!*M@|{j8tE>^AG;=r`o&y#VI02NTMz$dLDyxzZDJrH9@pafW(H9Q24q zoX%KT(#y95H9EYauNSY*p1->|dHI}iBml-3g~4ky7QgwMOPEiGbai=A93Vo4PDjiY zE<}ig7~{!Hn9%yHwy=fCm);B}J<5woX|^ybMcHdvtOrhuERSa(NpYOwd;$CrW=uK- zcsxcaStvQ-Jaoz2EEw1Frzj|hBoXyaNwo{w1b70nMV6ykkMyPIr#Qzx425V4!}u-} zoP=;I2z-Wvgi3Mk$e$7{yt^fX+Y4YcL1|oMy%G@@bo8DKD9*t&&Zwj!(>}-1q$6Gk zG5_-vMVx_>PZub^i_=>$gSUw2KZtQaqBBJqQxFJSx;_nyEJx`NIL&ghWPW0GuR975 zDM@HUXN(n6uGUqncL5%2ZR3npq)fBxXvtQKNC>YZ5v9~qs|(GB@-`TPvx||SOSZ%3 zQ;`Z;5(ROdaYhJcZ~;=3#o-)*C=28GwnzZZGO{Y;2xRdLfxpY8MxYi+MsYc%U>Q#W zKxM4t5!{V7Cix@haNS)Yw4PH2-RCL`MURU=f?Pbdb9g$Txvb3y!~Nx#6perVb*qLs z_;KW;B+vSyUN2$<#?gd)j0n?E_(j&^1^Z8!)WXrEmrs#+z1?BLWyF5Iz|n2SoLjtW zr=0ApS0m&XbVZ)VQI6i{Qe(VinxFX2KP%c_OE@zk4@FA?cndH^E0Q2=lx_dyG#pI5t%cO}!RCyobIf_u0^-=@_O#jMqnC3;&OGxusf7{UI ziNL!-VSLwN1*9tcf`bBy1#eQu4g~;#gJS)$HOOa!3bw;^9BwqwsjZoeLfgD1pRNht zB0TjDXH)W)b8Yf21@T=ZfnQ44Oj4Bgh@w@K+Dw{?G0#->)wH)X*d7OUKITk5L_X15 zuSI(l-yMcOYhxORK_(z_kB?C5t*~A61r&2eT|gHHhT$0s;bMgRI0~{M*yA4)lw!K@ z+3Vc_f1l$Sii^BbehhI~r08mzqKx1>1kXC94IV(e(u9z6(LN*O=T9;vB=k=)Cv@Oz zo)mWAU)Zb|G48VToZwu^J|i*}=$hvPhy5vLg9>`hbHN7s0W)F0VZ@(20apaE8G=y; zh%O8>0Kp8t$FpKakb3s*{@{4`*?`ywq%Ng3K@t=RxM4;*&gs<2?9=XOA-0z>Mz!ck>1XMkEo8T(u5gJn*abzc(ufz4{V!GLE3P2u<1D!Bf^#Ptq{VrGZu zzUO({%DkiA5~ADBn7bH8U{`?IQLGf|kBOsjQGTYiV0w#)ZX-}&p!tsq)|$hTnN7ub zjNdcxI0F=KHgq`C2w`k^7^}NOz9>T zLK_o2q@3K16P(nOB`q_&VU|-`G)!>?&Wf{~QQSGj9n)MB4HQH~cc98TaheZ}vX`V> zlE!)L$DyZu8x;wKp}0V=f4aK5yxw8|j>sQZrNl^qwI+q|l8nNxP|BnAGh~yK0DE<`U9Y zG3_<;B2E!d%whV)(?|EZ1bt0LEaU$9fJ;tg7$lFuk=*K|=8-B+ag^l<1|S|Q?U2&f z32lOohDS!2JDLfF0>1Qwn>u4dr?N9D!Asmrtj+l#h)20(9H2`%2c%eg5yRkbFocnh zQaVZ(qMXVIGnG;gbxue>1c6MwaHNCfN)wn4t%4axlN4oH8_8T2eVAzGaNMGq7g$0x z^BTHnmisxiT#HwIsBGq7TwF`E^2uehByOE>UZ12DlUSd$0txC~9)f6sqxX)Yd6@N} zPj{+F$Ge|Ib_->M<3-)qZRqy|yk@{N)yYYt=f0-}RDjZP-KG5%J$Yg*xM`f_9I*_UTdQO#1kR8x;~w8H@xs`LVaaq%q!O4Z8NPBM+HllQktbkJ$9pW=${W_8-HD?MTZlW2y!~@Z+2F z(n7vU3v_WZ0;AKD7teu@(j1S8h9GQnGCn>G(J4xE%^#po|0iOm*(R|~iX~*eWI5dh zh{IymN}T0rwz?=|-jZ*~H@6^@X!&If3*Qd{$~TIu=6<33-I-VGg<%z12*(O>>c!;G zRJ`Ren6VgzDdN?Ha;EP9ut`PBvW-pd(OzAIvDTat49${!afZ`jM_GSjaz^rViL}rf z0j!e3lR&r{2HNRid7Q!t>hsCge?nUga4OU;Cv``xCODNluUy|9mAM6B|)H6M!T2GmJdi3UKY<#KBfDt zVTKsU37(?}aC)##RqGcKRpU_rwiGnBX&55|9Tj0nR4xq?>)k;Xfs>*lV>9PH&T<0W4=bb=#;>q zjW6ON?NN{l4sW=!>BrG;;`{-Pc(~R8Tzg7X69idt(<8EjOlq;7q<9G|Galy|NaL7E z^Q^dGD-=ATL)puU8!CxPv`*+&=F3|HCrq7Yif+s$0HGp};hDt&lIy!Px^B2P zmk$vey8xws?SSQtA-)Jp4101tGAw!oi;S&FD7!WUuMrG>PH~Q2MZUT?uZU60*j_xA zIEr2nMH6ME>FA_QhJQyxu=^vHpqU05Q;Ems9ATbp5Ay9PD3Uk=*Ha>^i--0v;% z>J}&RmBLN3DNIo?tV-u910IABq);=*{y*n@CUj*WIt~1;jOzB7Ygmaiz9zjAk&sb<=Qt=}NF?4ZLkK~i zGQ%83KJq#YW6C*2j9(@rs@Pm0L)0+_t}kDzOrooCi7x$KuIv)x4fJn|qykfUEvG_0 zMI-k260Pmg)=a79PZ3Od{9TV4+MLuEg!3|fOsMR~QI@9=NBOdWFf7^%N0T0!GiA6B zvkXrn8o?070qQ>?|7UH*>2`dRXwIDxbXSBTMRgPLfq2cw_| zqa63do9&MH%M!GbQ?&9paf4ieJqAwN7AWlLIGbDqLdDt9^@)WbT zeU$rsX7u&I3?>QDP0lZcw}2HAac^shgMvZO;|TQfn9>^MevjhNBg>io*@F!8{&q*{ zhg^p^8G`Qa_j}&%;dkDyw>ucH*)B0-QAt1z3*rqo)ob&fA%b)6XQUgi zWU~7>E;0t&pT^iP)vF>ysmC^KVVK1LM}*%|C+n0jwTv0C8AywWh(aacjmOA_IM3KsIA;QLBx?thnDVoJ|ete=x!v(lWAtlc^M=AKGB=C=l;IOwk;9pvc^0ZhF#G6NW=^I+W!{3MCpVFRmMIHxtmgK zC`W;cD*G0QK=N<<3Md@;VG)!qaZG3+b{BZyBi#q#jsC5`>?DrTp;~Ck+}DBNG4S4s zCe%|{9#_*DEITy41_#WF5&_%OnnC}PEg2>P=$5C^x}c^#wU`G!fCxtck!%CeF7;zI zHYN_T*0)ubTD>X7^yz}S*0h2(?I|F}5QktZNpX~qLH8mi_BA`xYNE0Ab++AgA-U}s zvkHpTBte-sO`ruudmTPOT9@bBA*8&uf-zs|wnaHXEzOe>HfVZ>-Tn2FIL%?`M95K# z*^MZj;VdK8fUUlYz~|<#U;0y(|8jY*O$%ts|8ulw%KvBkM;rP7C=ZqY)TWXf(}cAk zYLOA~cM}$fvO=j9$TRvNzWELLIgby3X?aqZSX(kaN!20Ta$lDnyLksNW@Ot(+S+)+nTqPWq^fWiy<+Cxj%iOP`8f0 zo~Zl6LheHbUQA66UKw-iQ0T}1%WBA?72LOHIJfL&32{n%021^-&Bn~VT zQZQV0{ag6IR0Y>102=uJ{_g%Wlm9!FByI!BCblbd)^it$V;%SR3R*2@l$P^IpICwh=wEd`-HKD-(R@X~Q}P~35?GQd z={PBs%JygQ{Tn5T5*_^Vt3`OK5E(WqtP#zp)C|RVp;LRKjQl~Bk;-w_-MDhB3VwVf_+ zqgN3UTBkH{p!OgN~fM!=+CuBy$YXIjR> zs~>r{RALa2TRKtimA;h?>b()_153{cut z+OgqNAwNoU>5+e0nMJJ?C*_CoXNR+hyhx);ps#r}jB$-7_E66Ha>YO8OZHqc2VxZv z%B;W@ddsnea%?I{uvy`05Y^3%%6{C_6lKJa86Jafw+-&qHVy14ubIN^?`Tn0>`*p3RoNmW$Y&j^rr~$FFQaSGu-nA>|{!pf9h`k-_9Z~ z=n+%GE((!6b&Nv<(0d;xISXf=B_W29kID?H9E8{TUk)I?p~3zT_;IojGKQA|FlQ>o zG|v-$MFgZ+dT~1GhpbfAe{p{L{9^RHx91Hyoi|ZPxTUJZ@}u}SAp#-1191xABt?h@ zB;p9%r8vjYWCvvNIKP7_>I68;Q+!k88i52>>{yX35Jvz;pnEa`=c6w8+sWvBwA1IZOg@xS2j=ND%?0AZSu7rjrI zNKFAIq(gz%86l)KE?lxaUw{un7)=T|L0}TkQA*D}CFN#05hWcOM994nmF{?*&h_Z> z?Em%n@7_5v?C}_*bjarfA?$UB`Hblp(gw>`{v=i1CZ-bgeTXCuYXW!M+THB^c@l+v%VxAFdRr*G?l1h2c zsev0hUbQ7tm#1S@LyNX5z0y+G(r#O`iq5>JT9k`9DmD6hJ^!!De`ZLmQw3;{|AS`( z^ZuuUqrvV*{y)aU_y1@*)KrFaa4ybw^V~d97@d~=I=NNH0DqosI=0pFDuMqhP^aRW z=V5LiKX!=xjwWXuJ%<;5&sbRh7LIP)`e(Vb9?k!|cd%=&|7U||oBQ7$<*BG&B3)ap z!d1r+cwB0o16U?5Z0Y|MNkSC8NxU+YA~AU#jvoG5Q7{A?oBvlmIj<=f#_bl=ty1SB z)|zeaBNm-$>m$~C*XSc&%|$E+SZ}VaE>l)t)&<#Va6x9;#BG|ObuP$}n4V1@$eMX+ zYU>RXv*Ll2ID8@pq=I^-$vXd|sHgfL4U&F7|D)`|#{Jm#ams&w@yO`8qowTt{kT%SJ)o9d#xBrXxmZ&mpT#WDPHU|(;_eHy7%c0*JTSE; z8=ztRKifY%F!leV&Hc}h^KAV88~^|3_x~>!fUev&y4DDE?WkyD2)csBCIhz?mv8nr8G1~MbX^Zk9PUdTmT zmKNy{>36bX=ciYIMkITGC7EyKT8k-B_) zYDJ0`wqPUNTC|Ls(Nrm8<|k#VWK3B}x7V#!CJd|FrBjq;WDw(`wNPSHnap+JjbEVc z^(8zN`;R+n`|rwIvM=MHyd!%Bo3LsBXaC4J|GBq&c(k$q9_6W3zoDUgPs@wblQ;lS zP71dgUS7Q2Rtwj%q4ZS!N-%llGWLo;oho(H1k!}a!{ZiGS*yuzG-+SiW+jx^_2+vx zD2KvgaI7f1^&mU(Fe5<-G1}A>?H#{n833DYL*6rNohnT!!mk!dsn{sE+XjkJ7JQIe zwn}RXK)Wa30YxdJfZF8%)JyeU0Ln57fPD@C*IaUUbU|(^ zA%0TGH>`n^IU-_DX{3R=O&D3EV{H##()@ty>?F%L_|Sf~z{|R;xY_QhJZ|~FzH@+0 z{@>kQ)Bk(;Y;S)f{~zO7O8&zzteg*AhvThseoWb^oHo*1J+9fbw`_H5yXX_zDPAc7lwSJAAsP*N>`J-{TqB%>6)Rieu_|*ujs{Q}MRPAs54vZTWme&A zl+*14OC=vB@CJuC$L0L+L$os=hp zT2Ebmm&$ogf_w?na#B{kw(9=gaz55PB}*yAkHxZJ_%43$qcrc@TiP}}j68v-r(C<` zLWXu$DJQ$_@>#m##Q;l?Kh(pW<`zQt_`PqUb$VZhh1_(bQIfuLyIa|c$1a6a#z~Ji zq)}Ez{GBY5aPFsaL(0!=Cx0nT^$0U-gXLxhj~^3^(t?GGhf=SCj>c>)$QiCULT7f7 zouD(lqr^I`)tM|;z45)g%I^NY+^S*M+I1Ol^4SKqf*GJ!QJ^R=Z>VcR!g*<)%5#m_ zRIL;A?mF`=;CH*S>Xf{dx{6!Wj?qPP`}_mF;alx9aW`Gs6mDQvI+Ey&rg-Ux@Dq;ZirkSD5iO$S(2(Ssjp57@ibUC=;`vmeRN z3Y4ZU7=x;Z-rFMB*%e-jZSR;Cx=lfA$z22fGeg>Zt{kz5m^rPhRJ?9Qp)%t64Xo6< zEl%57%*7j+`_nQE>3`xIyXhx&{HzCyJnkjxx{~YUp*CT~;_FUPIP1LXU(0My6&#go>DV4zV~>cnK#K93>nuvQxYAAlbe43ODwWs#%0jDep*5*i zCeuAT(svTx!9_-v_ZX$xWttJ;?RZ>XX^L|7bR1|-aZshMCDDPqkTuH@21D)V@ z6W5NUglYR4rv`%TZcO84hJQy&Fr#?P+eJ&r%ok?^Y;;Io#mV!kcH3CUjusqPvMU&Q z+~yMP*v(qmXLirr3J~PIp%ov39v0OV1!?d)jr^tkm9LGqY66b_kQ)b1e5%paV@5sOH z${hDKP(e}f|#@2 zpRTShyR_5wWky|d_UMz}+)WYhR~;c8y1=h?P*haZ%Ia81_zgoW*QK(-Xtts-gOz3- zZN5#<#8R|WU!pm>gfxP&m1ZkufbI2q9sAMZ(>NOA$xE16JR%HW>Fls=yF2|H0+gUP z-#yW$mE2Qg6w-FN5`D)-|0az?+F9*ek%pBW+hM=|^?dmCobK036j-AS{8LU`1(bb4 z{4rG2&GQML8vTE5d0?CL|J`T%=K1f#gH8P3qdc4Q-<$K_U+(#DTL5Z(e%N(}qsol0 z_x4~?HFs;TG=}S=N$>5kq$Vujj3(86Oq#ptX)^bh+x@&>OYrG^nXQSQ6SkG?_PX18 z&jhm7I92hbwn>u+e5;IUg4Ri5DvkDtNzu64vpAKwWVbjeBEF-wWF({#WvGMUWRcrl z;`l_l*L90fQng*$#AG%FVb(>|l^cUgZ3~J`w91*;zh-$C|@jIUC!2Dz;kFI2bERk4{fsJn#MEhmpM&HLt4So?QUC_``Xd z1>S2EBA6lXg583`PuD8va4iiuj^b`Cj6crf*8kU+2ev`~KRnvEod4P6e|wZ?qyKO8 z|38-gZzd>Sr^c^kFLr4CYW)2}G=5vA*w)%ULr#hO{v0a5)_zrsSHC(TnHEeo_h}UW z@VGoxLw=WMwY$pb*meQur33llyMOGD?QL5io|)0oVNa-JcxbeppDLOIGj9QOs;=@L(~%%37cC%SiG zJD1gL+N^ZEY%5NAMk_wux~E~0~4cC8h#=_Zu4ylcF-116iuUw(8fLcQl>t$}qxU&VBN$$# za6HC73zK9et)H~UYAV;Ysp2@IX5MQUO+=0-*VmzIeYl`Gr&3QJs;0qkbt6MmAfJrK zIKnyaxA9UVm$gDYP_`Ln1`Q@?)MJwG-iklE;(~CHN zjbN}i2?BlxA=_PZeATF14?=64%8Q{jrMf)Gr%50UW%5c7uIL$igPwXMi)Fjek8645 zOEsB_8mFnXX50JLHsWh{;2m4<)~{Emm&&$$xm9{~dfBl>YZ#lUjT`lK5VSVR3Z)db z&}Xa6YbaQ)jBnWH*I02$kf3`u z^~)ud*-iJp2ubg0lHR=XMHBW-_r0)&m%i+U*$M-&6{1LoRhvcSbR9cdk|yK08kQ16-HD#B;JWQHOB?{dRTMgE8QrthOP z@4qAeXP5VR3pjhgCP0(?AMBg=KOgNMZtj14l*h(2QJTw}9aU$e%+b=?*C@{iXr52f zz)x{VM2{9fAl#^~!qh!ED#kS7hqh7`+>Y((ZMs?^R})^@LYeW#Sy;_~V{;6&Lr%wR zwN^D3v26do)rD>)XqoALTX*sfq07+br4fLhdF8s^8OEZW^MDV?`e?#>q!6EB>(q!pPBc+9`0@8e;?-& z=2wc*9MR*@eRdWbj{%tg#Hxh3F!IKDQluzw+gk>oR`wfP$TQ2P>lWd-vm(pS5K2zt zWTBj#DVw0geEEe_DRcYUx(acw2yke5r>O$TP57J77!hh??Z{6tXGW%XZ_sQF}Q~ z;~AL46w_`Jt*^Fc4Ly3wQKFM$b;L^}r=B*lIjwy&#Gz$fb%(lwv0Rm6&e7_gO35lu zmKs5{T1N6WK{cm@Fue$#;INIockMYpU?oYxnz5{0MQQ~o@_>_h+EP{DmY`IRu-L8kPSr|EyPjxY@HPdI5jJKBKA>zNz$8iI zB*lbzm2Ls*;Wo3^FV!nG0e9Ic7M<9QP<|Juw>X-3x8G4ez1diqHkjsd-DrfZEGG>LUOMgFZMMwYYo7R!;NOl#gVk_WWwl9tbW zyPkqPK%~spw2?6DdFuE-4>@?S2cU`n532V6v%SszUyt%IcEH1=S-5C6g((UE^wYQn zrxdPHviQXDH9CLlZjd71`6UKUZ>uHLMP)M{-A?vSl0@+Lj~_cQNsNHgxpK=wwMyma z7T?*d!kNJcPEgRhVV+lcTxwM2+OD$M5%0l6C|e;z&x&8et;5QFW!1X$6k_Bfy=THP zzTvL_&QBfxXH)0X-~Ti?s+|AYKic?zALZG^e{JHwK70HZc>X?tQBaBhVj1LJ@==v+ zHXD-)dn(1Y z#i@OEF(PHj=#!bT?RCz_AZ2o$0pa$}LtVu%h&^=9iGGf#OHSC2dEf}?weC}UY z4(zv$dXsiEo6@XWyNM0>#8zeuS+iWhCbNak8a@SCDXPLYEMRU77!DPsqsl_&f0yce zijole2z38X7j)lsmtU@;S0?M>di{y-(@gz&Oa)tgPcp5}g|QfvG^u()j~!gqMo-Mz ziYKKKXSMBus>}%M#RZq7ae~rt0ena%g_tCQuge>R>EWrS31Zwg zYH>qqe1fFYX2QHC6F>DLij8f=!s9F2>R0=7XO z@d7s3y_#^}96&IKAr64q=GNEQcGrc`_Qu!tZ~xTUf8zZ0C-(mh4)=~K{=dVG|L;*A z%D7*mbizbn82d2f!kh1d3&ou0QefY>%y2ue2 zrIspN@eE7FPhe(dA)ArD2W9P9k>!*gL;)nmATqI1o6|ta$Pf>7%OG2Ujn>i^!&>d@ zU&?|0J9*R1r@Q~{=y2D(|80MNv;X@j&po@%3e!op4(!&4TV`Al#}7wqFIP$!ptTa>G4dC_xZYL%ToQ5z02Iw>rTg-{ z+bvq`@PI2dZ4ip)%H0UcN_fiSr`Ryldh*I#4#vDQSL8G$0sv58KY`P~)k4$(&`( zvAUoQ_8EwAoRVS3X&e#TQN|c{>!!PX9-?TjRuY3qhLD9H+C4!}Z;cOfz@N_bFUpd} zG)~#P&P(-_m3Jc9y2tZzg=E;`F_^(by43+xJd+|m)ff?d%Bn-i2IOhAxPtr)CIYVF z9y1S)@d7M+Q&;V#K`D`=!?Qyawz>^0Sr`Urg zXx?UGyWWH*v#?Ne+k|Ej0#CKYXCbD>sp_yRmn9!`1M+>li&SjBVie6OcT)sOia3Me z--dd^T(hQzMQd?p@$HojlX=d5zeeMdoi3{cHB!Qiwknk{dd{1jTgy{CQ@XQf$i`~S zRtZJDq_G6X=T7wo$NPJQXx<7)r|}JHz`Fl!2Qa%elN(GICnG>};(`f^PzrMtfFCd4 z0340ua??=^l*|)MS6>H+I|}dl>23Z|4zCf17#i_T2#H(qy%&fr~#06jHIEupB?SeA|UUlIoo^#C=U|JvU*?|(Sj-Nb)A&cp1#4zd4|IAG=+ z&WW|;w*S0ND+4fzgK7#))tn-x7CWI!r?mO5RvX`|O!DgPOAU{;ZPj=VYr%4JHEpiF zQBp+Hhl(NAU`qK@6ciy!1uX4FdpOfL%P&}HE-9h>Tn>g%@WkJ> zwH1LHL|JKa%O9F?t`*UBI7crOI6R@_4>-;8pK(6@iIp@?^E)au_B@EPG7+ErvE*!F znMe4R|#W?J{FpB>1Mr7c}DY|UwJmPAXx1iL|~8}1+nWZh8_1e6uQP)AxKnS@|V zV7g7MtwzW>)LLQUGY^vK_#a zBq3~tzhkv~%lau;R1A7gYWGtlV=aXbjRBXW6*=QrKX{^9rO&i8Pi0nFlTP~nisF7# zysK*R*sY4Qzx=3JuzD=Xt0HAPz!?Z)c4c~zQ0kEO0^TJWmMVdHU`v(&UuQeYC&0o_ zSm>O!c~owua1}u2TeWAxRTAh53h7y8@AU+@uH3iIw6~6ow`ML{-Pxz*y0svrPajJ) z1*j(Z9(wS)ng3H~%%{x%x_@Bq|Lz_gZt}lA&a;XC-^Bla*7$!GG=E9C3{Qhi=2;j| zu-{Ja;NIe%aVdy6na7i6nCeEw2$VTuMRr(ky8=^OG}6^l8<{PtDv(l-C+{#WR)5ev zB}#f$%RzEmkIJh}bUd~#*;N$XgA)0ID_!Jo?H)`vc&c<|g(^B6`P%I&7TrMAp~_ak z$B%SI=vOB)n0}Gv@yv{pXWz&=ux*;{xi)EdoWD=a{yk{u{TYpK55|NPtnd(BUy{-3_Qe zBmc|Z?%>(x{O6-Q)I?=>V(#pUg`nDnlD9o(5p%Cdu{-bPB`?{<*fS(S`SXYu5 zM|nn6Ci)Wuh{zqHP^QSw!v#Cohd@R|VnQ0lRL_!wLk(h~BpJSuU^Y|f%wV(8QQQZl zm?oy#ZM5{Y>OzoFLfRMQ>Saz^)(q`VPrrA?7(4=o6)vf%wCx^)%GVMJ-THOzD3$vP zZXRY%d zXE}~0R8ERQG}+-DTx1|g(HNxwMnEr!$LvO7oY9RVE@&j+{B0?GnRmh`f69=WW)zgu zx=xH{NxnG4DTvVf+<_4lQ?lUjSV=RjcuZ7eL|J2_&05HHZ;=FYtR~|tC50>F0BJ|o zHMU{w2+UA`i<#qNhJQyd@C=IpU;f^R@T~>R5of=Kpv!}ix~>r48i)oq0LT}$aCKjl z>;t%WZwhJC=2bpL=^f4xU=xQcNyNUQ8i+bklDRK#ZfQ&@@N~Oo7CG~6h#+%%F{G

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/transmission/5.0.2/ix_values.yaml b/stable/transmission/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..b2df0adc6e --- /dev/null +++ b/stable/transmission/5.0.2/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/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/5.0.2/questions.yaml b/stable/transmission/5.0.2/questions.yaml new file mode 100644 index 0000000000..3631a0649a --- /dev/null +++ b/stable/transmission/5.0.2/questions.yaml @@ -0,0 +1,750 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: transmissionConfig + group: "Configuration" + label: "Transmission Settings" + schema: + type: dict + attrs: + - variable: alt-speed-down + label: "alt-speed-down" + schema: + type: int + default: 50 + - variable: alt-speed-enabled + label: "alt-speed-enabled" + schema: + type: boolean + default: false + - variable: alt-speed-time-begin + label: "alt-speed-time-begin" + schema: + type: int + default: 540 + - variable: alt-speed-time-day + label: "alt-speed-time-day" + schema: + type: int + default: 127 + - variable: alt-speed-time-enabled + label: "alt-speed-time-enabled" + schema: + type: boolean + default: false + - variable: alt-speed-time-end + label: "alt-speed-time-end" + schema: + type: int + default: 1020 + - variable: alt-speed-up + label: "alt-speed-up" + schema: + type: int + default: 50 + - variable: blocklist-enabled + label: "blocklist-enabled" + schema: + type: boolean + default: true + - variable: blocklist-url + label: "blocklist-url" + schema: + type: string + default: "http://john.bitsurge.net/public/biglist.p2p.gz" + - variable: download-dir + label: "download-dir" + schema: + type: string + default: "/downloads/complete" + - variable: download-queue-enabled + label: "download-queue-enabled" + schema: + type: boolean + default: true + - variable: download-queue-size + label: "download-queue-size" + schema: + type: int + default: 5 + - variable: encryption + label: "encryption" + schema: + type: int + default: 1 + - variable: idle-seeding-limit + label: "idle-seeding-limit" + schema: + type: int + default: 30 + - variable: idle-seeding-limit-enabled + label: "idle-seeding-limit-enabled" + schema: + type: boolean + default: false + - variable: incomplete-dir + label: "incomplete-dir" + schema: + type: string + default: "/downloads/incomplete" + - variable: incomplete-dir-enabled + label: "incomplete-dir-enabled" + schema: + type: boolean + default: true + - variable: peer-limit-global + label: "peer-limit-global" + schema: + type: int + default: 200 + - variable: peer-limit-per-torrent + label: "peer-limit-per-torrent" + schema: + type: int + default: 50 + - variable: queue-stalled-enabled + label: "queue-stalled-enabled" + schema: + type: boolean + default: true + - variable: queue-stalled-minutes + label: "queue-stalled-minutes" + schema: + type: int + default: 30 + - variable: ratio-limit + label: "ratio-limit" + schema: + type: int + default: 2 + - variable: ratio-limit-enabled + label: "ratio-limit-enabled" + schema: + type: boolean + default: false + - variable: scrape-paused-torrents-enabled + label: "scrape-paused-torrents-enabled" + schema: + type: boolean + default: true + - variable: script-torrent-done-enabled + label: "script-torrent-done-enabled" + schema: + type: boolean + default: false + - variable: script-torrent-done-filename + label: "script-torrent-done-filename" + schema: + type: string + default: "" + - variable: seed-queue-enabled + label: "seed-queue-enabled" + schema: + type: boolean + default: false + - variable: seed-queue-size + label: "seed-queue-size" + schema: + type: int + default: 10 + - variable: speed-limit-down + label: "speed-limit-down" + schema: + type: int + default: 100 + - variable: speed-limit-down-enabled + label: "speed-limit-down-enabled" + schema: + type: boolean + default: false + - variable: speed-limit-up + label: "speed-limit-up" + schema: + type: int + default: 100 + - variable: speed-limit-up-enabled + label: "speed-limit-up-enabled" + schema: + type: boolean + default: false + - variable: start-added-torrents + label: "start-added-torrents" + schema: + type: boolean + default: true + - variable: trash-original-torrent-files + label: "trash-original-torrent-files" + schema: + type: boolean + default: false + - variable: upload-slots-per-torrent + label: "upload-slots-per-torrent" + schema: + type: int + default: 14 + - variable: env + group: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/transmission/5.0.2/templates/_configmap.tpl b/stable/transmission/5.0.2/templates/_configmap.tpl new file mode 100644 index 0000000000..c12a54c92f --- /dev/null +++ b/stable/transmission/5.0.2/templates/_configmap.tpl @@ -0,0 +1,14 @@ +{{/* Define the configmap */}} +{{- define "transmission.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + settings.json: | + {{- $dict := merge .Values.transmissionConfig .Values.transmissionFixedConfig }} + {{- $dict | mustToPrettyJson | nindent 4 }} +{{- end -}} diff --git a/stable/transmission/5.0.2/templates/common.yaml b/stable/transmission/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..c43b236c17 --- /dev/null +++ b/stable/transmission/5.0.2/templates/common.yaml @@ -0,0 +1,35 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Append the configMap to the additionalVolumes */}} +{{- define "transmission.configmap.volume" -}} +name: transmission-settings +configMap: + name: {{ template "common.names.fullname" . }}-config +{{- end -}} + +{{- $volume := include "transmission.configmap.volume" . | fromYaml -}} +{{- if $volume -}} + {{- $additionalVolumes := append .Values.additionalVolumes $volume }} + {{- $_ := set .Values "additionalVolumes" (deepCopy $additionalVolumes) -}} +{{- end -}} + +{{/* Append the configMap volume to the additionalVolumeMounts */}} +{{- define "transmission.configmap.volumeMount" -}} +name: transmission-settings +mountPath: /config/settings.json +subPath: settings.json +{{- end -}} + +{{- $volumeMount := include "transmission.configmap.volumeMount" . | fromYaml -}} +{{- if $volumeMount -}} + {{- $additionalVolumeMounts := append .Values.additionalVolumeMounts $volumeMount }} + {{- $_ := set .Values "additionalVolumeMounts" (deepCopy $additionalVolumeMounts) -}} +{{- end -}} + + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render the configmap */}} +{{ include "transmission.configmap" . }} diff --git a/stable/transmission/5.0.2/test_values.yaml b/stable/transmission/5.0.2/test_values.yaml new file mode 100644 index 0000000000..58bb783f4d --- /dev/null +++ b/stable/transmission/5.0.2/test_values.yaml @@ -0,0 +1,82 @@ +# Default values for Transmission. + +image: + repository: ghcr.io/truecharts/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 + +persistence: + config: + enabled: true + mountPath: "/config" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + + +## TrueCharts Values + +transmissionConfig: + 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 + +transmissionFixedConfig: + 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 diff --git a/stable/transmission/5.0.2/values.yaml b/stable/transmission/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/truecommand/5.0.2/CONFIG.md b/stable/truecommand/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/truecommand/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/5.0.2/Chart.lock b/stable/truecommand/5.0.2/Chart.lock new file mode 100644 index 0000000000..0617d80ba8 --- /dev/null +++ b/stable/truecommand/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:25.992265277Z" diff --git a/stable/truecommand/5.0.2/Chart.yaml b/stable/truecommand/5.0.2/Chart.yaml new file mode 100644 index 0000000000..0f5fbe44b2 --- /dev/null +++ b/stable/truecommand/5.0.2/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: nightly +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Aggregated management of TrueNAS devices +home: https://github.com/truecharts/apps/tree/master/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://github.com/truecharts/apps/tree/master/incubator/truecommand +- https://hub.docker.com/r/ixsystems/truecommand +type: application +version: 5.0.2 diff --git a/stable/truecommand/5.0.2/README.md b/stable/truecommand/5.0.2/README.md new file mode 100644 index 0000000000..8caf3b92df --- /dev/null +++ b/stable/truecommand/5.0.2/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/truecommand/5.0.2/app-readme.md new file mode 100644 index 0000000000..8e1468487f --- /dev/null +++ b/stable/truecommand/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/truecommand/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f zgeElhfaqChjNhYxai+g+dw}|);)vEHC=ulegg8Q8$2%Ln8|86|I!{El;8-VMC%eCy>i z@^_r#N$1=Df9DB!3sW2y88|^s9*oP&klFZ`#<*vdz+35WcI}WFUuDpIv$5G?`8igV2ZZEUw^rxS0#q{ zCWYyu0XQk!<3$@`cRD{55sw;TRj7hph8%S|-+ud3JVObbpy9XQg8vk4PjEghZahDp z^@-NU0$ckqNwR*PBGjM3EJtadQRu%qohMJgONhl$luqXZ;5Yp|pFtdg58zE2f)AY! zpx5j50Q*P$LEo3HfDeHFM}fX(D$oo?1lcm-=MY@~*YU2md*}^%gKJupDfp!6zoP~C z00^bP2XMwWD#%}%pJIBu4{4HO!2U1((f*>pIv>F0kLPFL1Hci1asBM@yK9Et2XOhu z_2tdWlhNP72at)&C9k`K!CqH>x1Qhmz`~zDfa_m=wUjhA*jkiz7o#^a#R1AtI!7tZ zd-BWRR~_MA4;J~f+f;4Ws20T$s;eZ-j1S-@j>*ipre;fRjXC(hbHbDI_aAEtSF+J) z$eoWb;{1}|)YS+@$(^G?Aq7*iG{_%4R;3wQ4ktR8eecLSsI4ci1Bs$o#3i;T1h2e2 zy+uu8U65%(|EN-cr6=v7_i&bk$fNnu+Vn<(C0daDLx(Bu6*9G$9vn&@wqCHt5nC@UqLb`RhSHK94Qi{i@W+)VmZ)5vScHeSsJJYZ)j&^= zr{!Im$QqD@9gN_V+TGjV+ihJ{98l13xH`RT-MDr(W95G2m1)io-=5cEGH)Y9j5_@4 zp);K74OZHjCy_fK#N8CB#%@sk0f&00A{^REx8!N8Xp`_Dr9wPM5y~MbfIY!G^WVykHPibgGNzSMN^FUY=jrk!=EJ>RO}!9ld+` z>g>&n=T>-C9>ED|Eq#YmG$~*jJaqU?K&}aJ`&|a}X*@%HS)&!a%J}bk18;AzHyC`k zccefN=d)eQIh{E8l1NqP_$YSuPnxA?S@=b*(9;un8|$P@#x2X2X&r1LfaYH)3tN&P zIAnGWvlO|YtTf>n{M=Q`9D9y3WBi^PF?)$jo6a(`Gto$sioas5|CNBk`c`qbz$F zn}A;<82p^#9KDKs#oo0*Xc}Hi6*Y8Q9US(#wzUlZZeY6mBd)J;i<2UvH=TuHD=gV% zZRNJ2W1-rrEI|ui#YGGDS?O6Ev|z}Vj76@J>~yct48`FpC+0@+2J6TyZa+s<`j+Y| z+Kx8Ky8DCr%I2{kVHGu0GtMW~)JqWz@DemE%eNz9S$ePNLZzURe;tP*jwWxC0OpFOp(cv5P8;i47)!}cZ>gtqQsi-&MRZJ* zdUo^04COF@IRr&UaQ|hB!dWkf{S3@^y=UsSnXs(Oh6hvS18Lz1QOv2 zg`b1_&Q}z&N8fh7qI+gg2(@vJkHpeR6*k5RU@O_1vM!OsXpG_?p#mLYbj z^BCM>{}#k!mf(Z{1r*{Ah(%C0sotH$^kWy?#nCr8xQ*gF0B_8kAa zRt~=9gXdi--F;m|Tlo%%(A}1WM%%3j$r_@bBSuMz1id&1CciL-{%bjcU-3(XhQ<5L`w`_^>g{_w zpld8I(dJ2(p_EF0?;_5h6H|Pv+7hi$CL`Se@7Og^W;u@-*jrtuQgda2DcEJ@?zVS2 z#bJ=5XiJAHrs?pw49BL9A_kR@dUw0S$(Z||Im3^uR8@M&x@We>Xw1TBS;aX_0rc|% zhG#H`^d1dmRekkU`HfS;1Znh;&a-zr;1(^)Sylq!t$t-Rc?=-Uk+-G4r(ittYirxv zVpy?xLT0qJ+y5$H$iiB-sx;d%y2_{AS6_YHCTpZE%Q{IX+4B6#!mJ3O)i@QYxfGj% z=_EVOLWB~4Bj)8-*$9JI7B@?_WmmMBds=%()c)Am5LvW(TN{S;g)uBTRUO=l47!z7 z(Mn74DNTi^uO!G*?**ZJ>hjy+}zqBW>Eosy04TId}74&A$Bg@D+n#ECme9)?+0hJhP=Qv{B zl)aRKqIQyK%@L+T82Rz&>g4MD^xgA|x9@&<{p#hr7w4lZ!YX+gT3Idh_TnILbj=l$U(Ey~+j{o!geG+0H z=V~_{v!iT4UzV&xp3(j%>s@7W?*Oy!&TgO2s=aMm6c?|~p1->|dHH-T{gBX{I0|oM z&~CzA6CBU}_kxbgKkxr}Z(Q*I&yWB7*n`0gN7pUT=u}%44B4M^T&fMkO1C zT-2$~HN8Tm|Bec@zZ;eP3sl*O0_V`!$^5V>?4-(4`ug)|URBpiE%qf$nErW-wkoS& zyFqt<9?c!9yS$>(rM%Plsgwg`w=)VzFJZ!gky0X$1*`B2%jy5CsnE0H#0n9CSwOKq z2o2xufcRDgR9?UM>;EO6IAUK(00J*IAa$&&yKTouqj^1KCkWHlc?pwWI9YxL$FjRC z7&OnLxoXe6gvsjW3?a-)4q}^S!()5dL)2u&=3(FHq^PlXZ1xSSIb;b1N|{;$9D;6_ z$x6~2_TH{nu}dC>92z}8ef|8Z6n^Y$saA-F^R#fatMaNpAg5+MZpo!NVRuxnRuW^| zWO;ltIGCMe;W`Rcj^|*LwrXF1@OdohLngY()O8_58Kee+571v*j!;z`5s+;L$j-IO zsj>r1s3qp|8dhr3RhjFGoQ?*-tj6ao{u=^K<7CuGG%N!SuF?jF^(w!CO9qvX{?mTXmWX*xUx*Yc7G zC9Hm^-Tdz>cdn`r7cEQ?*K0t3ik7KBziQdLmS`-5c=j{Sr%a%}lsTi9Y+p$>-Dknm zl_KRik0Fp}J6^(QQ7M_>-_a24{%FT^#1m65OCdEM>JZEp^p9%WBJFi|w%{$XG-TH+ zSd-sMU5bT@Ud3c`@rFz_OVYmji6f%aV!9TsLTC~fxvXv|ME@ZKgo*;S^5{vIQiPRb z59B!*CR(5K$z}08HaA0Nv$GZYk-LONUyPZksu#{i9JAQjE-hv@EQWiyMDL7A>1@zl zZe*EokEK57I>bhOs8t_SK~SSbXg86ppiHREFrh5GnB|9ZGFYpLFo^P%@LMXcY)Xdi z?!#kXf;c{=(?w-w+@IK1h|6WMV?jnr5koC86%)Y^kLhh_!lUU>PpZvu9yN7;_Rmd<;BDzDeUO&&6VHL#q^Ib~SydS-lik7`cG`(mRp?i$$&8zzpU)CY zLrlc9Y|07EP(7+Jr9hYL)rJcZL@V^#QqQS~RUv+fDupTQ*C*hK_*+V<8+m=n40E+Z zzm?6Xl6=`_TIod_@x2k>8}Ypn-wyHpxer$TL7vL_KbD|ntp@-b@;@K!9vzzJ{|*iZ zoAZB<@i@=_5ye9}0!V)@alX$i?>aT8o&)5$fvN`qnGRW=1th#b-hquUH2B>ys6SrI|ilccBO2J@*<72*B{NM zHA~6fnAK|1f$GkIR@Ret)KCmm#f+-$y0koIWt@&$flL~c`{5`@=@|Ox{^Py6MmXcq zCaZW?E@^feM{6WNA(orPa3^a?6auW2`B%V1)@~>^a5;jWu z=YKT)e;TLwcVZ5Q?~*up2a7z;eE48Rrac ziJW-rHU^rS`7>Dt4qCJ`6B-FwwHcaePyXcIA<^&+%+Oo8iK3iZ=k*DeT8QAshZ-K` z<1|4WJ+T`jS2Ukj6}kiVOB}rxx!lwTM|rg@d|zAEZtm!^UZ}m!hv*=>u31k7p^TUE zUeURqv!PlZi*g<;iHxq3v%xR|?00O$AA;Q-8=;3_-`+K5PK;1aR!+8j5BXtrrK3Qb zo`38Y`*NseyjUP6d_ii5}&_%i^>GFH><3bbu?GbYe#cs0Y`Ik z^Q0Mvno+UZS*r-*mncuM|G6Y_jr&g|Gu5r?ioj$1^7Qh}n;eJucbY`<5~V(hayUV4 z_;Wjs>}uioaNuIHvJXR}6Zc&|DY`>&IQVE6GOWp$Xcni7Pu#DXMvjkG>Dr6}><+<^ zt9PgI>;^~e)Psi)&g1l24CoH1C%{JXJzVlF?V%H|Ij`d}30C&aN*E{KG+3;JT8@r`In^Vm5YRkma=W$JH@mE-FH`lPC}&z*dyXJW#-R?5MHR*$suYtDTP7 zZBA6wu&bO}SJ$p+I_|TzscRn%G-BQ?hXX8=NjT~;RA(6*#IA{pO8l2anBydLTWIU1 zc}A}bf$5^IMiZrULaF^B-4;pCKL0$@Zw0GDxNb9*94XG|$LojC4cMlODqCn1j)_BN z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/truecommand/5.0.2/ix_values.yaml b/stable/truecommand/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..d2b8ab2a54 --- /dev/null +++ b/stable/truecommand/5.0.2/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: nightly + +## +# 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/5.0.2/questions.yaml b/stable/truecommand/5.0.2/questions.yaml new file mode 100644 index 0000000000..5374d29098 --- /dev/null +++ b/stable/truecommand/5.0.2/questions.yaml @@ -0,0 +1,367 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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 + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true diff --git a/stable/truecommand/5.0.2/templates/common.yaml b/stable/truecommand/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/truecommand/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/truecommand/5.0.2/test_values.yaml b/stable/truecommand/5.0.2/test_values.yaml new file mode 100644 index 0000000000..ce50c30fda --- /dev/null +++ b/stable/truecommand/5.0.2/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Jackett. + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: nightly + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + data: + enabled: true + mountPath: "/data" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" diff --git a/stable/truecommand/5.0.2/values.yaml b/stable/truecommand/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/vaultwarden/2.0.3/CONFIG.md b/stable/vaultwarden/2.0.3/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/vaultwarden/2.0.3/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps 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/2.0.3/Chart.lock b/stable/vaultwarden/2.0.3/Chart.lock new file mode 100644 index 0000000000..59563e7b3c --- /dev/null +++ b/stable/vaultwarden/2.0.3/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +digest: sha256:3c3f229fbadd04a81ecb81e46f12a256f11af0428dc07b05128ca2daaba9a168 +generated: "2021-05-25T10:47:29.083037697Z" diff --git a/stable/vaultwarden/2.0.3/Chart.yaml b/stable/vaultwarden/2.0.3/Chart.yaml new file mode 100644 index 0000000000..656c0d23b1 --- /dev/null +++ b/stable/vaultwarden/2.0.3/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.4.6 +deprecated: false +description: Unofficial Bitwarden compatible server written in Rust +home: https://github.com/truecharts/apps/tree/master/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/truecharts/apps/tree/master/incubator/bitwarden +- https://github.com/k8s-at-home/charts/tree/master/charts/stable/bitwardenrs +- https://github.com/dani-garcia/vaultwarden +type: application +version: 2.0.3 diff --git a/stable/vaultwarden/2.0.3/README.md b/stable/vaultwarden/2.0.3/README.md new file mode 100644 index 0000000000..f3497af5ba --- /dev/null +++ b/stable/vaultwarden/2.0.3/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.2.5](https://img.shields.io/badge/Version-1.2.5-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 Vaultwarden 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.2 | +| https://truecharts.org/ | common | 3.5.5 | + +## 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/2.0.3/app-readme.md b/stable/vaultwarden/2.0.3/app-readme.md new file mode 100644 index 0000000000..11f37b5efe --- /dev/null +++ b/stable/vaultwarden/2.0.3/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/2.0.3/charts/common-5.0.2.tgz b/stable/vaultwarden/2.0.3/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/2.0.3/charts/postgresql-10.4.6.tgz b/stable/vaultwarden/2.0.3/charts/postgresql-10.4.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..870621a666bac28b77f5dfee546b7c4cde6fce03 GIT binary patch literal 48717 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/2.0.3/ix_values.yaml b/stable/vaultwarden/2.0.3/ix_values.yaml new file mode 100644 index 0000000000..5054d94052 --- /dev/null +++ b/stable/vaultwarden/2.0.3/ix_values.yaml @@ -0,0 +1,54 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: bitwardenrs/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: bitwardenconfig + - secretRef: + name: bitwardensecret + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: false + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + retries: 30 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: homeassistant + postgresqlDatabase: homeassistant + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/vaultwarden/2.0.3/questions.yaml b/stable/vaultwarden/2.0.3/questions.yaml new file mode 100644 index 0000000000..0ff67dd689 --- /dev/null +++ b/stable/vaultwarden/2.0.3/questions.yaml @@ -0,0 +1,955 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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" + # Configure Bitwarden: + - variable: bitwardenrs + label: "" + group: "Configuration" + schema: + type: dict + attrs: + - variable: yubico + label: "Yubico OTP authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Yubico OTP authentication" + description: "Please refer to the manual at: https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: server + label: "Yubico server" + description: "Defaults to YubiCloud" + schema: + type: string + default: "" + - variable: clientId + label: "Yubico ID" + schema: + type: string + default: "" + - variable: secretKey + label: "Yubico Secret Key" + schema: + type: string + default: "" + - variable: admin + label: "Admin Portal" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Admin Portal" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: disableAdminToken + label: "Make Accessible Without Password/Token" + schema: + type: boolean + default: false + - variable: token + label: "Admin Portal Password/Token" + description: "Will be automatically generated if not defined" + schema: + type: string + default: "" + - variable: icons + label: "Icon Download Settings" + schema: + type: dict + attrs: + - variable: disableDownload + label: "Disable Icon Download" + description: "Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache)" + schema: + type: boolean + default: false + - variable: cache + label: "Cache time-to-live" + description: "Cache time-to-live for icons fetched. 0 means no purging" + schema: + type: int + default: 2592000 + - variable: token + label: "Failed Downloads Cache time-to-live" + description: "Cache time-to-live for icons that were not available. 0 means no purging." + schema: + type: int + default: 2592000 + - variable: log + label: "Logging" + schema: + type: dict + attrs: + - variable: level + label: "Log level" + schema: + type: string + default: "info" + required: true + enum: + - value: "trace" + description: "trace" + - value: "debug" + description: "debug" + - value: "info" + description: "info" + - value: "warn" + description: "warn" + - value: "error" + description: "error" + - value: "off" + description: "off" + - variable: file + label: "Log-File Location" + schema: + type: string + default: "" + - variable: smtp + label: "SMTP Settings (Email)" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable SMTP Support" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: "SMTP hostname" + schema: + type: string + required: true + default: "" + - variable: from + label: "SMTP sender e-mail address" + schema: + type: string + required: true + default: "" + - variable: fromName + label: "SMTP sender name" + schema: + type: string + required: true + default: "" + - variable: user + label: "SMTP username" + schema: + type: string + required: true + default: "" + - variable: password + label: "SMTP password" + description: "Required is user is specified, ignored if no user provided" + schema: + type: string + default: "" + - variable: ssl + label: "Enable SSL connection" + schema: + type: boolean + default: true + - variable: port + label: "SMTP port" + description: "Usually: 25 without SSL, 587 with SSL" + schema: + type: int + default: 587 + - variable: authMechanism + label: "SMTP Authentication Mechanisms" + description: "Comma-separated options: Plain, Login and Xoauth2" + schema: + type: string + default: "Plain" + - variable: heloName + label: "SMTP HELO - Hostname" + description: "Hostname to be sent for SMTP HELO. Defaults to pod name" + schema: + type: string + default: "" + - variable: port + label: "SMTP timeout" + schema: + type: int + default: 15 + - variable: invalidHostname + label: "Accept Invalid Hostname" + description: "Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: invalidCertificate + label: "Accept Invalid Certificate" + description: "Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: allowSignups + label: "Allow Signup" + description: "Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users" + schema: + type: boolean + default: true + - variable: allowInvitation + label: "Always allow Invitation" + description: "Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations" + schema: + type: boolean + default: true + - variable: defaultInviteName + label: "Default Invite Organisation Name" + description: "Default organization name in invitation e-mails that are not coming from a specific organization." + schema: + type: string + default: "" + - variable: showPasswordHint + label: "Show password hints" + description: "https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display" + schema: + type: boolean + default: true + - variable: signupwhitelistenable + label: "Enable Signup Whitelist" + description: "allowSignups is ignored if set" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: signupDomains + label: "Signup Whitelist Domains" + schema: + type: list + default: [] + items: + - variable: domain + label: "Domain" + schema: + type: string + default: "" + - variable: verifySignup + label: "Verifiy Signup" + description: "Verify e-mail before login is enabled. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: requireEmail + label: "Block Login if email fails" + description: "When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: emailAttempts + label: "Email token reset attempts" + description: "Maximum attempts before an email token is reset and a new email will need to be sent" + schema: + type: int + default: 3 + - variable: emailTokenExpiration + label: "Email token validity in seconds" + schema: + type: int + default: 600 + - variable: enableWebsockets + label: "Enable Websocket Connections" + description: "Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications" + schema: + type: boolean + default: true + hidden: true + - variable: enableWebVault + label: "Enable Webvault" + description: "Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting" + schema: + type: boolean + default: true + - variable: orgCreationUsers + label: "Limit Organisation Creation to (users)" + description: "Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users." + schema: + type: string + default: "all" + - variable: attachmentLimitOrg + label: "Limit Attachment Disk Usage per Organisation" + schema: + type: string + default: "" + - variable: attachmentLimitUser + label: "Limit Attachment Disk Usage per User" + schema: + type: string + default: "" + - variable: hibpApiKey + label: "HaveIBeenPwned API Key" + description: "Can be purchased at https://haveibeenpwned.com/API/Key" + schema: + type: string + default: "" + - variable: env + group: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + hidden: true + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36000 + required: true + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3012 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36001 + required: true + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: nameOverride + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + 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" diff --git a/stable/vaultwarden/2.0.3/templates/_configmap.tpl b/stable/vaultwarden/2.0.3/templates/_configmap.tpl new file mode 100644 index 0000000000..8809925abd --- /dev/null +++ b/stable/vaultwarden/2.0.3/templates/_configmap.tpl @@ -0,0 +1,116 @@ +{{/* Define the configmap */}} +{{- define "vaultwarden.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vaultwardenconfig +data: + ROCKET_PORT: "8080" + SIGNUPS_ALLOWED: {{ .Values.vaultwarden.allowSignups | quote }} + {{- if .Values.vaultwarden.signupDomains }} + SIGNUPS_DOMAINS_WHITELIST: {{ join "," .Values.vaultwarden.signupDomains | quote }} + {{- end }} + {{- if and (eq .Values.vaultwarden.verifySignup true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Signup verification requires SMTP to be enabled" nil}}{{end}} + SIGNUPS_VERIFY: {{ .Values.vaultwarden.verifySignup | quote }} + {{- if and (eq .Values.vaultwarden.requireEmail true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Requiring emails for login depends on SMTP" nil}}{{end}} + REQUIRE_DEVICE_EMAIL: {{ .Values.vaultwarden.requireEmail | quote }} + {{- if .Values.vaultwarden.emailAttempts }} + EMAIL_ATTEMPTS_LIMIT: {{ .Values.vaultwarden.emailAttempts | quote }} + {{- end }} + {{- if .Values.vaultwarden.emailTokenExpiration }} + EMAIL_EXPIRATION_TIME: {{ .Values.vaultwarden.emailTokenExpiration | quote }} + {{- end }} + INVITATIONS_ALLOWED: {{ .Values.vaultwarden.allowInvitation | quote }} + {{- if .Values.vaultwarden.defaultInviteName }} + INVITATION_ORG_NAME: {{ .Values.vaultwarden.defaultInviteName | quote }} + {{- end }} + SHOW_PASSWORD_HINT: {{ .Values.vaultwarden.showPasswordHint | quote }} + WEBSOCKET_ENABLED: {{ .Values.vaultwarden.enableWebsockets | quote }} + WEB_VAULT_ENABLED: {{ .Values.vaultwarden.enableWebVault | quote }} + ORG_CREATION_USERS: {{ .Values.vaultwarden.orgCreationUsers | quote }} + {{- if .Values.vaultwarden.attachmentLimitOrg }} + ORG_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitOrg | quote }} + {{- end }} + {{- if .Values.vaultwarden.attachmentLimitUser }} + USER_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitUser | quote }} + {{- end }} + {{- if .Values.vaultwarden.hibpApiKey }} + HIBP_API_KEY: {{ .Values.vaultwarden.hibpApiKey | quote }} + {{- end }} + {{- include "vaultwarden.dbTypeValid" . }} + {{- if .Values.database.retries }} + DB_CONNECTION_RETRIES: {{ .Values.database.retries | quote }} + {{- end }} + {{- if .Values.database.maxConnections }} + DATABASE_MAX_CONNS: {{ .Values.database.maxConnections | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.smtp.enabled true }} + SMTP_HOST: {{ required "SMTP host is required to enable SMTP" .Values.vaultwarden.smtp.host | quote }} + SMTP_FROM: {{ required "SMTP sender address ('from') is required to enable SMTP" .Values.vaultwarden.smtp.from | quote }} + {{- if .Values.vaultwarden.smtp.fromName }} + SMTP_FROM_NAME: {{ .Values.vaultwarden.smtp.fromName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.ssl }} + SMTP_SSL: {{ .Values.vaultwarden.smtp.ssl | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.port }} + SMTP_PORT: {{ .Values.vaultwarden.smtp.port | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.authMechanism }} + SMTP_AUTH_MECHANISM: {{ .Values.vaultwarden.smtp.authMechanism | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.heloName }} + HELO_NAME: {{ .Values.vaultwarden.smtp.heloName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.timeout }} + SMTP_TIMEOUT: {{ .Values.vaultwarden.smtp.timeout | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidHostname }} + SMTP_ACCEPT_INVALID_HOSTNAMES: {{ .Values.vaultwarden.smtp.invalidHostname | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidCertificate }} + SMTP_ACCEPT_INVALID_CERTS: {{ .Values.vaultwarden.smtp.invalidCertificate | quote }} + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.log.file }} + LOG_FILE: {{ .Values.vaultwarden.log.file | quote }} + {{- end }} + {{- if or .Values.vaultwarden.log.level .Values.vaultwarden.log.timeFormat }} + EXTENDED_LOGGING: "true" + {{- end }} + {{- if .Values.vaultwarden.log.level }} + {{- include "vaultwarden.logLevelValid" . }} + LOG_LEVEL: {{ .Values.vaultwarden.log.level | quote }} + {{- end }} + {{- if .Values.vaultwarden.log.timeFormat }} + LOG_TIMESTAMP_FORMAT: {{ .Values.vaultwarden.log.timeFormat | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.disableDownload }} + DISABLE_ICON_DOWNLOAD: {{ .Values.vaultwarden.icons.disableDownload | quote }} + {{- if and (not .Values.vaultwarden.icons.cache) (eq .Values.vaultwarden.icons.disableDownload "true") }} + ICON_CACHE_TTL: "0" + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.icons.cache }} + ICON_CACHE_TTL: {{ .Values.vaultwarden.icons.cache | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.cacheFailed }} + ICON_CACHE_NEGTTL: {{ .Values.vaultwarden.icons.cacheFailed | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.admin.enabled true }} + {{- if eq .Values.vaultwarden.admin.disableAdminToken true }} + DISABLE_ADMIN_TOKEN: "true" + {{- end }} + {{- end }} + {{- if eq .Values.vaultwarden.yubico.enabled true }} + {{- if .Values.vaultwarden.yubico.server }} + YUBICO_SERVER: {{ .Values.vaultwarden.yubico.server | quote }} + {{- end }} + {{- end }} + {{- if eq .Values.database.type "sqlite" }} + ENABLE_DB_WAL: {{ .Values.database.wal | quote }} + {{- else }} + ENABLE_DB_WAL: "false" + {{- end }} +{{- end -}} diff --git a/stable/vaultwarden/2.0.3/templates/_secrets.tpl b/stable/vaultwarden/2.0.3/templates/_secrets.tpl new file mode 100644 index 0000000000..ac57e81471 --- /dev/null +++ b/stable/vaultwarden/2.0.3/templates/_secrets.tpl @@ -0,0 +1,59 @@ +{{/* Define the secrets */}} +{{- define "vaultwarden.secrets" -}} + +{{- $adminToken := "" }} +{{- if eq .Values.vaultwarden.admin.enabled true }} +{{- $adminToken = .Values.vaultwarden.admin.token | default (randAlphaNum 48) | b64enc | quote }} +{{- end -}} + +{{- $smtpUser := "" }} +{{- if and (eq .Values.vaultwarden.smtp.enabled true ) (.Values.vaultwarden.smtp.user) }} +{{- $smtpUser = .Values.vaultwarden.smtp.user | b64enc | quote }} +{{- end -}} + +{{- $yubicoClientId := "" }} +{{- if eq .Values.vaultwarden.yubico.enabled true }} +{{- $yubicoClientId = required "Yubico Client ID required" .Values.vaultwarden.yubico.clientId | toString | b64enc | quote }} +{{- end -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + name: vaultwardensecret +data: + {{- if ne $adminToken "" }} + ADMIN_TOKEN: {{ $adminToken }} + {{- end }} + {{- if ne $smtpUser "" }} + SMTP_USERNAME: {{ $smtpUser }} + SMTP_PASSWORD: {{ required "Must specify SMTP password" .Values.vaultwarden.smtp.password | b64enc | quote }} + {{- end }} + {{- if ne $yubicoClientId "" }} + YUBICO_CLIENT_ID: {{ $yubicoClientId }} + YUBICO_SECRET_KEY: {{ required "Yubico Secret Key required" .Values.vaultwarden.yubico.secretKey | b64enc | quote }} + {{- end }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/stable/vaultwarden/2.0.3/templates/_validate.tpl b/stable/vaultwarden/2.0.3/templates/_validate.tpl new file mode 100644 index 0000000000..e4832c2f6e --- /dev/null +++ b/stable/vaultwarden/2.0.3/templates/_validate.tpl @@ -0,0 +1,17 @@ +{{/* +Ensure valid DB type is select, defaults to SQLite +*/}} +{{- define "vaultwarden.dbTypeValid" -}} +{{- if not (or (eq .Values.database.type "postgresql") (eq .Values.database.type "mysql") (eq .Values.database.type "sqlite")) }} +{{- required "Invalid database type" nil }} +{{- end -}} +{{- end -}} + +{{/* +Ensure log type is valid +*/}} +{{- define "vaultwarden.logLevelValid" -}} +{{- if not (or (eq .Values.vaultwarden.log.level "trace") (eq .Values.vaultwarden.log.level "debug") (eq .Values.vaultwarden.log.level "info") (eq .Values.vaultwarden.log.level "warn") (eq .Values.vaultwarden.log.level "error") (eq .Values.vaultwarden.log.level "off")) }} +{{- required "Invalid log level" nil }} +{{- end }} +{{- end }} diff --git a/stable/vaultwarden/2.0.3/templates/common.yaml b/stable/vaultwarden/2.0.3/templates/common.yaml new file mode 100644 index 0000000000..74f04d2d8c --- /dev/null +++ b/stable/vaultwarden/2.0.3/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for vaultwarden */}} +{{- include "vaultwarden.configmap" . }} + +{{/* Render secrets for vaultwarden */}} +{{- include "vaultwarden.secrets" . }} diff --git a/stable/vaultwarden/2.0.3/test_values.yaml b/stable/vaultwarden/2.0.3/test_values.yaml new file mode 100644 index 0000000000..b20f2d5084 --- /dev/null +++ b/stable/vaultwarden/2.0.3/test_values.yaml @@ -0,0 +1,183 @@ +# Default values for Bitwarden. + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + ws: + ports: + ws: + enabled: true + port: 3012 + +env: {} + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: vaultwardenconfig + - secretRef: + name: vaultwardensecret + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: true + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + # retries: 15 + +# Set Bitwarden_rs application variables +vaultwarden: + # Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users + allowSignups: true + ## Whitelist domains allowed to sign-up. 'allowSignups' is ignored if set. + # signupDomains: + # - domain.tld + # Verify e-mail before login is enabled. SMTP must be enabled. + verifySignup: false + # When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled. + requireEmail: false + ## Maximum attempts before an email token is reset and a new email will need to be sent. + # emailAttempts: 3 + ## Email token validity in seconds. + # emailTokenExpiration: 600 + # Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations + allowInvitation: true + # Show password hints: https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display + ## Default organization name in invitation e-mails that are not coming from a specific organization. + # defaultInviteName: "" + showPasswordHint: true + # Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications + # Redirect HTTP path "/notifications/hub" to port 3012. Ingress/IngressRoute controllers are automatically configured. + enableWebsockets: true + # Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting + enableWebVault: true + # Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users. + orgCreationUsers: all + ## Limit attachment disk usage per organization. + # attachmentLimitOrg: + ## Limit attachment disk usage per user. + # attachmentLimitUser: + ## HaveIBeenPwned API Key. Can be purchased at https://haveibeenpwned.com/API/Key. + # hibpApiKey: + + admin: + # Enable admin portal. + enabled: false + # Disabling the admin token will make the admin portal accessible to anyone, use carefully: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-admin-token + disableAdminToken: false + ## Token for admin login, will be generated if not defined. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-admin-page + # token: + + # Enable SMTP. https://github.com/dani-garcia/bitwarden_rs/wiki/SMTP-configuration + smtp: + enabled: false + # SMTP hostname, required if SMTP is enabled. + host: "" + # SMTP sender e-mail address, required if SMTP is enabled. + from: "" + ## SMTP sender name, defaults to 'Bitwarden_RS'. + # fromName: "" + ## Enable SSL connection. + # ssl: true + ## SMTP port. Defaults to 25 without SSL, 587 with SSL. + # port: 587 + ## SMTP Authentication Mechanisms. Comma-separated options: 'Plain', 'Login' and 'Xoauth2'. Defaults to 'Plain'. + # authMechanism: Plain + ## Hostname to be sent for SMTP HELO. Defaults to pod name. + # heloName: "" + ## SMTP timeout. + # timeout: 15 + ## Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidHostname: false + ## Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidCertificate: false + ## SMTP username. + # user: "" + ## SMTP password. Required is user is specified, ignored if no user provided. + # password: "" + + ## Enable Yubico OTP authentication. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication + yubico: + enabled: false + ## Yubico server. Defaults to YubiCloud. + # server: + ## Yubico ID and Secret Key. + # clientId: + # secretKey: + + ## Logging options. https://github.com/dani-garcia/bitwarden_rs/wiki/Logging + log: + # Log to file. + file: "" + # Log level. Options are "trace", "debug", "info", "warn", "error" or "off". + level: "trace" + ## Log timestamp format. See https://docs.rs/chrono/0.4.15/chrono/format/strftime/index.html. Defaults to time in milliseconds. + # timeFormat: "" + + icons: + # Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache). TTL will default to zero. + disableDownload: false + ## Cache time-to-live for icons fetched. 0 means no purging. + # cache: 2592000 + ## Cache time-to-live for icons that were not available. 0 means no purging. + # cacheFailed: 259200 + +persistence: + data: + enabled: true + mountPath: "/data" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + db: + nameOverride: "db" + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + dbbackup: + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/stable/vaultwarden/2.0.3/values.yaml b/stable/vaultwarden/2.0.3/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/zwavejs2mqtt/5.0.2/CONFIG.md b/stable/zwavejs2mqtt/5.0.2/CONFIG.md new file mode 100644 index 0000000000..6d760c1842 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/zwavejs2mqtt/5.0.2/Chart.lock b/stable/zwavejs2mqtt/5.0.2/Chart.lock new file mode 100644 index 0000000000..1f1ce09305 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +digest: sha256:82871c43372131c8be130238af1f2b227a912c053fc6e8f19f9d3334688f119d +generated: "2021-05-25T10:47:32.475286478Z" diff --git a/stable/zwavejs2mqtt/5.0.2/Chart.yaml b/stable/zwavejs2mqtt/5.0.2/Chart.yaml new file mode 100644 index 0000000000..b0afd263d8 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 5.0.2 +deprecated: false +description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS + and Vue +home: https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt +icon: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png +keywords: +- zwavejs2mqtt +- zwave-js +- z-wave +- zwave +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: zwavejs2mqtt +sources: +- https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt +- https://github.com/k8s-at-home/charts/tree/master/charts/zwavejs2mqtt +- https://github.com/zwave-js/zwavejs2mqtt +- https://hub.docker.com/r/zwavejs/zwavejs2mqtt +type: application +upstream_version: 1.1.0 +version: 5.0.2 diff --git a/stable/zwavejs2mqtt/5.0.2/README.md b/stable/zwavejs2mqtt/5.0.2/README.md new file mode 100644 index 0000000000..a3862ca4c4 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-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 | 3.5.5 | + +## 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/5.0.2/app-readme.md b/stable/zwavejs2mqtt/5.0.2/app-readme.md new file mode 100644 index 0000000000..4bb94a1a5a --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/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/5.0.2/charts/common-5.0.2.tgz b/stable/zwavejs2mqtt/5.0.2/charts/common-5.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cad9fa4d6c25e729c40ccdaf0e7f970de479a9be GIT binary patch literal 22762 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

ogp-6BOvsc~ETY_3OY|f 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 z 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 Bmbw4{ literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/5.0.2/ix_values.yaml b/stable/zwavejs2mqtt/5.0.2/ix_values.yaml new file mode 100644 index 0000000000..995d1ffb7b --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/ix_values.yaml @@ -0,0 +1,66 @@ +## +# 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.3.1 + +# 5=tty 20=dialout 24=cdrom +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + 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/5.0.2/questions.yaml b/stable/zwavejs2mqtt/5.0.2/questions.yaml new file mode 100644 index 0000000000..c2e647263a --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/questions.yaml @@ -0,0 +1,551 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +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 + # 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: "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: "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 Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking" + 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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + hidden: false + 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 + hidden: false + required: true + - variable: nodePort + label: "Node Port (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" + 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 + hidden: false + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/src/app/store" + hidden: true + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - 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: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + description: "Path on the host to mount inside the container, ignored when emptyDir is enabled" + schema: + type: hostpath + required: true + - variable: deviceMounts + label: "Mount Devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: emptyDir + label: "EmptyDir Volume" + schema: + type: dict + hidden: false + attrs: + - variable: enabled + label: "Use emptyDir volume" + schema: + type: boolean + default: false + hidden: false + show_subquestions_if: true + subquestions: + - variable: medium + label: "EmptyDir Medium" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: devicePath + label: "Device Path" + description: "Path to the device to mount inside the container" + schema: + type: path + required: true + default: "/dev/ttyACM0" + editable: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + 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" diff --git a/stable/zwavejs2mqtt/5.0.2/templates/common.yaml b/stable/zwavejs2mqtt/5.0.2/templates/common.yaml new file mode 100644 index 0000000000..a6613c2ce2 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/zwavejs2mqtt/5.0.2/test_values.yaml b/stable/zwavejs2mqtt/5.0.2/test_values.yaml new file mode 100644 index 0000000000..f401e07096 --- /dev/null +++ b/stable/zwavejs2mqtt/5.0.2/test_values.yaml @@ -0,0 +1,117 @@ +# 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.3.1 + +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" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + +# Path to your zwave device in the container +additionalVolumeMounts: [] +# - name: usb +# mountPath: /dev/serial/by-id/usb-0658_0200-if00 + +# Path to your zwave device on the host +additionalVolumes: [] +# - name: usb +# hostPath: +# path: /dev/serial/by-id/usb-0658_0200-if00 + +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller diff --git a/stable/zwavejs2mqtt/5.0.2/values.yaml b/stable/zwavejs2mqtt/5.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2