From 00c95cb5d29d8d1984e79ef92f9c94fc28637518 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 30 Aug 2021 21:05:57 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/authelia/1.3.1/CONFIG.md | 8 + incubator/authelia/1.3.1/Chart.lock | 12 + incubator/authelia/1.3.1/Chart.yaml | 41 + incubator/authelia/1.3.1/README.md | 45 + incubator/authelia/1.3.1/app-readme.md | 4 + .../authelia/1.3.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../1.3.1/charts/postgresql-1.3.0.tgz | Bin 0 -> 30700 bytes .../authelia/1.3.1/charts/redis-15.0.3.tgz | Bin 0 -> 77327 bytes incubator/authelia/1.3.1/ix_values.yaml | 231 +++ incubator/authelia/1.3.1/questions.yaml | 1697 +++++++++++++++++ .../authelia/1.3.1/templates/_configmap.tpl | 245 +++ .../authelia/1.3.1/templates/_secrets.tpl | 112 ++ .../authelia/1.3.1/templates/common.yaml | 72 + incubator/authelia/1.3.1/test_values.yaml | 662 +++++++ incubator/authelia/1.3.1/values.yaml | 0 incubator/custom-app/0.2.2/CONFIG.md | 0 incubator/custom-app/0.2.2/Chart.lock | 6 + incubator/custom-app/0.2.2/Chart.yaml | 22 + incubator/custom-app/0.2.2/README.md | 0 incubator/custom-app/0.2.2/app-readme.md | 1 + .../custom-app/0.2.2/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes incubator/custom-app/0.2.2/ix_values.yaml | 10 + incubator/custom-app/0.2.2/questions.yaml | 1194 ++++++++++++ .../custom-app/0.2.2/templates/common.yaml | 1 + incubator/custom-app/0.2.2/test_values.yaml | 43 + incubator/custom-app/0.2.2/values.yaml | 0 incubator/jdownloader2/0.3.1/CONFIG.md | 8 + incubator/jdownloader2/0.3.1/Chart.lock | 6 + incubator/jdownloader2/0.3.1/Chart.yaml | 29 + incubator/jdownloader2/0.3.1/README.md | 44 + incubator/jdownloader2/0.3.1/app-readme.md | 4 + .../0.3.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes incubator/jdownloader2/0.3.1/ix_values.yaml | 21 + incubator/jdownloader2/0.3.1/questions.yaml | 1187 ++++++++++++ .../jdownloader2/0.3.1/templates/common.yaml | 1 + incubator/jdownloader2/0.3.1/test_values.yaml | 50 + incubator/jdownloader2/0.3.1/values.yaml | 0 incubator/nextcloud/3.4.1/CONFIG.md | 8 + incubator/nextcloud/3.4.1/Chart.lock | 12 + incubator/nextcloud/3.4.1/Chart.yaml | 36 + incubator/nextcloud/3.4.1/README.md | 45 + incubator/nextcloud/3.4.1/app-readme.md | 4 + .../nextcloud/3.4.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../3.4.1/charts/postgresql-1.3.0.tgz | Bin 0 -> 30700 bytes .../nextcloud/3.4.1/charts/redis-15.0.3.tgz | Bin 0 -> 77327 bytes incubator/nextcloud/3.4.1/ix_values.yaml | 187 ++ incubator/nextcloud/3.4.1/questions.yaml | 1278 +++++++++++++ .../nextcloud/3.4.1/templates/_configmap.tpl | 33 + .../nextcloud/3.4.1/templates/_cronjob.tpl | 51 + .../nextcloud/3.4.1/templates/_secrets.tpl | 50 + .../nextcloud/3.4.1/templates/common.yaml | 14 + incubator/nextcloud/3.4.1/test_values.yaml | 210 ++ incubator/nextcloud/3.4.1/values.yaml | 0 stable/airsonic/1.11.1/CONFIG.md | 8 + stable/airsonic/1.11.1/Chart.lock | 6 + stable/airsonic/1.11.1/Chart.yaml | 22 + stable/airsonic/1.11.1/README.md | 44 + stable/airsonic/1.11.1/app-readme.md | 4 + .../airsonic/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/airsonic/1.11.1/ix_values.yaml | 19 + stable/airsonic/1.11.1/questions.yaml | 1069 +++++++++++ stable/airsonic/1.11.1/templates/common.yaml | 1 + stable/airsonic/1.11.1/test_values.yaml | 63 + stable/airsonic/1.11.1/values.yaml | 0 stable/appdaemon/3.11.1/CONFIG.md | 8 + stable/appdaemon/3.11.1/Chart.lock | 6 + stable/appdaemon/3.11.1/Chart.yaml | 29 + stable/appdaemon/3.11.1/README.md | 42 + stable/appdaemon/3.11.1/app-readme.md | 4 + .../appdaemon/3.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/appdaemon/3.11.1/ix_values.yaml | 16 + stable/appdaemon/3.11.1/questions.yaml | 1040 ++++++++++ stable/appdaemon/3.11.1/templates/common.yaml | 1 + stable/appdaemon/3.11.1/test_values.yaml | 43 + stable/appdaemon/3.11.1/values.yaml | 0 stable/bazarr/6.11.1/CONFIG.md | 8 + stable/bazarr/6.11.1/Chart.lock | 6 + stable/bazarr/6.11.1/Chart.yaml | 32 + stable/bazarr/6.11.1/README.md | 43 + stable/bazarr/6.11.1/app-readme.md | 4 + stable/bazarr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/bazarr/6.11.1/ix_values.yaml | 15 + stable/bazarr/6.11.1/questions.yaml | 1105 +++++++++++ stable/bazarr/6.11.1/templates/common.yaml | 1 + stable/bazarr/6.11.1/test_values.yaml | 28 + stable/bazarr/6.11.1/values.yaml | 0 stable/booksonic-air/1.9.1/CONFIG.md | 8 + stable/booksonic-air/1.9.1/Chart.lock | 6 + stable/booksonic-air/1.9.1/Chart.yaml | 23 + stable/booksonic-air/1.9.1/README.md | 43 + stable/booksonic-air/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/booksonic-air/1.9.1/ix_values.yaml | 15 + stable/booksonic-air/1.9.1/questions.yaml | 1067 +++++++++++ .../booksonic-air/1.9.1/templates/common.yaml | 1 + stable/booksonic-air/1.9.1/test_values.yaml | 50 + stable/booksonic-air/1.9.1/values.yaml | 0 stable/calibre-web/6.11.1/CONFIG.md | 8 + stable/calibre-web/6.11.1/Chart.lock | 6 + stable/calibre-web/6.11.1/Chart.yaml | 26 + stable/calibre-web/6.11.1/README.md | 43 + stable/calibre-web/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/calibre-web/6.11.1/ix_values.yaml | 16 + stable/calibre-web/6.11.1/questions.yaml | 1066 +++++++++++ .../calibre-web/6.11.1/templates/common.yaml | 1 + stable/calibre-web/6.11.1/test_values.yaml | 30 + stable/calibre-web/6.11.1/values.yaml | 0 stable/calibre/1.9.1/CONFIG.md | 8 + stable/calibre/1.9.1/Chart.lock | 6 + stable/calibre/1.9.1/Chart.yaml | 21 + stable/calibre/1.9.1/README.md | 43 + stable/calibre/1.9.1/app-readme.md | 4 + stable/calibre/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/calibre/1.9.1/ix_values.yaml | 15 + stable/calibre/1.9.1/questions.yaml | 1182 ++++++++++++ stable/calibre/1.9.1/templates/common.yaml | 3 + stable/calibre/1.9.1/test_values.yaml | 61 + stable/calibre/1.9.1/values.yaml | 0 stable/collabora-online/6.11.1/CONFIG.md | 8 + stable/collabora-online/6.11.1/Chart.lock | 6 + stable/collabora-online/6.11.1/Chart.yaml | 28 + stable/collabora-online/6.11.1/README.md | 44 + stable/collabora-online/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/collabora-online/6.11.1/ix_values.yaml | 14 + stable/collabora-online/6.11.1/questions.yaml | 983 ++++++++++ .../6.11.1/templates/common.yaml | 1 + .../collabora-online/6.11.1/test_values.yaml | 22 + stable/collabora-online/6.11.1/values.yaml | 0 stable/deconz/1.9.1/CONFIG.md | 8 + stable/deconz/1.9.1/Chart.lock | 6 + stable/deconz/1.9.1/Chart.yaml | 25 + stable/deconz/1.9.1/README.md | 43 + stable/deconz/1.9.1/app-readme.md | 4 + stable/deconz/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deconz/1.9.1/ix_values.yaml | 15 + stable/deconz/1.9.1/questions.yaml | 1286 +++++++++++++ stable/deconz/1.9.1/templates/common.yaml | 1 + stable/deconz/1.9.1/test_values.yaml | 75 + stable/deconz/1.9.1/values.yaml | 0 stable/deepstack-cpu/4.11.1/CONFIG.md | 8 + stable/deepstack-cpu/4.11.1/Chart.lock | 6 + stable/deepstack-cpu/4.11.1/Chart.yaml | 28 + stable/deepstack-cpu/4.11.1/README.md | 44 + stable/deepstack-cpu/4.11.1/app-readme.md | 4 + .../4.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deepstack-cpu/4.11.1/ix_values.yaml | 19 + stable/deepstack-cpu/4.11.1/questions.yaml | 1119 +++++++++++ .../4.11.1/templates/common.yaml | 1 + stable/deepstack-cpu/4.11.1/test_values.yaml | 41 + stable/deepstack-cpu/4.11.1/values.yaml | 0 stable/deluge/6.11.1/CONFIG.md | 8 + stable/deluge/6.11.1/Chart.lock | 6 + stable/deluge/6.11.1/Chart.yaml | 24 + stable/deluge/6.11.1/README.md | 42 + stable/deluge/6.11.1/app-readme.md | 4 + stable/deluge/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/deluge/6.11.1/ix_values.yaml | 16 + stable/deluge/6.11.1/questions.yaml | 1210 ++++++++++++ stable/deluge/6.11.1/templates/common.yaml | 1 + stable/deluge/6.11.1/test_values.yaml | 35 + stable/deluge/6.11.1/values.yaml | 0 stable/dizquetv/1.9.1/CONFIG.md | 8 + stable/dizquetv/1.9.1/Chart.lock | 6 + stable/dizquetv/1.9.1/Chart.yaml | 22 + stable/dizquetv/1.9.1/README.md | 43 + stable/dizquetv/1.9.1/app-readme.md | 4 + .../dizquetv/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/dizquetv/1.9.1/ix_values.yaml | 15 + stable/dizquetv/1.9.1/questions.yaml | 1067 +++++++++++ stable/dizquetv/1.9.1/templates/common.yaml | 1 + stable/dizquetv/1.9.1/test_values.yaml | 43 + stable/dizquetv/1.9.1/values.yaml | 0 stable/duplicati/1.9.1/CONFIG.md | 8 + stable/duplicati/1.9.1/Chart.lock | 6 + stable/duplicati/1.9.1/Chart.yaml | 21 + stable/duplicati/1.9.1/README.md | 43 + stable/duplicati/1.9.1/app-readme.md | 4 + .../duplicati/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/duplicati/1.9.1/ix_values.yaml | 15 + stable/duplicati/1.9.1/questions.yaml | 1067 +++++++++++ stable/duplicati/1.9.1/templates/common.yaml | 1 + stable/duplicati/1.9.1/test_values.yaml | 46 + stable/duplicati/1.9.1/values.yaml | 0 stable/emby/6.11.1/CONFIG.md | 8 + stable/emby/6.11.1/Chart.lock | 6 + stable/emby/6.11.1/Chart.yaml | 28 + stable/emby/6.11.1/README.md | 43 + stable/emby/6.11.1/app-readme.md | 4 + stable/emby/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/emby/6.11.1/ix_values.yaml | 15 + stable/emby/6.11.1/questions.yaml | 1113 +++++++++++ stable/emby/6.11.1/templates/common.yaml | 1 + stable/emby/6.11.1/test_values.yaml | 31 + stable/emby/6.11.1/values.yaml | 0 stable/esphome/6.11.1/CONFIG.md | 8 + stable/esphome/6.11.1/Chart.lock | 6 + stable/esphome/6.11.1/Chart.yaml | 27 + stable/esphome/6.11.1/README.md | 43 + stable/esphome/6.11.1/app-readme.md | 4 + .../esphome/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/esphome/6.11.1/ix_values.yaml | 15 + stable/esphome/6.11.1/questions.yaml | 1208 ++++++++++++ stable/esphome/6.11.1/templates/common.yaml | 1 + stable/esphome/6.11.1/test_values.yaml | 32 + stable/esphome/6.11.1/values.yaml | 0 stable/external-service/1.4.0/Chart.lock | 2 +- stable/fireflyiii/5.7.1/CONFIG.md | 8 + stable/fireflyiii/5.7.1/Chart.lock | 9 + stable/fireflyiii/5.7.1/Chart.yaml | 30 + stable/fireflyiii/5.7.1/README.md | 43 + stable/fireflyiii/5.7.1/app-readme.md | 4 + .../fireflyiii/5.7.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../5.7.1/charts/postgresql-1.3.0.tgz | Bin 0 -> 30700 bytes stable/fireflyiii/5.7.1/ix_values.yaml | 54 + stable/fireflyiii/5.7.1/questions.yaml | 1116 +++++++++++ stable/fireflyiii/5.7.1/templates/common.yaml | 5 + .../fireflyiii/5.7.1/templates/secrets.yaml | 19 + stable/fireflyiii/5.7.1/test_values.yaml | 72 + stable/fireflyiii/5.7.1/values.yaml | 0 stable/flaresolverr/1.9.1/CONFIG.md | 8 + stable/flaresolverr/1.9.1/Chart.lock | 6 + stable/flaresolverr/1.9.1/Chart.yaml | 22 + stable/flaresolverr/1.9.1/README.md | 43 + stable/flaresolverr/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/flaresolverr/1.9.1/ix_values.yaml | 15 + stable/flaresolverr/1.9.1/questions.yaml | 1104 +++++++++++ .../flaresolverr/1.9.1/templates/common.yaml | 1 + stable/flaresolverr/1.9.1/test_values.yaml | 28 + stable/flaresolverr/1.9.1/values.yaml | 0 stable/flood/1.9.1/CONFIG.md | 8 + stable/flood/1.9.1/Chart.lock | 6 + stable/flood/1.9.1/Chart.yaml | 24 + stable/flood/1.9.1/README.md | 43 + stable/flood/1.9.1/app-readme.md | 4 + stable/flood/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/flood/1.9.1/ci/ct-values.yaml | 5 + stable/flood/1.9.1/ix_values.yaml | 15 + stable/flood/1.9.1/questions.yaml | 1111 +++++++++++ stable/flood/1.9.1/templates/common.yaml | 1 + stable/flood/1.9.1/test_values.yaml | 39 + stable/flood/1.9.1/values.yaml | 0 stable/focalboard/1.9.1/CONFIG.md | 8 + stable/focalboard/1.9.1/Chart.lock | 6 + stable/focalboard/1.9.1/Chart.yaml | 25 + stable/focalboard/1.9.1/README.md | 44 + stable/focalboard/1.9.1/app-readme.md | 4 + .../focalboard/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/focalboard/1.9.1/ix_values.yaml | 15 + stable/focalboard/1.9.1/questions.yaml | 1104 +++++++++++ stable/focalboard/1.9.1/templates/common.yaml | 1 + stable/focalboard/1.9.1/test_values.yaml | 39 + stable/focalboard/1.9.1/values.yaml | 0 stable/freeradius/1.7.1/CONFIG.md | 8 + stable/freeradius/1.7.1/Chart.lock | 6 + stable/freeradius/1.7.1/Chart.yaml | 27 + stable/freeradius/1.7.1/README.md | 43 + stable/freeradius/1.7.1/app-readme.md | 4 + .../freeradius/1.7.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/freeradius/1.7.1/ix_values.yaml | 34 + stable/freeradius/1.7.1/questions.yaml | 1037 ++++++++++ stable/freeradius/1.7.1/templates/common.yaml | 5 + stable/freeradius/1.7.1/test_values.yaml | 47 + stable/freeradius/1.7.1/values.yaml | 0 stable/freshrss/6.11.1/CONFIG.md | 8 + stable/freshrss/6.11.1/Chart.lock | 6 + stable/freshrss/6.11.1/Chart.yaml | 24 + stable/freshrss/6.11.1/README.md | 43 + stable/freshrss/6.11.1/app-readme.md | 4 + .../freshrss/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/freshrss/6.11.1/ix_values.yaml | 16 + stable/freshrss/6.11.1/questions.yaml | 1066 +++++++++++ stable/freshrss/6.11.1/templates/common.yaml | 1 + stable/freshrss/6.11.1/test_values.yaml | 28 + stable/freshrss/6.11.1/values.yaml | 0 stable/gaps/6.11.1/CONFIG.md | 8 + stable/gaps/6.11.1/Chart.lock | 6 + stable/gaps/6.11.1/Chart.yaml | 25 + stable/gaps/6.11.1/README.md | 42 + stable/gaps/6.11.1/app-readme.md | 4 + stable/gaps/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/gaps/6.11.1/ix_values.yaml | 15 + stable/gaps/6.11.1/questions.yaml | 1104 +++++++++++ stable/gaps/6.11.1/templates/common.yaml | 1 + stable/gaps/6.11.1/test_values.yaml | 26 + stable/gaps/6.11.1/values.yaml | 0 stable/gonic/1.9.1/CONFIG.md | 8 + stable/gonic/1.9.1/Chart.lock | 6 + stable/gonic/1.9.1/Chart.yaml | 22 + stable/gonic/1.9.1/README.md | 43 + stable/gonic/1.9.1/app-readme.md | 4 + stable/gonic/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/gonic/1.9.1/ci/ct-values.yaml | 21 + stable/gonic/1.9.1/ix_values.yaml | 15 + stable/gonic/1.9.1/questions.yaml | 1104 +++++++++++ stable/gonic/1.9.1/templates/common.yaml | 1 + stable/gonic/1.9.1/test_values.yaml | 41 + stable/gonic/1.9.1/values.yaml | 0 stable/grocy/6.11.1/CONFIG.md | 8 + stable/grocy/6.11.1/Chart.lock | 6 + stable/grocy/6.11.1/Chart.yaml | 23 + stable/grocy/6.11.1/README.md | 42 + stable/grocy/6.11.1/app-readme.md | 4 + stable/grocy/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/grocy/6.11.1/ix_values.yaml | 16 + stable/grocy/6.11.1/questions.yaml | 1065 +++++++++++ stable/grocy/6.11.1/templates/common.yaml | 1 + stable/grocy/6.11.1/test_values.yaml | 28 + stable/grocy/6.11.1/values.yaml | 0 stable/handbrake/6.11.1/CONFIG.md | 8 + stable/handbrake/6.11.1/Chart.lock | 6 + stable/handbrake/6.11.1/Chart.yaml | 30 + stable/handbrake/6.11.1/README.md | 44 + stable/handbrake/6.11.1/app-readme.md | 4 + .../handbrake/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/handbrake/6.11.1/ix_values.yaml | 20 + stable/handbrake/6.11.1/questions.yaml | 1282 +++++++++++++ stable/handbrake/6.11.1/templates/common.yaml | 1 + stable/handbrake/6.11.1/test_values.yaml | 53 + stable/handbrake/6.11.1/values.yaml | 0 stable/haste-server/1.11.1/CONFIG.md | 8 + stable/haste-server/1.11.1/Chart.lock | 6 + stable/haste-server/1.11.1/Chart.yaml | 24 + stable/haste-server/1.11.1/README.md | 43 + stable/haste-server/1.11.1/app-readme.md | 4 + .../1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/haste-server/1.11.1/ix_values.yaml | 19 + stable/haste-server/1.11.1/questions.yaml | 1110 +++++++++++ .../haste-server/1.11.1/templates/common.yaml | 1 + stable/haste-server/1.11.1/test_values.yaml | 53 + stable/haste-server/1.11.1/values.yaml | 0 stable/healthchecks/1.9.1/CONFIG.md | 8 + stable/healthchecks/1.9.1/Chart.lock | 6 + stable/healthchecks/1.9.1/Chart.yaml | 25 + stable/healthchecks/1.9.1/README.md | 43 + stable/healthchecks/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/healthchecks/1.9.1/ix_values.yaml | 15 + stable/healthchecks/1.9.1/questions.yaml | 1090 +++++++++++ .../healthchecks/1.9.1/templates/common.yaml | 1 + stable/healthchecks/1.9.1/test_values.yaml | 44 + stable/healthchecks/1.9.1/values.yaml | 0 stable/heimdall/6.11.1/CONFIG.md | 8 + stable/heimdall/6.11.1/Chart.lock | 6 + stable/heimdall/6.11.1/Chart.yaml | 21 + stable/heimdall/6.11.1/README.md | 38 + stable/heimdall/6.11.1/app-readme.md | 4 + .../heimdall/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/heimdall/6.11.1/ix_values.yaml | 16 + stable/heimdall/6.11.1/questions.yaml | 1066 +++++++++++ stable/heimdall/6.11.1/templates/common.yaml | 1 + stable/heimdall/6.11.1/test_values.yaml | 32 + stable/heimdall/6.11.1/values.yaml | 0 stable/home-assistant/6.11.1/CONFIG.md | 8 + stable/home-assistant/6.11.1/Chart.lock | 6 + stable/home-assistant/6.11.1/Chart.yaml | 28 + stable/home-assistant/6.11.1/README.md | 43 + stable/home-assistant/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/home-assistant/6.11.1/ix_values.yaml | 15 + stable/home-assistant/6.11.1/questions.yaml | 1121 +++++++++++ .../6.11.1/templates/common.yaml | 1 + .../6.11.1/templates/secret.yaml | 15 + stable/home-assistant/6.11.1/test_values.yaml | 85 + stable/home-assistant/6.11.1/values.yaml | 0 stable/hyperion-ng/1.9.1/CONFIG.md | 8 + stable/hyperion-ng/1.9.1/Chart.lock | 6 + stable/hyperion-ng/1.9.1/Chart.yaml | 22 + stable/hyperion-ng/1.9.1/README.md | 43 + stable/hyperion-ng/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/hyperion-ng/1.9.1/ix_values.yaml | 15 + stable/hyperion-ng/1.9.1/questions.yaml | 1407 ++++++++++++++ .../hyperion-ng/1.9.1/templates/common.yaml | 1 + stable/hyperion-ng/1.9.1/test_values.yaml | 56 + stable/hyperion-ng/1.9.1/values.yaml | 0 stable/jackett/6.11.1/CONFIG.md | 8 + stable/jackett/6.11.1/Chart.lock | 6 + stable/jackett/6.11.1/Chart.yaml | 27 + stable/jackett/6.11.1/README.md | 42 + stable/jackett/6.11.1/app-readme.md | 4 + .../jackett/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/jackett/6.11.1/ix_values.yaml | 25 + stable/jackett/6.11.1/questions.yaml | 1224 ++++++++++++ stable/jackett/6.11.1/templates/common.yaml | 1 + stable/jackett/6.11.1/test_values.yaml | 41 + stable/jackett/6.11.1/values.yaml | 0 stable/jellyfin/6.11.1/CONFIG.md | 8 + stable/jellyfin/6.11.1/Chart.lock | 6 + stable/jellyfin/6.11.1/Chart.yaml | 27 + stable/jellyfin/6.11.1/README.md | 42 + stable/jellyfin/6.11.1/app-readme.md | 4 + .../jellyfin/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/jellyfin/6.11.1/ix_values.yaml | 15 + stable/jellyfin/6.11.1/questions.yaml | 1113 +++++++++++ stable/jellyfin/6.11.1/templates/common.yaml | 1 + stable/jellyfin/6.11.1/test_values.yaml | 31 + stable/jellyfin/6.11.1/values.yaml | 0 stable/kms/6.11.1/CONFIG.md | 8 + stable/kms/6.11.1/Chart.lock | 6 + stable/kms/6.11.1/Chart.yaml | 25 + stable/kms/6.11.1/README.md | 42 + stable/kms/6.11.1/app-readme.md | 4 + stable/kms/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/kms/6.11.1/ix_values.yaml | 16 + stable/kms/6.11.1/questions.yaml | 833 ++++++++ stable/kms/6.11.1/templates/common.yaml | 1 + stable/kms/6.11.1/test_values.yaml | 16 + stable/kms/6.11.1/values.yaml | 0 stable/komga/1.9.1/CONFIG.md | 8 + stable/komga/1.9.1/Chart.lock | 6 + stable/komga/1.9.1/Chart.yaml | 24 + stable/komga/1.9.1/README.md | 43 + stable/komga/1.9.1/app-readme.md | 4 + stable/komga/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/komga/1.9.1/ix_values.yaml | 15 + stable/komga/1.9.1/questions.yaml | 1214 ++++++++++++ stable/komga/1.9.1/templates/common.yaml | 1 + stable/komga/1.9.1/test_values.yaml | 40 + stable/komga/1.9.1/values.yaml | 0 stable/lazylibrarian/6.11.1/CONFIG.md | 8 + stable/lazylibrarian/6.11.1/Chart.lock | 6 + stable/lazylibrarian/6.11.1/Chart.yaml | 27 + stable/lazylibrarian/6.11.1/README.md | 43 + stable/lazylibrarian/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lazylibrarian/6.11.1/ix_values.yaml | 16 + stable/lazylibrarian/6.11.1/questions.yaml | 1066 +++++++++++ .../6.11.1/templates/common.yaml | 1 + stable/lazylibrarian/6.11.1/test_values.yaml | 28 + stable/lazylibrarian/6.11.1/values.yaml | 0 stable/librespeed/1.9.1/CONFIG.md | 8 + stable/librespeed/1.9.1/Chart.lock | 6 + stable/librespeed/1.9.1/Chart.yaml | 23 + stable/librespeed/1.9.1/README.md | 44 + stable/librespeed/1.9.1/app-readme.md | 4 + .../librespeed/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/librespeed/1.9.1/ci/ct-values.yaml | 2 + stable/librespeed/1.9.1/ix_values.yaml | 15 + stable/librespeed/1.9.1/questions.yaml | 1067 +++++++++++ stable/librespeed/1.9.1/templates/common.yaml | 1 + stable/librespeed/1.9.1/test_values.yaml | 49 + stable/librespeed/1.9.1/values.yaml | 0 stable/lidarr/6.11.1/CONFIG.md | 8 + stable/lidarr/6.11.1/Chart.lock | 6 + stable/lidarr/6.11.1/Chart.yaml | 27 + stable/lidarr/6.11.1/README.md | 42 + stable/lidarr/6.11.1/app-readme.md | 4 + stable/lidarr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lidarr/6.11.1/ix_values.yaml | 37 + stable/lidarr/6.11.1/questions.yaml | 1104 +++++++++++ stable/lidarr/6.11.1/templates/common.yaml | 1 + stable/lidarr/6.11.1/test_values.yaml | 49 + stable/lidarr/6.11.1/values.yaml | 0 stable/littlelink/1.5.1/CONFIG.md | 8 + stable/littlelink/1.5.1/Chart.lock | 6 + stable/littlelink/1.5.1/Chart.yaml | 26 + stable/littlelink/1.5.1/README.md | 43 + stable/littlelink/1.5.1/app-readme.md | 4 + .../littlelink/1.5.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/littlelink/1.5.1/ix_values.yaml | 19 + stable/littlelink/1.5.1/questions.yaml | 1139 +++++++++++ .../littlelink/1.5.1/templates/_configmap.tpl | 127 ++ stable/littlelink/1.5.1/templates/common.yaml | 8 + stable/littlelink/1.5.1/test_values.yaml | 42 + stable/littlelink/1.5.1/values.yaml | 0 stable/lychee/6.11.1/CONFIG.md | 8 + stable/lychee/6.11.1/Chart.lock | 6 + stable/lychee/6.11.1/Chart.yaml | 26 + stable/lychee/6.11.1/README.md | 43 + stable/lychee/6.11.1/app-readme.md | 4 + stable/lychee/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/lychee/6.11.1/ix_values.yaml | 16 + stable/lychee/6.11.1/questions.yaml | 1066 +++++++++++ stable/lychee/6.11.1/templates/common.yaml | 1 + stable/lychee/6.11.1/test_values.yaml | 28 + stable/lychee/6.11.1/values.yaml | 0 stable/mealie/1.11.1/CONFIG.md | 8 + stable/mealie/1.11.1/Chart.lock | 6 + stable/mealie/1.11.1/Chart.yaml | 22 + stable/mealie/1.11.1/README.md | 42 + stable/mealie/1.11.1/app-readme.md | 4 + stable/mealie/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mealie/1.11.1/ix_values.yaml | 19 + stable/mealie/1.11.1/questions.yaml | 1062 +++++++++++ stable/mealie/1.11.1/templates/common.yaml | 1 + stable/mealie/1.11.1/test_values.yaml | 46 + stable/mealie/1.11.1/values.yaml | 0 stable/mosquitto/1.11.1/CONFIG.md | 8 + stable/mosquitto/1.11.1/Chart.lock | 6 + stable/mosquitto/1.11.1/Chart.yaml | 24 + stable/mosquitto/1.11.1/README.md | 42 + stable/mosquitto/1.11.1/app-readme.md | 4 + .../mosquitto/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mosquitto/1.11.1/ix_values.yaml | 18 + stable/mosquitto/1.11.1/questions.yaml | 1226 ++++++++++++ stable/mosquitto/1.11.1/templates/common.yaml | 17 + .../mosquitto/1.11.1/templates/configmap.yaml | 22 + stable/mosquitto/1.11.1/test_values.yaml | 43 + stable/mosquitto/1.11.1/values.yaml | 0 stable/mylar/1.9.1/CONFIG.md | 8 + stable/mylar/1.9.1/Chart.lock | 6 + stable/mylar/1.9.1/Chart.yaml | 22 + stable/mylar/1.9.1/README.md | 44 + stable/mylar/1.9.1/app-readme.md | 4 + stable/mylar/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/mylar/1.9.1/ix_values.yaml | 15 + stable/mylar/1.9.1/questions.yaml | 1116 +++++++++++ stable/mylar/1.9.1/templates/common.yaml | 1 + stable/mylar/1.9.1/test_values.yaml | 48 + stable/mylar/1.9.1/values.yaml | 0 stable/navidrome/6.11.1/CONFIG.md | 8 + stable/navidrome/6.11.1/Chart.lock | 6 + stable/navidrome/6.11.1/Chart.yaml | 25 + stable/navidrome/6.11.1/README.md | 43 + stable/navidrome/6.11.1/app-readme.md | 4 + .../navidrome/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/navidrome/6.11.1/ix_values.yaml | 15 + stable/navidrome/6.11.1/questions.yaml | 1105 +++++++++++ stable/navidrome/6.11.1/templates/common.yaml | 1 + stable/navidrome/6.11.1/test_values.yaml | 30 + stable/navidrome/6.11.1/values.yaml | 0 stable/node-red/6.11.1/CONFIG.md | 8 + stable/node-red/6.11.1/Chart.lock | 6 + stable/node-red/6.11.1/Chart.yaml | 23 + stable/node-red/6.11.1/README.md | 42 + stable/node-red/6.11.1/app-readme.md | 4 + .../node-red/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/node-red/6.11.1/ix_values.yaml | 15 + stable/node-red/6.11.1/questions.yaml | 1105 +++++++++++ stable/node-red/6.11.1/templates/common.yaml | 1 + stable/node-red/6.11.1/test_values.yaml | 32 + stable/node-red/6.11.1/values.yaml | 0 stable/nullserv/1.9.1/CONFIG.md | 8 + stable/nullserv/1.9.1/Chart.lock | 6 + stable/nullserv/1.9.1/Chart.yaml | 20 + stable/nullserv/1.9.1/README.md | 42 + stable/nullserv/1.9.1/app-readme.md | 4 + .../nullserv/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nullserv/1.9.1/ix_values.yaml | 26 + stable/nullserv/1.9.1/questions.yaml | 1207 ++++++++++++ stable/nullserv/1.9.1/templates/common.yaml | 1 + stable/nullserv/1.9.1/test_values.yaml | 49 + stable/nullserv/1.9.1/values.yaml | 0 stable/nzbget/6.11.1/CONFIG.md | 8 + stable/nzbget/6.11.1/Chart.lock | 6 + stable/nzbget/6.11.1/Chart.yaml | 23 + stable/nzbget/6.11.1/README.md | 42 + stable/nzbget/6.11.1/app-readme.md | 4 + stable/nzbget/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nzbget/6.11.1/ix_values.yaml | 25 + stable/nzbget/6.11.1/questions.yaml | 1105 +++++++++++ stable/nzbget/6.11.1/templates/common.yaml | 1 + stable/nzbget/6.11.1/test_values.yaml | 33 + stable/nzbget/6.11.1/values.yaml | 0 stable/nzbhydra/6.11.1/CONFIG.md | 8 + stable/nzbhydra/6.11.1/Chart.lock | 6 + stable/nzbhydra/6.11.1/Chart.yaml | 20 + stable/nzbhydra/6.11.1/README.md | 44 + stable/nzbhydra/6.11.1/app-readme.md | 4 + .../nzbhydra/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/nzbhydra/6.11.1/ix_values.yaml | 51 + stable/nzbhydra/6.11.1/questions.yaml | 1105 +++++++++++ stable/nzbhydra/6.11.1/templates/common.yaml | 1 + stable/nzbhydra/6.11.1/test_values.yaml | 64 + stable/nzbhydra/6.11.1/values.yaml | 0 stable/octoprint/1.9.1/CONFIG.md | 8 + stable/octoprint/1.9.1/Chart.lock | 6 + stable/octoprint/1.9.1/Chart.yaml | 23 + stable/octoprint/1.9.1/README.md | 43 + stable/octoprint/1.9.1/app-readme.md | 4 + .../octoprint/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/octoprint/1.9.1/ix_values.yaml | 15 + stable/octoprint/1.9.1/questions.yaml | 1114 +++++++++++ stable/octoprint/1.9.1/templates/common.yaml | 1 + stable/octoprint/1.9.1/test_values.yaml | 56 + stable/octoprint/1.9.1/values.yaml | 0 stable/omada-controller/1.9.1/CONFIG.md | 8 + stable/omada-controller/1.9.1/Chart.lock | 6 + stable/omada-controller/1.9.1/Chart.yaml | 22 + stable/omada-controller/1.9.1/README.md | 43 + stable/omada-controller/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/omada-controller/1.9.1/ix_values.yaml | 15 + stable/omada-controller/1.9.1/questions.yaml | 1104 +++++++++++ .../1.9.1/templates/common.yaml | 1 + .../omada-controller/1.9.1/test_values.yaml | 38 + stable/omada-controller/1.9.1/values.yaml | 0 stable/ombi/6.11.1/CONFIG.md | 8 + stable/ombi/6.11.1/Chart.lock | 6 + stable/ombi/6.11.1/Chart.yaml | 30 + stable/ombi/6.11.1/README.md | 42 + stable/ombi/6.11.1/app-readme.md | 4 + stable/ombi/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/ombi/6.11.1/ix_values.yaml | 15 + stable/ombi/6.11.1/questions.yaml | 1104 +++++++++++ stable/ombi/6.11.1/templates/common.yaml | 1 + stable/ombi/6.11.1/test_values.yaml | 42 + stable/ombi/6.11.1/values.yaml | 0 stable/openldap/1.7.1/CONFIG.md | 8 + stable/openldap/1.7.1/Chart.lock | 6 + stable/openldap/1.7.1/Chart.yaml | 29 + stable/openldap/1.7.1/README.md | 43 + stable/openldap/1.7.1/app-readme.md | 4 + .../openldap/1.7.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/openldap/1.7.1/ix_values.yaml | 50 + stable/openldap/1.7.1/questions.yaml | 1062 +++++++++++ .../openldap/1.7.1/templates/_configmap.tpl | 21 + stable/openldap/1.7.1/templates/common.yaml | 8 + stable/openldap/1.7.1/test_values.yaml | 88 + stable/openldap/1.7.1/values.yaml | 0 stable/organizr/6.11.1/CONFIG.md | 8 + stable/organizr/6.11.1/Chart.lock | 6 + stable/organizr/6.11.1/Chart.yaml | 23 + stable/organizr/6.11.1/README.md | 43 + stable/organizr/6.11.1/app-readme.md | 4 + .../organizr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/organizr/6.11.1/ix_values.yaml | 16 + stable/organizr/6.11.1/questions.yaml | 1176 ++++++++++++ stable/organizr/6.11.1/templates/common.yaml | 1 + stable/organizr/6.11.1/test_values.yaml | 28 + stable/organizr/6.11.1/values.yaml | 0 stable/overseerr/1.9.1/CONFIG.md | 8 + stable/overseerr/1.9.1/Chart.lock | 6 + stable/overseerr/1.9.1/Chart.yaml | 26 + stable/overseerr/1.9.1/README.md | 43 + stable/overseerr/1.9.1/app-readme.md | 4 + .../overseerr/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/overseerr/1.9.1/ix_values.yaml | 15 + stable/overseerr/1.9.1/questions.yaml | 1110 +++++++++++ stable/overseerr/1.9.1/templates/common.yaml | 1 + stable/overseerr/1.9.1/test_values.yaml | 41 + stable/overseerr/1.9.1/values.yaml | 0 stable/owncast/1.9.1/CONFIG.md | 8 + stable/owncast/1.9.1/Chart.lock | 6 + stable/owncast/1.9.1/Chart.yaml | 25 + stable/owncast/1.9.1/README.md | 43 + stable/owncast/1.9.1/app-readme.md | 4 + stable/owncast/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/owncast/1.9.1/ix_values.yaml | 15 + stable/owncast/1.9.1/questions.yaml | 1201 ++++++++++++ stable/owncast/1.9.1/templates/common.yaml | 1 + stable/owncast/1.9.1/test_values.yaml | 44 + stable/owncast/1.9.1/values.yaml | 0 stable/owncloud-ocis/1.9.1/CONFIG.md | 8 + stable/owncloud-ocis/1.9.1/Chart.lock | 6 + stable/owncloud-ocis/1.9.1/Chart.yaml | 28 + stable/owncloud-ocis/1.9.1/README.md | 43 + stable/owncloud-ocis/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/owncloud-ocis/1.9.1/ix_values.yaml | 15 + stable/owncloud-ocis/1.9.1/questions.yaml | 1104 +++++++++++ .../owncloud-ocis/1.9.1/templates/common.yaml | 1 + stable/owncloud-ocis/1.9.1/test_values.yaml | 42 + stable/owncloud-ocis/1.9.1/values.yaml | 0 stable/pgadmin/1.8.1/CONFIG.md | 8 + stable/pgadmin/1.8.1/Chart.lock | 6 + stable/pgadmin/1.8.1/Chart.yaml | 27 + stable/pgadmin/1.8.1/README.md | 42 + stable/pgadmin/1.8.1/app-readme.md | 4 + stable/pgadmin/1.8.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/pgadmin/1.8.1/ix_values.yaml | 16 + stable/pgadmin/1.8.1/questions.yaml | 1113 +++++++++++ stable/pgadmin/1.8.1/templates/common.yaml | 1 + stable/pgadmin/1.8.1/test_values.yaml | 28 + stable/pgadmin/1.8.1/values.yaml | 0 stable/photoprism/1.9.1/CONFIG.md | 8 + stable/photoprism/1.9.1/Chart.lock | 6 + stable/photoprism/1.9.1/Chart.yaml | 25 + stable/photoprism/1.9.1/README.md | 43 + stable/photoprism/1.9.1/app-readme.md | 4 + .../photoprism/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/photoprism/1.9.1/ix_values.yaml | 15 + stable/photoprism/1.9.1/questions.yaml | 1141 +++++++++++ stable/photoprism/1.9.1/templates/common.yaml | 1 + stable/photoprism/1.9.1/test_values.yaml | 57 + stable/photoprism/1.9.1/values.yaml | 0 stable/phpldapadmin/1.8.1/CONFIG.md | 8 + stable/phpldapadmin/1.8.1/Chart.lock | 6 + stable/phpldapadmin/1.8.1/Chart.yaml | 27 + stable/phpldapadmin/1.8.1/README.md | 42 + stable/phpldapadmin/1.8.1/app-readme.md | 4 + .../1.8.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/phpldapadmin/1.8.1/ix_values.yaml | 16 + stable/phpldapadmin/1.8.1/questions.yaml | 1000 ++++++++++ .../phpldapadmin/1.8.1/templates/common.yaml | 1 + stable/phpldapadmin/1.8.1/test_values.yaml | 21 + stable/phpldapadmin/1.8.1/values.yaml | 0 stable/piaware/1.9.1/CONFIG.md | 8 + stable/piaware/1.9.1/Chart.lock | 6 + stable/piaware/1.9.1/Chart.yaml | 22 + stable/piaware/1.9.1/README.md | 42 + stable/piaware/1.9.1/app-readme.md | 4 + stable/piaware/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/piaware/1.9.1/ci/ct-values.yaml | 3 + stable/piaware/1.9.1/ix_values.yaml | 15 + stable/piaware/1.9.1/questions.yaml | 1144 +++++++++++ stable/piaware/1.9.1/templates/common.yaml | 1 + stable/piaware/1.9.1/test_values.yaml | 55 + stable/piaware/1.9.1/values.yaml | 0 stable/plex/5.11.1/CONFIG.md | 8 + stable/plex/5.11.1/Chart.lock | 6 + stable/plex/5.11.1/Chart.yaml | 25 + stable/plex/5.11.1/README.md | 38 + stable/plex/5.11.1/app-readme.md | 4 + stable/plex/5.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/plex/5.11.1/ix_values.yaml | 15 + stable/plex/5.11.1/questions.yaml | 1132 +++++++++++ stable/plex/5.11.1/templates/common.yaml | 1 + stable/plex/5.11.1/test_values.yaml | 34 + stable/plex/5.11.1/values.yaml | 0 stable/podgrab/4.11.1/CONFIG.md | 8 + stable/podgrab/4.11.1/Chart.lock | 6 + stable/podgrab/4.11.1/Chart.yaml | 27 + stable/podgrab/4.11.1/README.md | 43 + stable/podgrab/4.11.1/app-readme.md | 4 + .../podgrab/4.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/podgrab/4.11.1/ix_values.yaml | 26 + stable/podgrab/4.11.1/questions.yaml | 1113 +++++++++++ stable/podgrab/4.11.1/templates/common.yaml | 1 + stable/podgrab/4.11.1/test_values.yaml | 61 + stable/podgrab/4.11.1/values.yaml | 0 stable/postgresql/1.5.1/CONFIG.md | 8 + stable/postgresql/1.5.1/Chart.lock | 6 + stable/postgresql/1.5.1/Chart.yaml | 28 + stable/postgresql/1.5.1/README.md | 42 + stable/postgresql/1.5.1/app-readme.md | 4 + .../postgresql/1.5.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/postgresql/1.5.1/ix_values.yaml | 28 + stable/postgresql/1.5.1/questions.yaml | 1067 +++++++++++ .../templates/backup-postgres-config.yaml | 15 + stable/postgresql/1.5.1/templates/common.yaml | 2 + stable/postgresql/1.5.1/templates/secret.yaml | 13 + .../upgrade-backup-postgres-hook.yaml | 56 + stable/postgresql/1.5.1/test_values.yaml | 50 + stable/postgresql/1.5.1/values.yaml | 0 stable/pretend-youre-xyzzy/1.9.1/CONFIG.md | 8 + stable/pretend-youre-xyzzy/1.9.1/Chart.lock | 6 + stable/pretend-youre-xyzzy/1.9.1/Chart.yaml | 24 + stable/pretend-youre-xyzzy/1.9.1/README.md | 43 + .../pretend-youre-xyzzy/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../pretend-youre-xyzzy/1.9.1/ix_values.yaml | 15 + .../pretend-youre-xyzzy/1.9.1/questions.yaml | 987 ++++++++++ .../1.9.1/templates/common.yaml | 1 + .../1.9.1/test_values.yaml | 22 + stable/pretend-youre-xyzzy/1.9.1/values.yaml | 0 stable/protonmail-bridge/1.9.1/CONFIG.md | 8 + stable/protonmail-bridge/1.9.1/Chart.lock | 6 + stable/protonmail-bridge/1.9.1/Chart.yaml | 22 + stable/protonmail-bridge/1.9.1/README.md | 43 + stable/protonmail-bridge/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/protonmail-bridge/1.9.1/ix_values.yaml | 21 + stable/protonmail-bridge/1.9.1/questions.yaml | 1116 +++++++++++ .../1.9.1/templates/common.yaml | 1 + .../protonmail-bridge/1.9.1/test_values.yaml | 43 + stable/protonmail-bridge/1.9.1/values.yaml | 0 stable/prowlarr/1.11.1/CONFIG.md | 8 + stable/prowlarr/1.11.1/Chart.lock | 6 + stable/prowlarr/1.11.1/Chart.yaml | 24 + stable/prowlarr/1.11.1/README.md | 43 + stable/prowlarr/1.11.1/app-readme.md | 4 + .../prowlarr/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/prowlarr/1.11.1/ix_values.yaml | 19 + stable/prowlarr/1.11.1/questions.yaml | 1106 +++++++++++ stable/prowlarr/1.11.1/templates/common.yaml | 1 + stable/prowlarr/1.11.1/test_values.yaml | 48 + stable/prowlarr/1.11.1/values.yaml | 0 stable/pyload/1.9.1/CONFIG.md | 8 + stable/pyload/1.9.1/Chart.lock | 6 + stable/pyload/1.9.1/Chart.yaml | 24 + stable/pyload/1.9.1/README.md | 43 + stable/pyload/1.9.1/app-readme.md | 4 + stable/pyload/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/pyload/1.9.1/ix_values.yaml | 15 + stable/pyload/1.9.1/questions.yaml | 1116 +++++++++++ stable/pyload/1.9.1/templates/common.yaml | 1 + stable/pyload/1.9.1/test_values.yaml | 44 + stable/pyload/1.9.1/values.yaml | 0 stable/qbittorrent/6.11.1/CONFIG.md | 8 + stable/qbittorrent/6.11.1/Chart.lock | 6 + stable/qbittorrent/6.11.1/Chart.yaml | 22 + stable/qbittorrent/6.11.1/README.md | 38 + stable/qbittorrent/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/qbittorrent/6.11.1/ix_values.yaml | 15 + stable/qbittorrent/6.11.1/questions.yaml | 1250 ++++++++++++ .../6.11.1/templates/_configmap.tpl | 32 + .../qbittorrent/6.11.1/templates/common.yaml | 6 + stable/qbittorrent/6.11.1/test_values.yaml | 54 + stable/qbittorrent/6.11.1/values.yaml | 0 stable/radarr/6.11.1/CONFIG.md | 8 + stable/radarr/6.11.1/Chart.lock | 6 + stable/radarr/6.11.1/Chart.yaml | 27 + stable/radarr/6.11.1/README.md | 42 + stable/radarr/6.11.1/app-readme.md | 4 + stable/radarr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/radarr/6.11.1/ix_values.yaml | 37 + stable/radarr/6.11.1/questions.yaml | 1104 +++++++++++ stable/radarr/6.11.1/templates/common.yaml | 1 + stable/radarr/6.11.1/test_values.yaml | 49 + stable/radarr/6.11.1/values.yaml | 0 stable/readarr/6.11.1/CONFIG.md | 8 + stable/readarr/6.11.1/Chart.lock | 6 + stable/readarr/6.11.1/Chart.yaml | 30 + stable/readarr/6.11.1/README.md | 43 + stable/readarr/6.11.1/app-readme.md | 4 + .../readarr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/readarr/6.11.1/ix_values.yaml | 37 + stable/readarr/6.11.1/questions.yaml | 1105 +++++++++++ stable/readarr/6.11.1/templates/common.yaml | 1 + stable/readarr/6.11.1/test_values.yaml | 49 + stable/readarr/6.11.1/values.yaml | 0 stable/reg/1.11.1/CONFIG.md | 8 + stable/reg/1.11.1/Chart.lock | 6 + stable/reg/1.11.1/Chart.yaml | 22 + stable/reg/1.11.1/README.md | 43 + stable/reg/1.11.1/app-readme.md | 4 + stable/reg/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/reg/1.11.1/ci/ct-values.yaml | 2 + stable/reg/1.11.1/ix_values.yaml | 19 + stable/reg/1.11.1/questions.yaml | 1100 +++++++++++ stable/reg/1.11.1/templates/common.yaml | 1 + stable/reg/1.11.1/test_values.yaml | 40 + stable/reg/1.11.1/values.yaml | 0 stable/resilio-sync/1.9.1/CONFIG.md | 8 + stable/resilio-sync/1.9.1/Chart.lock | 6 + stable/resilio-sync/1.9.1/Chart.yaml | 24 + stable/resilio-sync/1.9.1/README.md | 42 + stable/resilio-sync/1.9.1/app-readme.md | 4 + .../1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/resilio-sync/1.9.1/ix_values.yaml | 15 + stable/resilio-sync/1.9.1/questions.yaml | 1293 +++++++++++++ .../resilio-sync/1.9.1/templates/common.yaml | 1 + stable/resilio-sync/1.9.1/test_values.yaml | 75 + stable/resilio-sync/1.9.1/values.yaml | 0 stable/sabnzbd/6.11.1/CONFIG.md | 8 + stable/sabnzbd/6.11.1/Chart.lock | 6 + stable/sabnzbd/6.11.1/Chart.yaml | 23 + stable/sabnzbd/6.11.1/README.md | 42 + stable/sabnzbd/6.11.1/app-readme.md | 4 + .../sabnzbd/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/sabnzbd/6.11.1/ix_values.yaml | 15 + stable/sabnzbd/6.11.1/questions.yaml | 1112 +++++++++++ stable/sabnzbd/6.11.1/templates/common.yaml | 1 + stable/sabnzbd/6.11.1/test_values.yaml | 28 + stable/sabnzbd/6.11.1/values.yaml | 0 stable/ser2sock/1.9.1/CONFIG.md | 8 + stable/ser2sock/1.9.1/Chart.lock | 6 + stable/ser2sock/1.9.1/Chart.yaml | 21 + stable/ser2sock/1.9.1/README.md | 43 + stable/ser2sock/1.9.1/app-readme.md | 4 + .../ser2sock/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/ser2sock/1.9.1/ix_values.yaml | 15 + stable/ser2sock/1.9.1/questions.yaml | 1165 +++++++++++ stable/ser2sock/1.9.1/templates/common.yaml | 1 + stable/ser2sock/1.9.1/test_values.yaml | 63 + stable/ser2sock/1.9.1/values.yaml | 0 stable/sonarr/6.11.1/CONFIG.md | 8 + stable/sonarr/6.11.1/Chart.lock | 6 + stable/sonarr/6.11.1/Chart.yaml | 27 + stable/sonarr/6.11.1/README.md | 42 + stable/sonarr/6.11.1/app-readme.md | 4 + stable/sonarr/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/sonarr/6.11.1/ix_values.yaml | 37 + stable/sonarr/6.11.1/questions.yaml | 1104 +++++++++++ stable/sonarr/6.11.1/templates/common.yaml | 1 + stable/sonarr/6.11.1/test_values.yaml | 49 + stable/sonarr/6.11.1/values.yaml | 0 stable/stash/1.9.1/CONFIG.md | 8 + stable/stash/1.9.1/Chart.lock | 6 + stable/stash/1.9.1/Chart.yaml | 21 + stable/stash/1.9.1/README.md | 43 + stable/stash/1.9.1/app-readme.md | 4 + stable/stash/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/stash/1.9.1/ci/ct-values.yaml | 15 + stable/stash/1.9.1/ix_values.yaml | 15 + stable/stash/1.9.1/questions.yaml | 1109 +++++++++++ stable/stash/1.9.1/templates/common.yaml | 1 + stable/stash/1.9.1/test_values.yaml | 47 + stable/stash/1.9.1/values.yaml | 0 stable/syncthing/6.11.1/CONFIG.md | 8 + stable/syncthing/6.11.1/Chart.lock | 6 + stable/syncthing/6.11.1/Chart.yaml | 27 + stable/syncthing/6.11.1/README.md | 44 + stable/syncthing/6.11.1/app-readme.md | 4 + .../syncthing/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/syncthing/6.11.1/ix_values.yaml | 15 + stable/syncthing/6.11.1/questions.yaml | 1362 +++++++++++++ stable/syncthing/6.11.1/templates/common.yaml | 1 + stable/syncthing/6.11.1/test_values.yaml | 40 + stable/syncthing/6.11.1/values.yaml | 0 stable/tautulli/6.11.1/CONFIG.md | 8 + stable/tautulli/6.11.1/Chart.lock | 6 + stable/tautulli/6.11.1/Chart.yaml | 26 + stable/tautulli/6.11.1/README.md | 42 + stable/tautulli/6.11.1/app-readme.md | 4 + .../tautulli/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/tautulli/6.11.1/ix_values.yaml | 15 + stable/tautulli/6.11.1/questions.yaml | 1104 +++++++++++ stable/tautulli/6.11.1/templates/common.yaml | 1 + stable/tautulli/6.11.1/test_values.yaml | 28 + stable/tautulli/6.11.1/values.yaml | 0 stable/thelounge/1.11.1/CONFIG.md | 8 + stable/thelounge/1.11.1/Chart.lock | 6 + stable/thelounge/1.11.1/Chart.yaml | 24 + stable/thelounge/1.11.1/README.md | 42 + stable/thelounge/1.11.1/app-readme.md | 4 + .../thelounge/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/thelounge/1.11.1/ix_values.yaml | 19 + stable/thelounge/1.11.1/questions.yaml | 1062 +++++++++++ stable/thelounge/1.11.1/templates/common.yaml | 1 + stable/thelounge/1.11.1/test_values.yaml | 46 + stable/thelounge/1.11.1/values.yaml | 0 stable/traefik/6.13.0/Chart.lock | 2 +- stable/transmission/6.11.1/CONFIG.md | 8 + stable/transmission/6.11.1/Chart.lock | 6 + stable/transmission/6.11.1/Chart.yaml | 28 + stable/transmission/6.11.1/README.md | 43 + stable/transmission/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/transmission/6.11.1/ix_values.yaml | 50 + stable/transmission/6.11.1/questions.yaml | 1591 ++++++++++++++++ .../transmission/6.11.1/templates/common.yaml | 2 + stable/transmission/6.11.1/test_values.yaml | 108 ++ stable/transmission/6.11.1/values.yaml | 0 stable/truecommand/6.11.1/CONFIG.md | 8 + stable/truecommand/6.11.1/Chart.lock | 6 + stable/truecommand/6.11.1/Chart.yaml | 25 + stable/truecommand/6.11.1/README.md | 42 + stable/truecommand/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/truecommand/6.11.1/ix_values.yaml | 15 + stable/truecommand/6.11.1/questions.yaml | 1066 +++++++++++ .../truecommand/6.11.1/templates/common.yaml | 1 + stable/truecommand/6.11.1/test_values.yaml | 28 + stable/truecommand/6.11.1/values.yaml | 0 stable/tvheadend/7.11.1/CONFIG.md | 8 + stable/tvheadend/7.11.1/Chart.lock | 6 + stable/tvheadend/7.11.1/Chart.yaml | 25 + stable/tvheadend/7.11.1/README.md | 42 + stable/tvheadend/7.11.1/app-readme.md | 4 + .../tvheadend/7.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/tvheadend/7.11.1/ix_values.yaml | 15 + stable/tvheadend/7.11.1/questions.yaml | 1161 +++++++++++ stable/tvheadend/7.11.1/templates/common.yaml | 1 + stable/tvheadend/7.11.1/test_values.yaml | 38 + stable/tvheadend/7.11.1/values.yaml | 0 stable/unifi/6.11.1/CONFIG.md | 8 + stable/unifi/6.11.1/Chart.lock | 6 + stable/unifi/6.11.1/Chart.yaml | 24 + stable/unifi/6.11.1/README.md | 43 + stable/unifi/6.11.1/app-readme.md | 4 + stable/unifi/6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/unifi/6.11.1/ix_values.yaml | 19 + stable/unifi/6.11.1/questions.yaml | 1257 ++++++++++++ stable/unifi/6.11.1/templates/common.yaml | 1 + stable/unifi/6.11.1/test_values.yaml | 50 + stable/unifi/6.11.1/values.yaml | 0 stable/unpackerr/1.11.1/CONFIG.md | 8 + stable/unpackerr/1.11.1/Chart.lock | 6 + stable/unpackerr/1.11.1/Chart.yaml | 29 + stable/unpackerr/1.11.1/README.md | 43 + stable/unpackerr/1.11.1/app-readme.md | 4 + .../unpackerr/1.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/unpackerr/1.11.1/ix_values.yaml | 32 + stable/unpackerr/1.11.1/questions.yaml | 978 ++++++++++ stable/unpackerr/1.11.1/templates/common.yaml | 1 + stable/unpackerr/1.11.1/test_values.yaml | 53 + stable/unpackerr/1.11.1/values.yaml | 0 stable/vaultwarden/4.7.1/CONFIG.md | 8 + stable/vaultwarden/4.7.1/Chart.lock | 9 + stable/vaultwarden/4.7.1/Chart.yaml | 34 + stable/vaultwarden/4.7.1/README.md | 43 + stable/vaultwarden/4.7.1/app-readme.md | 4 + .../4.7.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes .../4.7.1/charts/postgresql-1.3.0.tgz | Bin 0 -> 30700 bytes stable/vaultwarden/4.7.1/ix_values.yaml | 55 + stable/vaultwarden/4.7.1/questions.yaml | 1497 +++++++++++++++ .../4.7.1/templates/_configmap.tpl | 116 ++ .../vaultwarden/4.7.1/templates/_secrets.tpl | 59 + .../vaultwarden/4.7.1/templates/_validate.tpl | 17 + .../vaultwarden/4.7.1/templates/common.yaml | 11 + stable/vaultwarden/4.7.1/test_values.yaml | 161 ++ stable/vaultwarden/4.7.1/values.yaml | 0 stable/xteve/1.9.1/CONFIG.md | 8 + stable/xteve/1.9.1/Chart.lock | 6 + stable/xteve/1.9.1/Chart.yaml | 24 + stable/xteve/1.9.1/README.md | 43 + stable/xteve/1.9.1/app-readme.md | 4 + stable/xteve/1.9.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/xteve/1.9.1/ix_values.yaml | 15 + stable/xteve/1.9.1/questions.yaml | 1104 +++++++++++ stable/xteve/1.9.1/templates/common.yaml | 1 + stable/xteve/1.9.1/test_values.yaml | 36 + stable/xteve/1.9.1/values.yaml | 0 stable/zwavejs2mqtt/6.11.1/CONFIG.md | 8 + stable/zwavejs2mqtt/6.11.1/Chart.lock | 6 + stable/zwavejs2mqtt/6.11.1/Chart.yaml | 30 + stable/zwavejs2mqtt/6.11.1/README.md | 43 + stable/zwavejs2mqtt/6.11.1/app-readme.md | 4 + .../6.11.1/charts/common-6.12.1.tgz | Bin 0 -> 25243 bytes stable/zwavejs2mqtt/6.11.1/ix_values.yaml | 58 + stable/zwavejs2mqtt/6.11.1/questions.yaml | 1233 ++++++++++++ .../zwavejs2mqtt/6.11.1/templates/common.yaml | 1 + stable/zwavejs2mqtt/6.11.1/test_values.yaml | 105 + stable/zwavejs2mqtt/6.11.1/values.yaml | 0 1010 files changed, 117445 insertions(+), 2 deletions(-) create mode 100644 incubator/authelia/1.3.1/CONFIG.md create mode 100644 incubator/authelia/1.3.1/Chart.lock create mode 100644 incubator/authelia/1.3.1/Chart.yaml create mode 100644 incubator/authelia/1.3.1/README.md create mode 100644 incubator/authelia/1.3.1/app-readme.md create mode 100644 incubator/authelia/1.3.1/charts/common-6.12.1.tgz create mode 100644 incubator/authelia/1.3.1/charts/postgresql-1.3.0.tgz create mode 100644 incubator/authelia/1.3.1/charts/redis-15.0.3.tgz create mode 100644 incubator/authelia/1.3.1/ix_values.yaml create mode 100644 incubator/authelia/1.3.1/questions.yaml create mode 100644 incubator/authelia/1.3.1/templates/_configmap.tpl create mode 100644 incubator/authelia/1.3.1/templates/_secrets.tpl create mode 100644 incubator/authelia/1.3.1/templates/common.yaml create mode 100644 incubator/authelia/1.3.1/test_values.yaml create mode 100644 incubator/authelia/1.3.1/values.yaml create mode 100644 incubator/custom-app/0.2.2/CONFIG.md create mode 100644 incubator/custom-app/0.2.2/Chart.lock create mode 100644 incubator/custom-app/0.2.2/Chart.yaml create mode 100644 incubator/custom-app/0.2.2/README.md create mode 100644 incubator/custom-app/0.2.2/app-readme.md create mode 100644 incubator/custom-app/0.2.2/charts/common-6.12.1.tgz create mode 100644 incubator/custom-app/0.2.2/ix_values.yaml create mode 100644 incubator/custom-app/0.2.2/questions.yaml create mode 100644 incubator/custom-app/0.2.2/templates/common.yaml create mode 100644 incubator/custom-app/0.2.2/test_values.yaml create mode 100644 incubator/custom-app/0.2.2/values.yaml create mode 100644 incubator/jdownloader2/0.3.1/CONFIG.md create mode 100644 incubator/jdownloader2/0.3.1/Chart.lock create mode 100644 incubator/jdownloader2/0.3.1/Chart.yaml create mode 100644 incubator/jdownloader2/0.3.1/README.md create mode 100644 incubator/jdownloader2/0.3.1/app-readme.md create mode 100644 incubator/jdownloader2/0.3.1/charts/common-6.12.1.tgz create mode 100644 incubator/jdownloader2/0.3.1/ix_values.yaml create mode 100644 incubator/jdownloader2/0.3.1/questions.yaml create mode 100644 incubator/jdownloader2/0.3.1/templates/common.yaml create mode 100644 incubator/jdownloader2/0.3.1/test_values.yaml create mode 100644 incubator/jdownloader2/0.3.1/values.yaml create mode 100644 incubator/nextcloud/3.4.1/CONFIG.md create mode 100644 incubator/nextcloud/3.4.1/Chart.lock create mode 100644 incubator/nextcloud/3.4.1/Chart.yaml create mode 100644 incubator/nextcloud/3.4.1/README.md create mode 100644 incubator/nextcloud/3.4.1/app-readme.md create mode 100644 incubator/nextcloud/3.4.1/charts/common-6.12.1.tgz create mode 100644 incubator/nextcloud/3.4.1/charts/postgresql-1.3.0.tgz create mode 100644 incubator/nextcloud/3.4.1/charts/redis-15.0.3.tgz create mode 100644 incubator/nextcloud/3.4.1/ix_values.yaml create mode 100644 incubator/nextcloud/3.4.1/questions.yaml create mode 100644 incubator/nextcloud/3.4.1/templates/_configmap.tpl create mode 100644 incubator/nextcloud/3.4.1/templates/_cronjob.tpl create mode 100644 incubator/nextcloud/3.4.1/templates/_secrets.tpl create mode 100644 incubator/nextcloud/3.4.1/templates/common.yaml create mode 100644 incubator/nextcloud/3.4.1/test_values.yaml create mode 100644 incubator/nextcloud/3.4.1/values.yaml create mode 100644 stable/airsonic/1.11.1/CONFIG.md create mode 100644 stable/airsonic/1.11.1/Chart.lock create mode 100644 stable/airsonic/1.11.1/Chart.yaml create mode 100644 stable/airsonic/1.11.1/README.md create mode 100644 stable/airsonic/1.11.1/app-readme.md create mode 100644 stable/airsonic/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/airsonic/1.11.1/ix_values.yaml create mode 100644 stable/airsonic/1.11.1/questions.yaml create mode 100644 stable/airsonic/1.11.1/templates/common.yaml create mode 100644 stable/airsonic/1.11.1/test_values.yaml create mode 100644 stable/airsonic/1.11.1/values.yaml create mode 100644 stable/appdaemon/3.11.1/CONFIG.md create mode 100644 stable/appdaemon/3.11.1/Chart.lock create mode 100644 stable/appdaemon/3.11.1/Chart.yaml create mode 100644 stable/appdaemon/3.11.1/README.md create mode 100644 stable/appdaemon/3.11.1/app-readme.md create mode 100644 stable/appdaemon/3.11.1/charts/common-6.12.1.tgz create mode 100644 stable/appdaemon/3.11.1/ix_values.yaml create mode 100644 stable/appdaemon/3.11.1/questions.yaml create mode 100644 stable/appdaemon/3.11.1/templates/common.yaml create mode 100644 stable/appdaemon/3.11.1/test_values.yaml create mode 100644 stable/appdaemon/3.11.1/values.yaml create mode 100644 stable/bazarr/6.11.1/CONFIG.md create mode 100644 stable/bazarr/6.11.1/Chart.lock create mode 100644 stable/bazarr/6.11.1/Chart.yaml create mode 100644 stable/bazarr/6.11.1/README.md create mode 100644 stable/bazarr/6.11.1/app-readme.md create mode 100644 stable/bazarr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/bazarr/6.11.1/ix_values.yaml create mode 100644 stable/bazarr/6.11.1/questions.yaml create mode 100644 stable/bazarr/6.11.1/templates/common.yaml create mode 100644 stable/bazarr/6.11.1/test_values.yaml create mode 100644 stable/bazarr/6.11.1/values.yaml create mode 100644 stable/booksonic-air/1.9.1/CONFIG.md create mode 100644 stable/booksonic-air/1.9.1/Chart.lock create mode 100644 stable/booksonic-air/1.9.1/Chart.yaml create mode 100644 stable/booksonic-air/1.9.1/README.md create mode 100644 stable/booksonic-air/1.9.1/app-readme.md create mode 100644 stable/booksonic-air/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/booksonic-air/1.9.1/ix_values.yaml create mode 100644 stable/booksonic-air/1.9.1/questions.yaml create mode 100644 stable/booksonic-air/1.9.1/templates/common.yaml create mode 100644 stable/booksonic-air/1.9.1/test_values.yaml create mode 100644 stable/booksonic-air/1.9.1/values.yaml create mode 100644 stable/calibre-web/6.11.1/CONFIG.md create mode 100644 stable/calibre-web/6.11.1/Chart.lock create mode 100644 stable/calibre-web/6.11.1/Chart.yaml create mode 100644 stable/calibre-web/6.11.1/README.md create mode 100644 stable/calibre-web/6.11.1/app-readme.md create mode 100644 stable/calibre-web/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/calibre-web/6.11.1/ix_values.yaml create mode 100644 stable/calibre-web/6.11.1/questions.yaml create mode 100644 stable/calibre-web/6.11.1/templates/common.yaml create mode 100644 stable/calibre-web/6.11.1/test_values.yaml create mode 100644 stable/calibre-web/6.11.1/values.yaml create mode 100644 stable/calibre/1.9.1/CONFIG.md create mode 100644 stable/calibre/1.9.1/Chart.lock create mode 100644 stable/calibre/1.9.1/Chart.yaml create mode 100644 stable/calibre/1.9.1/README.md create mode 100644 stable/calibre/1.9.1/app-readme.md create mode 100644 stable/calibre/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/calibre/1.9.1/ix_values.yaml create mode 100644 stable/calibre/1.9.1/questions.yaml create mode 100644 stable/calibre/1.9.1/templates/common.yaml create mode 100644 stable/calibre/1.9.1/test_values.yaml create mode 100644 stable/calibre/1.9.1/values.yaml create mode 100644 stable/collabora-online/6.11.1/CONFIG.md create mode 100644 stable/collabora-online/6.11.1/Chart.lock create mode 100644 stable/collabora-online/6.11.1/Chart.yaml create mode 100644 stable/collabora-online/6.11.1/README.md create mode 100644 stable/collabora-online/6.11.1/app-readme.md create mode 100644 stable/collabora-online/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/collabora-online/6.11.1/ix_values.yaml create mode 100644 stable/collabora-online/6.11.1/questions.yaml create mode 100644 stable/collabora-online/6.11.1/templates/common.yaml create mode 100644 stable/collabora-online/6.11.1/test_values.yaml create mode 100644 stable/collabora-online/6.11.1/values.yaml create mode 100644 stable/deconz/1.9.1/CONFIG.md create mode 100644 stable/deconz/1.9.1/Chart.lock create mode 100644 stable/deconz/1.9.1/Chart.yaml create mode 100644 stable/deconz/1.9.1/README.md create mode 100644 stable/deconz/1.9.1/app-readme.md create mode 100644 stable/deconz/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/deconz/1.9.1/ix_values.yaml create mode 100644 stable/deconz/1.9.1/questions.yaml create mode 100644 stable/deconz/1.9.1/templates/common.yaml create mode 100644 stable/deconz/1.9.1/test_values.yaml create mode 100644 stable/deconz/1.9.1/values.yaml create mode 100644 stable/deepstack-cpu/4.11.1/CONFIG.md create mode 100644 stable/deepstack-cpu/4.11.1/Chart.lock create mode 100644 stable/deepstack-cpu/4.11.1/Chart.yaml create mode 100644 stable/deepstack-cpu/4.11.1/README.md create mode 100644 stable/deepstack-cpu/4.11.1/app-readme.md create mode 100644 stable/deepstack-cpu/4.11.1/charts/common-6.12.1.tgz create mode 100644 stable/deepstack-cpu/4.11.1/ix_values.yaml create mode 100644 stable/deepstack-cpu/4.11.1/questions.yaml create mode 100644 stable/deepstack-cpu/4.11.1/templates/common.yaml create mode 100644 stable/deepstack-cpu/4.11.1/test_values.yaml create mode 100644 stable/deepstack-cpu/4.11.1/values.yaml create mode 100644 stable/deluge/6.11.1/CONFIG.md create mode 100644 stable/deluge/6.11.1/Chart.lock create mode 100644 stable/deluge/6.11.1/Chart.yaml create mode 100644 stable/deluge/6.11.1/README.md create mode 100644 stable/deluge/6.11.1/app-readme.md create mode 100644 stable/deluge/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/deluge/6.11.1/ix_values.yaml create mode 100644 stable/deluge/6.11.1/questions.yaml create mode 100644 stable/deluge/6.11.1/templates/common.yaml create mode 100644 stable/deluge/6.11.1/test_values.yaml create mode 100644 stable/deluge/6.11.1/values.yaml create mode 100644 stable/dizquetv/1.9.1/CONFIG.md create mode 100644 stable/dizquetv/1.9.1/Chart.lock create mode 100644 stable/dizquetv/1.9.1/Chart.yaml create mode 100644 stable/dizquetv/1.9.1/README.md create mode 100644 stable/dizquetv/1.9.1/app-readme.md create mode 100644 stable/dizquetv/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/dizquetv/1.9.1/ix_values.yaml create mode 100644 stable/dizquetv/1.9.1/questions.yaml create mode 100644 stable/dizquetv/1.9.1/templates/common.yaml create mode 100644 stable/dizquetv/1.9.1/test_values.yaml create mode 100644 stable/dizquetv/1.9.1/values.yaml create mode 100644 stable/duplicati/1.9.1/CONFIG.md create mode 100644 stable/duplicati/1.9.1/Chart.lock create mode 100644 stable/duplicati/1.9.1/Chart.yaml create mode 100644 stable/duplicati/1.9.1/README.md create mode 100644 stable/duplicati/1.9.1/app-readme.md create mode 100644 stable/duplicati/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/duplicati/1.9.1/ix_values.yaml create mode 100644 stable/duplicati/1.9.1/questions.yaml create mode 100644 stable/duplicati/1.9.1/templates/common.yaml create mode 100644 stable/duplicati/1.9.1/test_values.yaml create mode 100644 stable/duplicati/1.9.1/values.yaml create mode 100644 stable/emby/6.11.1/CONFIG.md create mode 100644 stable/emby/6.11.1/Chart.lock create mode 100644 stable/emby/6.11.1/Chart.yaml create mode 100644 stable/emby/6.11.1/README.md create mode 100644 stable/emby/6.11.1/app-readme.md create mode 100644 stable/emby/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/emby/6.11.1/ix_values.yaml create mode 100644 stable/emby/6.11.1/questions.yaml create mode 100644 stable/emby/6.11.1/templates/common.yaml create mode 100644 stable/emby/6.11.1/test_values.yaml create mode 100644 stable/emby/6.11.1/values.yaml create mode 100644 stable/esphome/6.11.1/CONFIG.md create mode 100644 stable/esphome/6.11.1/Chart.lock create mode 100644 stable/esphome/6.11.1/Chart.yaml create mode 100644 stable/esphome/6.11.1/README.md create mode 100644 stable/esphome/6.11.1/app-readme.md create mode 100644 stable/esphome/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/esphome/6.11.1/ix_values.yaml create mode 100644 stable/esphome/6.11.1/questions.yaml create mode 100644 stable/esphome/6.11.1/templates/common.yaml create mode 100644 stable/esphome/6.11.1/test_values.yaml create mode 100644 stable/esphome/6.11.1/values.yaml create mode 100644 stable/fireflyiii/5.7.1/CONFIG.md create mode 100644 stable/fireflyiii/5.7.1/Chart.lock create mode 100644 stable/fireflyiii/5.7.1/Chart.yaml create mode 100644 stable/fireflyiii/5.7.1/README.md create mode 100644 stable/fireflyiii/5.7.1/app-readme.md create mode 100644 stable/fireflyiii/5.7.1/charts/common-6.12.1.tgz create mode 100644 stable/fireflyiii/5.7.1/charts/postgresql-1.3.0.tgz create mode 100644 stable/fireflyiii/5.7.1/ix_values.yaml create mode 100644 stable/fireflyiii/5.7.1/questions.yaml create mode 100644 stable/fireflyiii/5.7.1/templates/common.yaml create mode 100644 stable/fireflyiii/5.7.1/templates/secrets.yaml create mode 100644 stable/fireflyiii/5.7.1/test_values.yaml create mode 100644 stable/fireflyiii/5.7.1/values.yaml create mode 100644 stable/flaresolverr/1.9.1/CONFIG.md create mode 100644 stable/flaresolverr/1.9.1/Chart.lock create mode 100644 stable/flaresolverr/1.9.1/Chart.yaml create mode 100644 stable/flaresolverr/1.9.1/README.md create mode 100644 stable/flaresolverr/1.9.1/app-readme.md create mode 100644 stable/flaresolverr/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/flaresolverr/1.9.1/ix_values.yaml create mode 100644 stable/flaresolverr/1.9.1/questions.yaml create mode 100644 stable/flaresolverr/1.9.1/templates/common.yaml create mode 100644 stable/flaresolverr/1.9.1/test_values.yaml create mode 100644 stable/flaresolverr/1.9.1/values.yaml create mode 100644 stable/flood/1.9.1/CONFIG.md create mode 100644 stable/flood/1.9.1/Chart.lock create mode 100644 stable/flood/1.9.1/Chart.yaml create mode 100644 stable/flood/1.9.1/README.md create mode 100644 stable/flood/1.9.1/app-readme.md create mode 100644 stable/flood/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/flood/1.9.1/ci/ct-values.yaml create mode 100644 stable/flood/1.9.1/ix_values.yaml create mode 100644 stable/flood/1.9.1/questions.yaml create mode 100644 stable/flood/1.9.1/templates/common.yaml create mode 100644 stable/flood/1.9.1/test_values.yaml create mode 100644 stable/flood/1.9.1/values.yaml create mode 100644 stable/focalboard/1.9.1/CONFIG.md create mode 100644 stable/focalboard/1.9.1/Chart.lock create mode 100644 stable/focalboard/1.9.1/Chart.yaml create mode 100644 stable/focalboard/1.9.1/README.md create mode 100644 stable/focalboard/1.9.1/app-readme.md create mode 100644 stable/focalboard/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/focalboard/1.9.1/ix_values.yaml create mode 100644 stable/focalboard/1.9.1/questions.yaml create mode 100644 stable/focalboard/1.9.1/templates/common.yaml create mode 100644 stable/focalboard/1.9.1/test_values.yaml create mode 100644 stable/focalboard/1.9.1/values.yaml create mode 100644 stable/freeradius/1.7.1/CONFIG.md create mode 100644 stable/freeradius/1.7.1/Chart.lock create mode 100644 stable/freeradius/1.7.1/Chart.yaml create mode 100644 stable/freeradius/1.7.1/README.md create mode 100644 stable/freeradius/1.7.1/app-readme.md create mode 100644 stable/freeradius/1.7.1/charts/common-6.12.1.tgz create mode 100644 stable/freeradius/1.7.1/ix_values.yaml create mode 100644 stable/freeradius/1.7.1/questions.yaml create mode 100644 stable/freeradius/1.7.1/templates/common.yaml create mode 100644 stable/freeradius/1.7.1/test_values.yaml create mode 100644 stable/freeradius/1.7.1/values.yaml create mode 100644 stable/freshrss/6.11.1/CONFIG.md create mode 100644 stable/freshrss/6.11.1/Chart.lock create mode 100644 stable/freshrss/6.11.1/Chart.yaml create mode 100644 stable/freshrss/6.11.1/README.md create mode 100644 stable/freshrss/6.11.1/app-readme.md create mode 100644 stable/freshrss/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/freshrss/6.11.1/ix_values.yaml create mode 100644 stable/freshrss/6.11.1/questions.yaml create mode 100644 stable/freshrss/6.11.1/templates/common.yaml create mode 100644 stable/freshrss/6.11.1/test_values.yaml create mode 100644 stable/freshrss/6.11.1/values.yaml create mode 100644 stable/gaps/6.11.1/CONFIG.md create mode 100644 stable/gaps/6.11.1/Chart.lock create mode 100644 stable/gaps/6.11.1/Chart.yaml create mode 100644 stable/gaps/6.11.1/README.md create mode 100644 stable/gaps/6.11.1/app-readme.md create mode 100644 stable/gaps/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/gaps/6.11.1/ix_values.yaml create mode 100644 stable/gaps/6.11.1/questions.yaml create mode 100644 stable/gaps/6.11.1/templates/common.yaml create mode 100644 stable/gaps/6.11.1/test_values.yaml create mode 100644 stable/gaps/6.11.1/values.yaml create mode 100644 stable/gonic/1.9.1/CONFIG.md create mode 100644 stable/gonic/1.9.1/Chart.lock create mode 100644 stable/gonic/1.9.1/Chart.yaml create mode 100644 stable/gonic/1.9.1/README.md create mode 100644 stable/gonic/1.9.1/app-readme.md create mode 100644 stable/gonic/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/gonic/1.9.1/ci/ct-values.yaml create mode 100644 stable/gonic/1.9.1/ix_values.yaml create mode 100644 stable/gonic/1.9.1/questions.yaml create mode 100644 stable/gonic/1.9.1/templates/common.yaml create mode 100644 stable/gonic/1.9.1/test_values.yaml create mode 100644 stable/gonic/1.9.1/values.yaml create mode 100644 stable/grocy/6.11.1/CONFIG.md create mode 100644 stable/grocy/6.11.1/Chart.lock create mode 100644 stable/grocy/6.11.1/Chart.yaml create mode 100644 stable/grocy/6.11.1/README.md create mode 100644 stable/grocy/6.11.1/app-readme.md create mode 100644 stable/grocy/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/grocy/6.11.1/ix_values.yaml create mode 100644 stable/grocy/6.11.1/questions.yaml create mode 100644 stable/grocy/6.11.1/templates/common.yaml create mode 100644 stable/grocy/6.11.1/test_values.yaml create mode 100644 stable/grocy/6.11.1/values.yaml create mode 100644 stable/handbrake/6.11.1/CONFIG.md create mode 100644 stable/handbrake/6.11.1/Chart.lock create mode 100644 stable/handbrake/6.11.1/Chart.yaml create mode 100644 stable/handbrake/6.11.1/README.md create mode 100644 stable/handbrake/6.11.1/app-readme.md create mode 100644 stable/handbrake/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/handbrake/6.11.1/ix_values.yaml create mode 100644 stable/handbrake/6.11.1/questions.yaml create mode 100644 stable/handbrake/6.11.1/templates/common.yaml create mode 100644 stable/handbrake/6.11.1/test_values.yaml create mode 100644 stable/handbrake/6.11.1/values.yaml create mode 100644 stable/haste-server/1.11.1/CONFIG.md create mode 100644 stable/haste-server/1.11.1/Chart.lock create mode 100644 stable/haste-server/1.11.1/Chart.yaml create mode 100644 stable/haste-server/1.11.1/README.md create mode 100644 stable/haste-server/1.11.1/app-readme.md create mode 100644 stable/haste-server/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/haste-server/1.11.1/ix_values.yaml create mode 100644 stable/haste-server/1.11.1/questions.yaml create mode 100644 stable/haste-server/1.11.1/templates/common.yaml create mode 100644 stable/haste-server/1.11.1/test_values.yaml create mode 100644 stable/haste-server/1.11.1/values.yaml create mode 100644 stable/healthchecks/1.9.1/CONFIG.md create mode 100644 stable/healthchecks/1.9.1/Chart.lock create mode 100644 stable/healthchecks/1.9.1/Chart.yaml create mode 100644 stable/healthchecks/1.9.1/README.md create mode 100644 stable/healthchecks/1.9.1/app-readme.md create mode 100644 stable/healthchecks/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/healthchecks/1.9.1/ix_values.yaml create mode 100644 stable/healthchecks/1.9.1/questions.yaml create mode 100644 stable/healthchecks/1.9.1/templates/common.yaml create mode 100644 stable/healthchecks/1.9.1/test_values.yaml create mode 100644 stable/healthchecks/1.9.1/values.yaml create mode 100644 stable/heimdall/6.11.1/CONFIG.md create mode 100644 stable/heimdall/6.11.1/Chart.lock create mode 100644 stable/heimdall/6.11.1/Chart.yaml create mode 100644 stable/heimdall/6.11.1/README.md create mode 100644 stable/heimdall/6.11.1/app-readme.md create mode 100644 stable/heimdall/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/heimdall/6.11.1/ix_values.yaml create mode 100644 stable/heimdall/6.11.1/questions.yaml create mode 100644 stable/heimdall/6.11.1/templates/common.yaml create mode 100644 stable/heimdall/6.11.1/test_values.yaml create mode 100644 stable/heimdall/6.11.1/values.yaml create mode 100644 stable/home-assistant/6.11.1/CONFIG.md create mode 100644 stable/home-assistant/6.11.1/Chart.lock create mode 100644 stable/home-assistant/6.11.1/Chart.yaml create mode 100644 stable/home-assistant/6.11.1/README.md create mode 100644 stable/home-assistant/6.11.1/app-readme.md create mode 100644 stable/home-assistant/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/home-assistant/6.11.1/ix_values.yaml create mode 100644 stable/home-assistant/6.11.1/questions.yaml create mode 100644 stable/home-assistant/6.11.1/templates/common.yaml create mode 100644 stable/home-assistant/6.11.1/templates/secret.yaml create mode 100644 stable/home-assistant/6.11.1/test_values.yaml create mode 100644 stable/home-assistant/6.11.1/values.yaml create mode 100644 stable/hyperion-ng/1.9.1/CONFIG.md create mode 100644 stable/hyperion-ng/1.9.1/Chart.lock create mode 100644 stable/hyperion-ng/1.9.1/Chart.yaml create mode 100644 stable/hyperion-ng/1.9.1/README.md create mode 100644 stable/hyperion-ng/1.9.1/app-readme.md create mode 100644 stable/hyperion-ng/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/hyperion-ng/1.9.1/ix_values.yaml create mode 100644 stable/hyperion-ng/1.9.1/questions.yaml create mode 100644 stable/hyperion-ng/1.9.1/templates/common.yaml create mode 100644 stable/hyperion-ng/1.9.1/test_values.yaml create mode 100644 stable/hyperion-ng/1.9.1/values.yaml create mode 100644 stable/jackett/6.11.1/CONFIG.md create mode 100644 stable/jackett/6.11.1/Chart.lock create mode 100644 stable/jackett/6.11.1/Chart.yaml create mode 100644 stable/jackett/6.11.1/README.md create mode 100644 stable/jackett/6.11.1/app-readme.md create mode 100644 stable/jackett/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/jackett/6.11.1/ix_values.yaml create mode 100644 stable/jackett/6.11.1/questions.yaml create mode 100644 stable/jackett/6.11.1/templates/common.yaml create mode 100644 stable/jackett/6.11.1/test_values.yaml create mode 100644 stable/jackett/6.11.1/values.yaml create mode 100644 stable/jellyfin/6.11.1/CONFIG.md create mode 100644 stable/jellyfin/6.11.1/Chart.lock create mode 100644 stable/jellyfin/6.11.1/Chart.yaml create mode 100644 stable/jellyfin/6.11.1/README.md create mode 100644 stable/jellyfin/6.11.1/app-readme.md create mode 100644 stable/jellyfin/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/jellyfin/6.11.1/ix_values.yaml create mode 100644 stable/jellyfin/6.11.1/questions.yaml create mode 100644 stable/jellyfin/6.11.1/templates/common.yaml create mode 100644 stable/jellyfin/6.11.1/test_values.yaml create mode 100644 stable/jellyfin/6.11.1/values.yaml create mode 100644 stable/kms/6.11.1/CONFIG.md create mode 100644 stable/kms/6.11.1/Chart.lock create mode 100644 stable/kms/6.11.1/Chart.yaml create mode 100644 stable/kms/6.11.1/README.md create mode 100644 stable/kms/6.11.1/app-readme.md create mode 100644 stable/kms/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/kms/6.11.1/ix_values.yaml create mode 100644 stable/kms/6.11.1/questions.yaml create mode 100644 stable/kms/6.11.1/templates/common.yaml create mode 100644 stable/kms/6.11.1/test_values.yaml create mode 100644 stable/kms/6.11.1/values.yaml create mode 100644 stable/komga/1.9.1/CONFIG.md create mode 100644 stable/komga/1.9.1/Chart.lock create mode 100644 stable/komga/1.9.1/Chart.yaml create mode 100644 stable/komga/1.9.1/README.md create mode 100644 stable/komga/1.9.1/app-readme.md create mode 100644 stable/komga/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/komga/1.9.1/ix_values.yaml create mode 100644 stable/komga/1.9.1/questions.yaml create mode 100644 stable/komga/1.9.1/templates/common.yaml create mode 100644 stable/komga/1.9.1/test_values.yaml create mode 100644 stable/komga/1.9.1/values.yaml create mode 100644 stable/lazylibrarian/6.11.1/CONFIG.md create mode 100644 stable/lazylibrarian/6.11.1/Chart.lock create mode 100644 stable/lazylibrarian/6.11.1/Chart.yaml create mode 100644 stable/lazylibrarian/6.11.1/README.md create mode 100644 stable/lazylibrarian/6.11.1/app-readme.md create mode 100644 stable/lazylibrarian/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/lazylibrarian/6.11.1/ix_values.yaml create mode 100644 stable/lazylibrarian/6.11.1/questions.yaml create mode 100644 stable/lazylibrarian/6.11.1/templates/common.yaml create mode 100644 stable/lazylibrarian/6.11.1/test_values.yaml create mode 100644 stable/lazylibrarian/6.11.1/values.yaml create mode 100644 stable/librespeed/1.9.1/CONFIG.md create mode 100644 stable/librespeed/1.9.1/Chart.lock create mode 100644 stable/librespeed/1.9.1/Chart.yaml create mode 100644 stable/librespeed/1.9.1/README.md create mode 100644 stable/librespeed/1.9.1/app-readme.md create mode 100644 stable/librespeed/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/librespeed/1.9.1/ci/ct-values.yaml create mode 100644 stable/librespeed/1.9.1/ix_values.yaml create mode 100644 stable/librespeed/1.9.1/questions.yaml create mode 100644 stable/librespeed/1.9.1/templates/common.yaml create mode 100644 stable/librespeed/1.9.1/test_values.yaml create mode 100644 stable/librespeed/1.9.1/values.yaml create mode 100644 stable/lidarr/6.11.1/CONFIG.md create mode 100644 stable/lidarr/6.11.1/Chart.lock create mode 100644 stable/lidarr/6.11.1/Chart.yaml create mode 100644 stable/lidarr/6.11.1/README.md create mode 100644 stable/lidarr/6.11.1/app-readme.md create mode 100644 stable/lidarr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/lidarr/6.11.1/ix_values.yaml create mode 100644 stable/lidarr/6.11.1/questions.yaml create mode 100644 stable/lidarr/6.11.1/templates/common.yaml create mode 100644 stable/lidarr/6.11.1/test_values.yaml create mode 100644 stable/lidarr/6.11.1/values.yaml create mode 100644 stable/littlelink/1.5.1/CONFIG.md create mode 100644 stable/littlelink/1.5.1/Chart.lock create mode 100644 stable/littlelink/1.5.1/Chart.yaml create mode 100644 stable/littlelink/1.5.1/README.md create mode 100644 stable/littlelink/1.5.1/app-readme.md create mode 100644 stable/littlelink/1.5.1/charts/common-6.12.1.tgz create mode 100644 stable/littlelink/1.5.1/ix_values.yaml create mode 100644 stable/littlelink/1.5.1/questions.yaml create mode 100644 stable/littlelink/1.5.1/templates/_configmap.tpl create mode 100644 stable/littlelink/1.5.1/templates/common.yaml create mode 100644 stable/littlelink/1.5.1/test_values.yaml create mode 100644 stable/littlelink/1.5.1/values.yaml create mode 100644 stable/lychee/6.11.1/CONFIG.md create mode 100644 stable/lychee/6.11.1/Chart.lock create mode 100644 stable/lychee/6.11.1/Chart.yaml create mode 100644 stable/lychee/6.11.1/README.md create mode 100644 stable/lychee/6.11.1/app-readme.md create mode 100644 stable/lychee/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/lychee/6.11.1/ix_values.yaml create mode 100644 stable/lychee/6.11.1/questions.yaml create mode 100644 stable/lychee/6.11.1/templates/common.yaml create mode 100644 stable/lychee/6.11.1/test_values.yaml create mode 100644 stable/lychee/6.11.1/values.yaml create mode 100644 stable/mealie/1.11.1/CONFIG.md create mode 100644 stable/mealie/1.11.1/Chart.lock create mode 100644 stable/mealie/1.11.1/Chart.yaml create mode 100644 stable/mealie/1.11.1/README.md create mode 100644 stable/mealie/1.11.1/app-readme.md create mode 100644 stable/mealie/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/mealie/1.11.1/ix_values.yaml create mode 100644 stable/mealie/1.11.1/questions.yaml create mode 100644 stable/mealie/1.11.1/templates/common.yaml create mode 100644 stable/mealie/1.11.1/test_values.yaml create mode 100644 stable/mealie/1.11.1/values.yaml create mode 100644 stable/mosquitto/1.11.1/CONFIG.md create mode 100644 stable/mosquitto/1.11.1/Chart.lock create mode 100644 stable/mosquitto/1.11.1/Chart.yaml create mode 100644 stable/mosquitto/1.11.1/README.md create mode 100644 stable/mosquitto/1.11.1/app-readme.md create mode 100644 stable/mosquitto/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/mosquitto/1.11.1/ix_values.yaml create mode 100644 stable/mosquitto/1.11.1/questions.yaml create mode 100644 stable/mosquitto/1.11.1/templates/common.yaml create mode 100644 stable/mosquitto/1.11.1/templates/configmap.yaml create mode 100644 stable/mosquitto/1.11.1/test_values.yaml create mode 100644 stable/mosquitto/1.11.1/values.yaml create mode 100644 stable/mylar/1.9.1/CONFIG.md create mode 100644 stable/mylar/1.9.1/Chart.lock create mode 100644 stable/mylar/1.9.1/Chart.yaml create mode 100644 stable/mylar/1.9.1/README.md create mode 100644 stable/mylar/1.9.1/app-readme.md create mode 100644 stable/mylar/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/mylar/1.9.1/ix_values.yaml create mode 100644 stable/mylar/1.9.1/questions.yaml create mode 100644 stable/mylar/1.9.1/templates/common.yaml create mode 100644 stable/mylar/1.9.1/test_values.yaml create mode 100644 stable/mylar/1.9.1/values.yaml create mode 100644 stable/navidrome/6.11.1/CONFIG.md create mode 100644 stable/navidrome/6.11.1/Chart.lock create mode 100644 stable/navidrome/6.11.1/Chart.yaml create mode 100644 stable/navidrome/6.11.1/README.md create mode 100644 stable/navidrome/6.11.1/app-readme.md create mode 100644 stable/navidrome/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/navidrome/6.11.1/ix_values.yaml create mode 100644 stable/navidrome/6.11.1/questions.yaml create mode 100644 stable/navidrome/6.11.1/templates/common.yaml create mode 100644 stable/navidrome/6.11.1/test_values.yaml create mode 100644 stable/navidrome/6.11.1/values.yaml create mode 100644 stable/node-red/6.11.1/CONFIG.md create mode 100644 stable/node-red/6.11.1/Chart.lock create mode 100644 stable/node-red/6.11.1/Chart.yaml create mode 100644 stable/node-red/6.11.1/README.md create mode 100644 stable/node-red/6.11.1/app-readme.md create mode 100644 stable/node-red/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/node-red/6.11.1/ix_values.yaml create mode 100644 stable/node-red/6.11.1/questions.yaml create mode 100644 stable/node-red/6.11.1/templates/common.yaml create mode 100644 stable/node-red/6.11.1/test_values.yaml create mode 100644 stable/node-red/6.11.1/values.yaml create mode 100644 stable/nullserv/1.9.1/CONFIG.md create mode 100644 stable/nullserv/1.9.1/Chart.lock create mode 100644 stable/nullserv/1.9.1/Chart.yaml create mode 100644 stable/nullserv/1.9.1/README.md create mode 100644 stable/nullserv/1.9.1/app-readme.md create mode 100644 stable/nullserv/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/nullserv/1.9.1/ix_values.yaml create mode 100644 stable/nullserv/1.9.1/questions.yaml create mode 100644 stable/nullserv/1.9.1/templates/common.yaml create mode 100644 stable/nullserv/1.9.1/test_values.yaml create mode 100644 stable/nullserv/1.9.1/values.yaml create mode 100644 stable/nzbget/6.11.1/CONFIG.md create mode 100644 stable/nzbget/6.11.1/Chart.lock create mode 100644 stable/nzbget/6.11.1/Chart.yaml create mode 100644 stable/nzbget/6.11.1/README.md create mode 100644 stable/nzbget/6.11.1/app-readme.md create mode 100644 stable/nzbget/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/nzbget/6.11.1/ix_values.yaml create mode 100644 stable/nzbget/6.11.1/questions.yaml create mode 100644 stable/nzbget/6.11.1/templates/common.yaml create mode 100644 stable/nzbget/6.11.1/test_values.yaml create mode 100644 stable/nzbget/6.11.1/values.yaml create mode 100644 stable/nzbhydra/6.11.1/CONFIG.md create mode 100644 stable/nzbhydra/6.11.1/Chart.lock create mode 100644 stable/nzbhydra/6.11.1/Chart.yaml create mode 100644 stable/nzbhydra/6.11.1/README.md create mode 100644 stable/nzbhydra/6.11.1/app-readme.md create mode 100644 stable/nzbhydra/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/nzbhydra/6.11.1/ix_values.yaml create mode 100644 stable/nzbhydra/6.11.1/questions.yaml create mode 100644 stable/nzbhydra/6.11.1/templates/common.yaml create mode 100644 stable/nzbhydra/6.11.1/test_values.yaml create mode 100644 stable/nzbhydra/6.11.1/values.yaml create mode 100644 stable/octoprint/1.9.1/CONFIG.md create mode 100644 stable/octoprint/1.9.1/Chart.lock create mode 100644 stable/octoprint/1.9.1/Chart.yaml create mode 100644 stable/octoprint/1.9.1/README.md create mode 100644 stable/octoprint/1.9.1/app-readme.md create mode 100644 stable/octoprint/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/octoprint/1.9.1/ix_values.yaml create mode 100644 stable/octoprint/1.9.1/questions.yaml create mode 100644 stable/octoprint/1.9.1/templates/common.yaml create mode 100644 stable/octoprint/1.9.1/test_values.yaml create mode 100644 stable/octoprint/1.9.1/values.yaml create mode 100644 stable/omada-controller/1.9.1/CONFIG.md create mode 100644 stable/omada-controller/1.9.1/Chart.lock create mode 100644 stable/omada-controller/1.9.1/Chart.yaml create mode 100644 stable/omada-controller/1.9.1/README.md create mode 100644 stable/omada-controller/1.9.1/app-readme.md create mode 100644 stable/omada-controller/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/omada-controller/1.9.1/ix_values.yaml create mode 100644 stable/omada-controller/1.9.1/questions.yaml create mode 100644 stable/omada-controller/1.9.1/templates/common.yaml create mode 100644 stable/omada-controller/1.9.1/test_values.yaml create mode 100644 stable/omada-controller/1.9.1/values.yaml create mode 100644 stable/ombi/6.11.1/CONFIG.md create mode 100644 stable/ombi/6.11.1/Chart.lock create mode 100644 stable/ombi/6.11.1/Chart.yaml create mode 100644 stable/ombi/6.11.1/README.md create mode 100644 stable/ombi/6.11.1/app-readme.md create mode 100644 stable/ombi/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/ombi/6.11.1/ix_values.yaml create mode 100644 stable/ombi/6.11.1/questions.yaml create mode 100644 stable/ombi/6.11.1/templates/common.yaml create mode 100644 stable/ombi/6.11.1/test_values.yaml create mode 100644 stable/ombi/6.11.1/values.yaml create mode 100644 stable/openldap/1.7.1/CONFIG.md create mode 100644 stable/openldap/1.7.1/Chart.lock create mode 100644 stable/openldap/1.7.1/Chart.yaml create mode 100644 stable/openldap/1.7.1/README.md create mode 100644 stable/openldap/1.7.1/app-readme.md create mode 100644 stable/openldap/1.7.1/charts/common-6.12.1.tgz create mode 100644 stable/openldap/1.7.1/ix_values.yaml create mode 100644 stable/openldap/1.7.1/questions.yaml create mode 100644 stable/openldap/1.7.1/templates/_configmap.tpl create mode 100644 stable/openldap/1.7.1/templates/common.yaml create mode 100644 stable/openldap/1.7.1/test_values.yaml create mode 100644 stable/openldap/1.7.1/values.yaml create mode 100644 stable/organizr/6.11.1/CONFIG.md create mode 100644 stable/organizr/6.11.1/Chart.lock create mode 100644 stable/organizr/6.11.1/Chart.yaml create mode 100644 stable/organizr/6.11.1/README.md create mode 100644 stable/organizr/6.11.1/app-readme.md create mode 100644 stable/organizr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/organizr/6.11.1/ix_values.yaml create mode 100644 stable/organizr/6.11.1/questions.yaml create mode 100644 stable/organizr/6.11.1/templates/common.yaml create mode 100644 stable/organizr/6.11.1/test_values.yaml create mode 100644 stable/organizr/6.11.1/values.yaml create mode 100644 stable/overseerr/1.9.1/CONFIG.md create mode 100644 stable/overseerr/1.9.1/Chart.lock create mode 100644 stable/overseerr/1.9.1/Chart.yaml create mode 100644 stable/overseerr/1.9.1/README.md create mode 100644 stable/overseerr/1.9.1/app-readme.md create mode 100644 stable/overseerr/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/overseerr/1.9.1/ix_values.yaml create mode 100644 stable/overseerr/1.9.1/questions.yaml create mode 100644 stable/overseerr/1.9.1/templates/common.yaml create mode 100644 stable/overseerr/1.9.1/test_values.yaml create mode 100644 stable/overseerr/1.9.1/values.yaml create mode 100644 stable/owncast/1.9.1/CONFIG.md create mode 100644 stable/owncast/1.9.1/Chart.lock create mode 100644 stable/owncast/1.9.1/Chart.yaml create mode 100644 stable/owncast/1.9.1/README.md create mode 100644 stable/owncast/1.9.1/app-readme.md create mode 100644 stable/owncast/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/owncast/1.9.1/ix_values.yaml create mode 100644 stable/owncast/1.9.1/questions.yaml create mode 100644 stable/owncast/1.9.1/templates/common.yaml create mode 100644 stable/owncast/1.9.1/test_values.yaml create mode 100644 stable/owncast/1.9.1/values.yaml create mode 100644 stable/owncloud-ocis/1.9.1/CONFIG.md create mode 100644 stable/owncloud-ocis/1.9.1/Chart.lock create mode 100644 stable/owncloud-ocis/1.9.1/Chart.yaml create mode 100644 stable/owncloud-ocis/1.9.1/README.md create mode 100644 stable/owncloud-ocis/1.9.1/app-readme.md create mode 100644 stable/owncloud-ocis/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/owncloud-ocis/1.9.1/ix_values.yaml create mode 100644 stable/owncloud-ocis/1.9.1/questions.yaml create mode 100644 stable/owncloud-ocis/1.9.1/templates/common.yaml create mode 100644 stable/owncloud-ocis/1.9.1/test_values.yaml create mode 100644 stable/owncloud-ocis/1.9.1/values.yaml create mode 100644 stable/pgadmin/1.8.1/CONFIG.md create mode 100644 stable/pgadmin/1.8.1/Chart.lock create mode 100644 stable/pgadmin/1.8.1/Chart.yaml create mode 100644 stable/pgadmin/1.8.1/README.md create mode 100644 stable/pgadmin/1.8.1/app-readme.md create mode 100644 stable/pgadmin/1.8.1/charts/common-6.12.1.tgz create mode 100644 stable/pgadmin/1.8.1/ix_values.yaml create mode 100644 stable/pgadmin/1.8.1/questions.yaml create mode 100644 stable/pgadmin/1.8.1/templates/common.yaml create mode 100644 stable/pgadmin/1.8.1/test_values.yaml create mode 100644 stable/pgadmin/1.8.1/values.yaml create mode 100644 stable/photoprism/1.9.1/CONFIG.md create mode 100644 stable/photoprism/1.9.1/Chart.lock create mode 100644 stable/photoprism/1.9.1/Chart.yaml create mode 100644 stable/photoprism/1.9.1/README.md create mode 100644 stable/photoprism/1.9.1/app-readme.md create mode 100644 stable/photoprism/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/photoprism/1.9.1/ix_values.yaml create mode 100644 stable/photoprism/1.9.1/questions.yaml create mode 100644 stable/photoprism/1.9.1/templates/common.yaml create mode 100644 stable/photoprism/1.9.1/test_values.yaml create mode 100644 stable/photoprism/1.9.1/values.yaml create mode 100644 stable/phpldapadmin/1.8.1/CONFIG.md create mode 100644 stable/phpldapadmin/1.8.1/Chart.lock create mode 100644 stable/phpldapadmin/1.8.1/Chart.yaml create mode 100644 stable/phpldapadmin/1.8.1/README.md create mode 100644 stable/phpldapadmin/1.8.1/app-readme.md create mode 100644 stable/phpldapadmin/1.8.1/charts/common-6.12.1.tgz create mode 100644 stable/phpldapadmin/1.8.1/ix_values.yaml create mode 100644 stable/phpldapadmin/1.8.1/questions.yaml create mode 100644 stable/phpldapadmin/1.8.1/templates/common.yaml create mode 100644 stable/phpldapadmin/1.8.1/test_values.yaml create mode 100644 stable/phpldapadmin/1.8.1/values.yaml create mode 100644 stable/piaware/1.9.1/CONFIG.md create mode 100644 stable/piaware/1.9.1/Chart.lock create mode 100644 stable/piaware/1.9.1/Chart.yaml create mode 100644 stable/piaware/1.9.1/README.md create mode 100644 stable/piaware/1.9.1/app-readme.md create mode 100644 stable/piaware/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/piaware/1.9.1/ci/ct-values.yaml create mode 100644 stable/piaware/1.9.1/ix_values.yaml create mode 100644 stable/piaware/1.9.1/questions.yaml create mode 100644 stable/piaware/1.9.1/templates/common.yaml create mode 100644 stable/piaware/1.9.1/test_values.yaml create mode 100644 stable/piaware/1.9.1/values.yaml create mode 100644 stable/plex/5.11.1/CONFIG.md create mode 100644 stable/plex/5.11.1/Chart.lock create mode 100644 stable/plex/5.11.1/Chart.yaml create mode 100644 stable/plex/5.11.1/README.md create mode 100644 stable/plex/5.11.1/app-readme.md create mode 100644 stable/plex/5.11.1/charts/common-6.12.1.tgz create mode 100644 stable/plex/5.11.1/ix_values.yaml create mode 100644 stable/plex/5.11.1/questions.yaml create mode 100644 stable/plex/5.11.1/templates/common.yaml create mode 100644 stable/plex/5.11.1/test_values.yaml create mode 100644 stable/plex/5.11.1/values.yaml create mode 100644 stable/podgrab/4.11.1/CONFIG.md create mode 100644 stable/podgrab/4.11.1/Chart.lock create mode 100644 stable/podgrab/4.11.1/Chart.yaml create mode 100644 stable/podgrab/4.11.1/README.md create mode 100644 stable/podgrab/4.11.1/app-readme.md create mode 100644 stable/podgrab/4.11.1/charts/common-6.12.1.tgz create mode 100644 stable/podgrab/4.11.1/ix_values.yaml create mode 100644 stable/podgrab/4.11.1/questions.yaml create mode 100644 stable/podgrab/4.11.1/templates/common.yaml create mode 100644 stable/podgrab/4.11.1/test_values.yaml create mode 100644 stable/podgrab/4.11.1/values.yaml create mode 100644 stable/postgresql/1.5.1/CONFIG.md create mode 100644 stable/postgresql/1.5.1/Chart.lock create mode 100644 stable/postgresql/1.5.1/Chart.yaml create mode 100644 stable/postgresql/1.5.1/README.md create mode 100644 stable/postgresql/1.5.1/app-readme.md create mode 100644 stable/postgresql/1.5.1/charts/common-6.12.1.tgz create mode 100644 stable/postgresql/1.5.1/ix_values.yaml create mode 100644 stable/postgresql/1.5.1/questions.yaml create mode 100644 stable/postgresql/1.5.1/templates/backup-postgres-config.yaml create mode 100644 stable/postgresql/1.5.1/templates/common.yaml create mode 100644 stable/postgresql/1.5.1/templates/secret.yaml create mode 100644 stable/postgresql/1.5.1/templates/upgrade-backup-postgres-hook.yaml create mode 100644 stable/postgresql/1.5.1/test_values.yaml create mode 100644 stable/postgresql/1.5.1/values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/CONFIG.md create mode 100644 stable/pretend-youre-xyzzy/1.9.1/Chart.lock create mode 100644 stable/pretend-youre-xyzzy/1.9.1/Chart.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/README.md create mode 100644 stable/pretend-youre-xyzzy/1.9.1/app-readme.md create mode 100644 stable/pretend-youre-xyzzy/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/pretend-youre-xyzzy/1.9.1/ix_values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/questions.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/templates/common.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/test_values.yaml create mode 100644 stable/pretend-youre-xyzzy/1.9.1/values.yaml create mode 100644 stable/protonmail-bridge/1.9.1/CONFIG.md create mode 100644 stable/protonmail-bridge/1.9.1/Chart.lock create mode 100644 stable/protonmail-bridge/1.9.1/Chart.yaml create mode 100644 stable/protonmail-bridge/1.9.1/README.md create mode 100644 stable/protonmail-bridge/1.9.1/app-readme.md create mode 100644 stable/protonmail-bridge/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/protonmail-bridge/1.9.1/ix_values.yaml create mode 100644 stable/protonmail-bridge/1.9.1/questions.yaml create mode 100644 stable/protonmail-bridge/1.9.1/templates/common.yaml create mode 100644 stable/protonmail-bridge/1.9.1/test_values.yaml create mode 100644 stable/protonmail-bridge/1.9.1/values.yaml create mode 100644 stable/prowlarr/1.11.1/CONFIG.md create mode 100644 stable/prowlarr/1.11.1/Chart.lock create mode 100644 stable/prowlarr/1.11.1/Chart.yaml create mode 100644 stable/prowlarr/1.11.1/README.md create mode 100644 stable/prowlarr/1.11.1/app-readme.md create mode 100644 stable/prowlarr/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/prowlarr/1.11.1/ix_values.yaml create mode 100644 stable/prowlarr/1.11.1/questions.yaml create mode 100644 stable/prowlarr/1.11.1/templates/common.yaml create mode 100644 stable/prowlarr/1.11.1/test_values.yaml create mode 100644 stable/prowlarr/1.11.1/values.yaml create mode 100644 stable/pyload/1.9.1/CONFIG.md create mode 100644 stable/pyload/1.9.1/Chart.lock create mode 100644 stable/pyload/1.9.1/Chart.yaml create mode 100644 stable/pyload/1.9.1/README.md create mode 100644 stable/pyload/1.9.1/app-readme.md create mode 100644 stable/pyload/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/pyload/1.9.1/ix_values.yaml create mode 100644 stable/pyload/1.9.1/questions.yaml create mode 100644 stable/pyload/1.9.1/templates/common.yaml create mode 100644 stable/pyload/1.9.1/test_values.yaml create mode 100644 stable/pyload/1.9.1/values.yaml create mode 100644 stable/qbittorrent/6.11.1/CONFIG.md create mode 100644 stable/qbittorrent/6.11.1/Chart.lock create mode 100644 stable/qbittorrent/6.11.1/Chart.yaml create mode 100644 stable/qbittorrent/6.11.1/README.md create mode 100644 stable/qbittorrent/6.11.1/app-readme.md create mode 100644 stable/qbittorrent/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/qbittorrent/6.11.1/ix_values.yaml create mode 100644 stable/qbittorrent/6.11.1/questions.yaml create mode 100644 stable/qbittorrent/6.11.1/templates/_configmap.tpl create mode 100644 stable/qbittorrent/6.11.1/templates/common.yaml create mode 100644 stable/qbittorrent/6.11.1/test_values.yaml create mode 100644 stable/qbittorrent/6.11.1/values.yaml create mode 100644 stable/radarr/6.11.1/CONFIG.md create mode 100644 stable/radarr/6.11.1/Chart.lock create mode 100644 stable/radarr/6.11.1/Chart.yaml create mode 100644 stable/radarr/6.11.1/README.md create mode 100644 stable/radarr/6.11.1/app-readme.md create mode 100644 stable/radarr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/radarr/6.11.1/ix_values.yaml create mode 100644 stable/radarr/6.11.1/questions.yaml create mode 100644 stable/radarr/6.11.1/templates/common.yaml create mode 100644 stable/radarr/6.11.1/test_values.yaml create mode 100644 stable/radarr/6.11.1/values.yaml create mode 100644 stable/readarr/6.11.1/CONFIG.md create mode 100644 stable/readarr/6.11.1/Chart.lock create mode 100644 stable/readarr/6.11.1/Chart.yaml create mode 100644 stable/readarr/6.11.1/README.md create mode 100644 stable/readarr/6.11.1/app-readme.md create mode 100644 stable/readarr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/readarr/6.11.1/ix_values.yaml create mode 100644 stable/readarr/6.11.1/questions.yaml create mode 100644 stable/readarr/6.11.1/templates/common.yaml create mode 100644 stable/readarr/6.11.1/test_values.yaml create mode 100644 stable/readarr/6.11.1/values.yaml create mode 100644 stable/reg/1.11.1/CONFIG.md create mode 100644 stable/reg/1.11.1/Chart.lock create mode 100644 stable/reg/1.11.1/Chart.yaml create mode 100644 stable/reg/1.11.1/README.md create mode 100644 stable/reg/1.11.1/app-readme.md create mode 100644 stable/reg/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/reg/1.11.1/ci/ct-values.yaml create mode 100644 stable/reg/1.11.1/ix_values.yaml create mode 100644 stable/reg/1.11.1/questions.yaml create mode 100644 stable/reg/1.11.1/templates/common.yaml create mode 100644 stable/reg/1.11.1/test_values.yaml create mode 100644 stable/reg/1.11.1/values.yaml create mode 100644 stable/resilio-sync/1.9.1/CONFIG.md create mode 100644 stable/resilio-sync/1.9.1/Chart.lock create mode 100644 stable/resilio-sync/1.9.1/Chart.yaml create mode 100644 stable/resilio-sync/1.9.1/README.md create mode 100644 stable/resilio-sync/1.9.1/app-readme.md create mode 100644 stable/resilio-sync/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/resilio-sync/1.9.1/ix_values.yaml create mode 100644 stable/resilio-sync/1.9.1/questions.yaml create mode 100644 stable/resilio-sync/1.9.1/templates/common.yaml create mode 100644 stable/resilio-sync/1.9.1/test_values.yaml create mode 100644 stable/resilio-sync/1.9.1/values.yaml create mode 100644 stable/sabnzbd/6.11.1/CONFIG.md create mode 100644 stable/sabnzbd/6.11.1/Chart.lock create mode 100644 stable/sabnzbd/6.11.1/Chart.yaml create mode 100644 stable/sabnzbd/6.11.1/README.md create mode 100644 stable/sabnzbd/6.11.1/app-readme.md create mode 100644 stable/sabnzbd/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/sabnzbd/6.11.1/ix_values.yaml create mode 100644 stable/sabnzbd/6.11.1/questions.yaml create mode 100644 stable/sabnzbd/6.11.1/templates/common.yaml create mode 100644 stable/sabnzbd/6.11.1/test_values.yaml create mode 100644 stable/sabnzbd/6.11.1/values.yaml create mode 100644 stable/ser2sock/1.9.1/CONFIG.md create mode 100644 stable/ser2sock/1.9.1/Chart.lock create mode 100644 stable/ser2sock/1.9.1/Chart.yaml create mode 100644 stable/ser2sock/1.9.1/README.md create mode 100644 stable/ser2sock/1.9.1/app-readme.md create mode 100644 stable/ser2sock/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/ser2sock/1.9.1/ix_values.yaml create mode 100644 stable/ser2sock/1.9.1/questions.yaml create mode 100644 stable/ser2sock/1.9.1/templates/common.yaml create mode 100644 stable/ser2sock/1.9.1/test_values.yaml create mode 100644 stable/ser2sock/1.9.1/values.yaml create mode 100644 stable/sonarr/6.11.1/CONFIG.md create mode 100644 stable/sonarr/6.11.1/Chart.lock create mode 100644 stable/sonarr/6.11.1/Chart.yaml create mode 100644 stable/sonarr/6.11.1/README.md create mode 100644 stable/sonarr/6.11.1/app-readme.md create mode 100644 stable/sonarr/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/sonarr/6.11.1/ix_values.yaml create mode 100644 stable/sonarr/6.11.1/questions.yaml create mode 100644 stable/sonarr/6.11.1/templates/common.yaml create mode 100644 stable/sonarr/6.11.1/test_values.yaml create mode 100644 stable/sonarr/6.11.1/values.yaml create mode 100644 stable/stash/1.9.1/CONFIG.md create mode 100644 stable/stash/1.9.1/Chart.lock create mode 100644 stable/stash/1.9.1/Chart.yaml create mode 100644 stable/stash/1.9.1/README.md create mode 100644 stable/stash/1.9.1/app-readme.md create mode 100644 stable/stash/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/stash/1.9.1/ci/ct-values.yaml create mode 100644 stable/stash/1.9.1/ix_values.yaml create mode 100644 stable/stash/1.9.1/questions.yaml create mode 100644 stable/stash/1.9.1/templates/common.yaml create mode 100644 stable/stash/1.9.1/test_values.yaml create mode 100644 stable/stash/1.9.1/values.yaml create mode 100644 stable/syncthing/6.11.1/CONFIG.md create mode 100644 stable/syncthing/6.11.1/Chart.lock create mode 100644 stable/syncthing/6.11.1/Chart.yaml create mode 100644 stable/syncthing/6.11.1/README.md create mode 100644 stable/syncthing/6.11.1/app-readme.md create mode 100644 stable/syncthing/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/syncthing/6.11.1/ix_values.yaml create mode 100644 stable/syncthing/6.11.1/questions.yaml create mode 100644 stable/syncthing/6.11.1/templates/common.yaml create mode 100644 stable/syncthing/6.11.1/test_values.yaml create mode 100644 stable/syncthing/6.11.1/values.yaml create mode 100644 stable/tautulli/6.11.1/CONFIG.md create mode 100644 stable/tautulli/6.11.1/Chart.lock create mode 100644 stable/tautulli/6.11.1/Chart.yaml create mode 100644 stable/tautulli/6.11.1/README.md create mode 100644 stable/tautulli/6.11.1/app-readme.md create mode 100644 stable/tautulli/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/tautulli/6.11.1/ix_values.yaml create mode 100644 stable/tautulli/6.11.1/questions.yaml create mode 100644 stable/tautulli/6.11.1/templates/common.yaml create mode 100644 stable/tautulli/6.11.1/test_values.yaml create mode 100644 stable/tautulli/6.11.1/values.yaml create mode 100644 stable/thelounge/1.11.1/CONFIG.md create mode 100644 stable/thelounge/1.11.1/Chart.lock create mode 100644 stable/thelounge/1.11.1/Chart.yaml create mode 100644 stable/thelounge/1.11.1/README.md create mode 100644 stable/thelounge/1.11.1/app-readme.md create mode 100644 stable/thelounge/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/thelounge/1.11.1/ix_values.yaml create mode 100644 stable/thelounge/1.11.1/questions.yaml create mode 100644 stable/thelounge/1.11.1/templates/common.yaml create mode 100644 stable/thelounge/1.11.1/test_values.yaml create mode 100644 stable/thelounge/1.11.1/values.yaml create mode 100644 stable/transmission/6.11.1/CONFIG.md create mode 100644 stable/transmission/6.11.1/Chart.lock create mode 100644 stable/transmission/6.11.1/Chart.yaml create mode 100644 stable/transmission/6.11.1/README.md create mode 100644 stable/transmission/6.11.1/app-readme.md create mode 100644 stable/transmission/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/transmission/6.11.1/ix_values.yaml create mode 100644 stable/transmission/6.11.1/questions.yaml create mode 100644 stable/transmission/6.11.1/templates/common.yaml create mode 100644 stable/transmission/6.11.1/test_values.yaml create mode 100644 stable/transmission/6.11.1/values.yaml create mode 100644 stable/truecommand/6.11.1/CONFIG.md create mode 100644 stable/truecommand/6.11.1/Chart.lock create mode 100644 stable/truecommand/6.11.1/Chart.yaml create mode 100644 stable/truecommand/6.11.1/README.md create mode 100644 stable/truecommand/6.11.1/app-readme.md create mode 100644 stable/truecommand/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/truecommand/6.11.1/ix_values.yaml create mode 100644 stable/truecommand/6.11.1/questions.yaml create mode 100644 stable/truecommand/6.11.1/templates/common.yaml create mode 100644 stable/truecommand/6.11.1/test_values.yaml create mode 100644 stable/truecommand/6.11.1/values.yaml create mode 100644 stable/tvheadend/7.11.1/CONFIG.md create mode 100644 stable/tvheadend/7.11.1/Chart.lock create mode 100644 stable/tvheadend/7.11.1/Chart.yaml create mode 100644 stable/tvheadend/7.11.1/README.md create mode 100644 stable/tvheadend/7.11.1/app-readme.md create mode 100644 stable/tvheadend/7.11.1/charts/common-6.12.1.tgz create mode 100644 stable/tvheadend/7.11.1/ix_values.yaml create mode 100644 stable/tvheadend/7.11.1/questions.yaml create mode 100644 stable/tvheadend/7.11.1/templates/common.yaml create mode 100644 stable/tvheadend/7.11.1/test_values.yaml create mode 100644 stable/tvheadend/7.11.1/values.yaml create mode 100644 stable/unifi/6.11.1/CONFIG.md create mode 100644 stable/unifi/6.11.1/Chart.lock create mode 100644 stable/unifi/6.11.1/Chart.yaml create mode 100644 stable/unifi/6.11.1/README.md create mode 100644 stable/unifi/6.11.1/app-readme.md create mode 100644 stable/unifi/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/unifi/6.11.1/ix_values.yaml create mode 100644 stable/unifi/6.11.1/questions.yaml create mode 100644 stable/unifi/6.11.1/templates/common.yaml create mode 100644 stable/unifi/6.11.1/test_values.yaml create mode 100644 stable/unifi/6.11.1/values.yaml create mode 100644 stable/unpackerr/1.11.1/CONFIG.md create mode 100644 stable/unpackerr/1.11.1/Chart.lock create mode 100644 stable/unpackerr/1.11.1/Chart.yaml create mode 100644 stable/unpackerr/1.11.1/README.md create mode 100644 stable/unpackerr/1.11.1/app-readme.md create mode 100644 stable/unpackerr/1.11.1/charts/common-6.12.1.tgz create mode 100644 stable/unpackerr/1.11.1/ix_values.yaml create mode 100644 stable/unpackerr/1.11.1/questions.yaml create mode 100644 stable/unpackerr/1.11.1/templates/common.yaml create mode 100644 stable/unpackerr/1.11.1/test_values.yaml create mode 100644 stable/unpackerr/1.11.1/values.yaml create mode 100644 stable/vaultwarden/4.7.1/CONFIG.md create mode 100644 stable/vaultwarden/4.7.1/Chart.lock create mode 100644 stable/vaultwarden/4.7.1/Chart.yaml create mode 100644 stable/vaultwarden/4.7.1/README.md create mode 100644 stable/vaultwarden/4.7.1/app-readme.md create mode 100644 stable/vaultwarden/4.7.1/charts/common-6.12.1.tgz create mode 100644 stable/vaultwarden/4.7.1/charts/postgresql-1.3.0.tgz create mode 100644 stable/vaultwarden/4.7.1/ix_values.yaml create mode 100644 stable/vaultwarden/4.7.1/questions.yaml create mode 100644 stable/vaultwarden/4.7.1/templates/_configmap.tpl create mode 100644 stable/vaultwarden/4.7.1/templates/_secrets.tpl create mode 100644 stable/vaultwarden/4.7.1/templates/_validate.tpl create mode 100644 stable/vaultwarden/4.7.1/templates/common.yaml create mode 100644 stable/vaultwarden/4.7.1/test_values.yaml create mode 100644 stable/vaultwarden/4.7.1/values.yaml create mode 100644 stable/xteve/1.9.1/CONFIG.md create mode 100644 stable/xteve/1.9.1/Chart.lock create mode 100644 stable/xteve/1.9.1/Chart.yaml create mode 100644 stable/xteve/1.9.1/README.md create mode 100644 stable/xteve/1.9.1/app-readme.md create mode 100644 stable/xteve/1.9.1/charts/common-6.12.1.tgz create mode 100644 stable/xteve/1.9.1/ix_values.yaml create mode 100644 stable/xteve/1.9.1/questions.yaml create mode 100644 stable/xteve/1.9.1/templates/common.yaml create mode 100644 stable/xteve/1.9.1/test_values.yaml create mode 100644 stable/xteve/1.9.1/values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/CONFIG.md create mode 100644 stable/zwavejs2mqtt/6.11.1/Chart.lock create mode 100644 stable/zwavejs2mqtt/6.11.1/Chart.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/README.md create mode 100644 stable/zwavejs2mqtt/6.11.1/app-readme.md create mode 100644 stable/zwavejs2mqtt/6.11.1/charts/common-6.12.1.tgz create mode 100644 stable/zwavejs2mqtt/6.11.1/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/questions.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/test_values.yaml create mode 100644 stable/zwavejs2mqtt/6.11.1/values.yaml diff --git a/incubator/authelia/1.3.1/CONFIG.md b/incubator/authelia/1.3.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/authelia/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 Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/authelia/1.3.1/Chart.lock b/incubator/authelia/1.3.1/Chart.lock new file mode 100644 index 00000000000..08b138b5ce1 --- /dev/null +++ b/incubator/authelia/1.3.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.3 +digest: sha256:ef39067328029b87716d9271f3eb04d774aeaa67289d8ab5e34deeca7db9003a +generated: "2021-08-30T21:04:27.019129308Z" diff --git a/incubator/authelia/1.3.1/Chart.yaml b/incubator/authelia/1.3.1/Chart.yaml new file mode 100644 index 00000000000..c4120472666 --- /dev/null +++ b/incubator/authelia/1.3.1/Chart.yaml @@ -0,0 +1,41 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +- condition: redis.enabled + name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.3 +deprecated: false +description: Authelia is a Single Sign-On Multi-Factor portal for web apps +home: https://github.com/truecharts/apps/tree/master/charts/stable/authelia +icon: https://avatars2.githubusercontent.com/u/59122411?s=200&v=4 +keywords: +- authelia +- authentication +- login +- SSO +- Authentication +- Security +- Two-Factor +- U2F +- YubiKey +- Push Notifications +- LDAP +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: authelia +sources: +- https://github.com/authelia/chartrepo +- https://github.com/authelia/authelia +type: application +version: 1.3.1 diff --git a/incubator/authelia/1.3.1/README.md b/incubator/authelia/1.3.1/README.md new file mode 100644 index 00000000000..4a6fe9a1bf8 --- /dev/null +++ b/incubator/authelia/1.3.1/README.md @@ -0,0 +1,45 @@ +# Introduction + +![Version: 1.0.7](https://img.shields.io/badge/Version-1.0.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Authelia is a Single Sign-On Multi-Factor portal for web apps + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | redis | 15.0.3 | +| https://truecharts.org/ | common | 6.10.7 | +| https://truecharts.org/ | postgresql | 1.2.4 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/authelia/1.3.1/app-readme.md b/incubator/authelia/1.3.1/app-readme.md new file mode 100644 index 00000000000..4e71e18c315 --- /dev/null +++ b/incubator/authelia/1.3.1/app-readme.md @@ -0,0 +1,4 @@ +Authelia is a Single Sign-On Multi-Factor portal for web apps + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Authelia is a Single Sign-On Multi-Factor portal for web apps diff --git a/incubator/authelia/1.3.1/charts/common-6.12.1.tgz b/incubator/authelia/1.3.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.3.1/charts/postgresql-1.3.0.tgz b/incubator/authelia/1.3.1/charts/postgresql-1.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2caee3ce8636fb4a68579dcc017ad83225c336a9 GIT binary patch literal 30700 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 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.3.1/charts/redis-15.0.3.tgz b/incubator/authelia/1.3.1/charts/redis-15.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..69973ddb4b93e1dd8aea2b875741433c667862bc GIT binary patch literal 77327 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 Yxqt4TyZ!wC00030|1~@9Kmc3@0BTO|RsaA1 literal 0 HcmV?d00001 diff --git a/incubator/authelia/1.3.1/ix_values.yaml b/incubator/authelia/1.3.1/ix_values.yaml new file mode 100644 index 00000000000..32637a28eec --- /dev/null +++ b/incubator/authelia/1.3.1/ix_values.yaml @@ -0,0 +1,231 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/authelia/authelia + pullPolicy: IfNotPresent + tag: "4.30.4" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: authelia + postgresqlDatabase: authelia + existingSecret: "{{ .Release.Name }}-dbcreds" + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-paths' + +probes: + liveness: + type: HTTP + path: /api/health" + + readiness: + type: HTTP + path: "/api/health" + + startup: + type: HTTP + path: "/api/health" + +## +## Storage Provider Configuration +## +## The available providers are: `local`, `mysql`, `postgres`. You must use one and only one of these providers. +storage: + ## + ## PostgreSQL (Storage Provider) + ## + postgres: + port: 5432 + database: authelia + username: authelia + sslmode: disable + timeout: 5s + +## +## Server Configuration +## +server: + ## + ## Port sets the configured port for the daemon, service, and the probes. + ## Default is 9091 and should not need to be changed. + ## + port: 9091 + + ## Buffers usually should be configured to be the same value. + ## Explanation at https://www.authelia.com/docs/configuration/server.html + ## Read buffer size adjusts the server's max incoming request size in bytes. + ## Write buffer size does the same for outgoing responses. + read_buffer_size: 4096 + write_buffer_size: 4096 + ## Set the single level path Authelia listens on. + ## Must be alphanumeric chars and should not contain any slashes. + path: "" + +## +## Redis Provider +## +## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html +## +## The redis connection details +redisProvider: + port: 6379 + + ## Optional username to be used with authentication. + # username: authelia + username: "" + + ## This is the Redis DB Index https://redis.io/commands/select (sometimes referred to as database number, DB, etc). + database_index: 0 + + ## The maximum number of concurrent active connections to Redis. + maximum_active_connections: 8 + + ## The target number of idle connections to have open ready for work. Useful when opening connections is slow. + minimum_idle_connections: 0 + + ## The Redis TLS configuration. If defined will require a TLS connection to the Redis instance(s). + tls: + enabled: false + + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for the connection. + minimum_version: TLS1.2 + + ## The Redis HA configuration options. + ## This provides specific options to Redis Sentinel, sentinel_name must be defined (Master Name). + high_availability: + enabled: false + enabledSecret: false + ## Sentinel Name / Master Name + sentinel_name: mysentinel + + ## The additional nodes to pre-seed the redis provider with (for sentinel). + ## If the host in the above section is defined, it will be combined with this list to connect to sentinel. + ## For high availability to be used you must have either defined; the host above or at least one node below. + nodes: [] + # nodes: + # - host: sentinel-0.databases.svc.cluster.local + # port: 26379 + # - host: sentinel-1.databases.svc.cluster.local + # port: 26379 + + ## Choose the host with the lowest latency. + route_by_latency: false + + ## Choose the host randomly. + route_randomly: false + +identity_providers: + oidc: + ## Enables this in the config map. Currently in beta stage. + ## See https://www.authelia.com/docs/configuration/identity-providers/oidc.html#roadmap + enabled: false + + access_token_lifespan: 1h + authorize_code_lifespan: 1m + id_token_lifespan: 1h + refresh_token_lifespan: 90m + + enable_client_debug_messages: false + + ## SECURITY NOTICE: It's not recommended changing this option, and highly discouraged to have it below 8 for + ## security reasons. + minimum_parameter_entropy: 8 + + clients: [] + # clients: + # - + ## The ID is the OpenID Connect ClientID which is used to link an application to a configuration. + # id: myapp + + ## The description to show to users when they end up on the consent screen. Defaults to the ID above. + # description: My Application + + ## The client secret is a shared secret between Authelia and the consumer of this client. + # secret: apple123 + + ## Sets the client to public. This should typically not be set, please see the documentation for usage. + # public: false + + ## The policy to require for this client; one_factor or two_factor. + # authorization_policy: two_factor + + ## Audience this client is allowed to request. + # audience: [] + + ## Scopes this client is allowed to request. + # scopes: + # - openid + # - profile + # - email + # - groups + + ## Redirect URI's specifies a list of valid case-sensitive callbacks for this client. + # redirect_uris: + # - https://oidc.example.com/oauth2/callback + + ## Grant Types configures which grants this client can obtain. + ## It's not recommended to configure this unless you know what you're doing. + # grant_types: + # - refresh_token + # - authorization_code + + ## Response Types configures which responses this client can be sent. + ## It's not recommended to configure this unless you know what you're doing. + # response_types: + # - code + + ## Response Modes configures which response modes this client supports. + ## It's not recommended to configure this unless you know what you're doing. + # response_modes: + # - form_post + # - query + # - fragment + + ## The algorithm used to sign userinfo endpoint responses for this client, either none or RS256. + # userinfo_signing_algorithm: none + + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/authelia/1.3.1/questions.yaml b/incubator/authelia/1.3.1/questions.yaml new file mode 100644 index 00000000000..bf246bc7434 --- /dev/null +++ b/incubator/authelia/1.3.1/questions.yaml @@ -0,0 +1,1697 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: domain + group: "App Configuration" + label: "Domain" + description: "The highest domain level possible, for example: domain.com when using app.domain.com" + schema: + type: string + default: "" + required: true + + - variable: default_redirection_url + group: "App Configuration" + label: "Default Redirection Url" + description: "If user tries to authenticate without any referer, this is used" + schema: + type: string + default: "" + required: false + + - variable: theme + group: "App Configuration" + label: "Theme" + schema: + type: string + default: "light" + enum: + - value: "light" + description: "info" + - value: "gray" + description: "gray" + - value: "dark" + description: "dark" + + - variable: log + group: "App Configuration" + label: "Log Configuration " + schema: + type: dict + attrs: + - variable: level + label: "Log Level" + schema: + type: string + default: "info" + enum: + - value: "info" + description: "info" + - value: "debug" + description: "debug" + - value: "trace" + description: "trace" + - variable: format + label: "Log Format" + schema: + type: string + default: "text" + enum: + - value: "json" + description: "json" + - value: "text" + description: "text" + + - variable: totp + group: "App Configuration" + label: "TOTP Configuration" + schema: + type: dict + attrs: + - variable: issuer + label: "Issuer" + description: "The issuer name displayed in the Authenticator application of your choice" + schema: + type: string + default: "" + - variable: period + label: "Period" + description: "The period in seconds a one-time password is current for" + schema: + type: int + default: 30 + - variable: skew + label: "skew" + description: "Controls number of one-time passwords either side of the current one that are valid." + schema: + type: int + default: 1 + + - variable: duo_api + group: "App Configuration" + label: "DUO API Configuration" + description: "Parameters used to contact the Duo API." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostname + label: "Hostname" + schema: + type: string + required: true + default: "" + + - variable: integration_key + label: "integration_key" + schema: + type: string + defaults: "" + required: true + - variable: plain_api_key + label: "plain_api_key" + schema: + type: string + defaults: "" + required: true + + - variable: session + group: "App Configuration" + label: "Session Provider" + description: "The session cookies identify the user once logged in." + schema: + type: dict + attrs: + - variable: name + label: "Cookie Name" + description: "The name of the session cookie." + schema: + type: string + required: true + default: "authelia_session" + - variable: same_site + label: "SameSite Value" + description: "Sets the Cookie SameSite value" + schema: + type: string + default: "lax" + enum: + - value: "lax" + description: "lax" + - value: "strict" + description: "strict" + - variable: expiration + label: "Expiration Time" + description: "The time in seconds before the cookie expires and session is reset." + schema: + type: string + defaults: "1h" + required: true + - variable: inactivity + label: "Inactivity Time" + description: "The inactivity time in seconds before the session is reset." + schema: + type: string + defaults: "5m" + required: true + - variable: inactivity + label: "Remember-Me duration" + description: "The remember me duration" + schema: + type: string + defaults: "5M" + required: true + + - variable: regulation + group: "App Configuration" + label: "Regulation Configuration" + description: "his mechanism prevents attackers from brute forcing the first factor." + schema: + type: dict + attrs: + - variable: max_retries + label: "Maximum Retries" + description: "The number of failed login attempts before user is banned. Set it to 0 to disable regulation." + schema: + type: int + default: 3 + - variable: find_time + label: "Find Time" + description: "The time range during which the user can attempt login before being banned." + schema: + type: string + defaults: "2m" + required: true + - variable: ban_time + label: "Ban Duration" + description: "The length of time before a banned user can login again" + schema: + type: string + defaults: "5m" + required: true + + + - variable: authentication_backend + group: "App Configuration" + label: "Authentication Backend Provider" + description: "sed for verifying user passwords and retrieve information such as email address and groups users belong to." + schema: + type: dict + attrs: + - variable: disable_reset_password + label: "Disable Reset Password" + description: "Disable both the HTML element and the API for reset password functionality" + schema: + type: boolean + default: false + - variable: refresh_interval + label: "Reset Interval" + description: "The amount of time to wait before we refresh data from the authentication backend" + schema: + type: string + defaults: "5m" + required: true + - variable: ldap + label: "LDAP backend configuration" + description: "Used for verifying user passwords and retrieve information such as email address and groups users belong to" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: implementation + label: "Implementation" + description: "The LDAP implementation, this affects elements like the attribute utilised for resetting a password" + schema: + type: string + default: "custom" + enum: + - value: "activedirectory" + description: "activedirectory" + - value: "custom" + description: "custom" + - variable: url + label: "URL" + description: "The url to the ldap server. Format: ://

[:]" + schema: + type: string + default: "ldap://openldap.default.svc.cluster.local" + required: true + - variable: timeout + label: "Connection Timeout" + schema: + type: string + default: "5s" + required: true + - variable: start_tls + label: "Start TLS" + description: "Use StartTLS with the LDAP connection" + schema: + type: boolean + default: false + - variable: tls + label: "TLS Settings" + schema: + type: dict + attrs: + - variable: server_name + label: "Server Name" + description: "Server Name for certificate validation (in case it's not set correctly in the URL)." + schema: + type: string + default: "" + - variable: skip_verify + label: "Skip Certificate Verification" + description: "Skip verifying the server certificate (to allow a self-signed certificate)" + schema: + type: boolean + default: false + - variable: minimum_version + label: "Minimum TLS version" + description: "Minimum TLS version for either Secure LDAP or LDAP StartTLS." + schema: + type: string + default: "TLS1.2" + enum: + - value: "TLS1.0" + description: "TLS1.0" + - value: "TLS1.1" + description: "TLS1.1" + - value: "TLS1.2" + description: "TLS1.2" + - value: "TLS1.3" + description: "TLS1.3" + - variable: base_dn + label: "Base DN" + description: "The base dn for every LDAP query." + schema: + type: string + defaults: "DC=example,DC=com" + required: true + - variable: username_attribute + label: "Username Attribute" + description: "The attribute holding the username of the user" + schema: + type: string + defaults: "" + required: true + - variable: additional_users_dn + label: "Additional Users DN" + description: "An additional dn to define the scope to all users." + schema: + type: string + defaults: "OU=Users" + required: true + - variable: users_filter + label: "Users Filter" + description: "The groups filter used in search queries to find the groups of the user." + schema: + type: string + defaults: "" + required: true + - variable: additional_groups_dn + label: "Additional Groups DN" + description: "An additional dn to define the scope of groups." + schema: + type: string + defaults: "OU=Groups" + required: true + - variable: groups_filter + label: "Groups Filter" + description: "The groups filter used in search queries to find the groups of the user." + schema: + type: string + defaults: "" + required: true + - variable: group_name_attribute + label: "Group name Attribute" + description: "The attribute holding the name of the group" + schema: + type: string + defaults: "" + required: true + - variable: mail_attribute + label: "Mail Attribute" + description: "The attribute holding the primary mail address of the user" + schema: + type: string + defaults: "" + required: true + - variable: display_name_attribute + label: "Display Name Attribute" + description: "he attribute holding the display name of the user. This will be used to greet an authenticated user." + schema: + type: string + defaults: "" + - variable: user + label: "Admin User" + description: "The username of the admin user used to connect to LDAP." + schema: + type: string + defaults: "CN=Authelia,DC=example,DC=com" + required: true + - variable: plain_password + label: "Password" + schema: + type: string + defaults: "" + required: true + - variable: file + label: "File backend configuration" + description: "With this backend, the users database is stored in a file which is updated when users reset their passwords." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: path + label: "Path" + schema: + type: string + defaults: "/config/users_database.yml" + required: true + - variable: password + label: "Password Settings" + schema: + type: dict + attrs: + - variable: algorithm + label: "Algorithm" + schema: + type: string + default: "argon2id" + enum: + - value: "argon2id" + description: "argon2id" + - value: "sha512" + description: "sha512" + - variable: iterations + label: "Iterations" + schema: + type: int + default: 1 + required: true + - variable: key_length + label: "Key Length" + schema: + type: int + default: 32 + required: true + - variable: salt_length + label: "Salt Length" + schema: + type: int + default: 16 + required: true + - variable: memory + label: "Memory" + schema: + type: int + default: 1024 + required: true + - variable: parallelism + label: "Parallelism" + schema: + type: int + default: 8 + required: true + + + - variable: notifier + group: "App Configuration" + label: "Notifier Configuration" + description: "otifications are sent to users when they require a password reset, a u2f registration or a TOTP registration." + schema: + type: dict + attrs: + - variable: disable_startup_check + label: "Disable Startup Check" + schema: + type: boolean + default: false + - variable: filesystem + label: "Filesystem Provider" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: filename + label: "File Path" + schema: + type: string + defaults: "/config/notification.txt" + required: true + - variable: smtp + label: "SMTP Provider" + description: "Use a SMTP server for sending notifications. Authelia uses the PLAIN or LOGIN methods to authenticate." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: host + label: "Host" + schema: + type: string + defaults: "smtp.mail.svc.cluster.local" + required: true + - variable: port + label: "Port" + schema: + type: int + defaults: 25 + required: true + - variable: timeout + label: "Timeout" + schema: + type: string + defaults: "5s" + required: true + - variable: username + label: "Username" + schema: + type: string + defaults: "" + required: true + - variable: plain_password + label: "Password" + schema: + type: string + defaults: "" + required: true + - variable: sender + label: "Sender" + schema: + type: string + defaults: "" + required: true + - variable: identifier + label: "Identifier" + description: "HELO/EHLO Identifier. Some SMTP Servers may reject the default of localhost." + schema: + type: string + defaults: "localhost" + required: true + - variable: subject + label: "Subject" + description: "Subject configuration of the emails sent, {title} is replaced by the text from the notifier" + schema: + type: string + defaults: "[Authelia] {title}" + required: true + - variable: startup_check_address + label: "Startup Check Address" + description: "This address is used during the startup check to verify the email configuration is correct." + schema: + type: string + defaults: "test@authelia.com" + required: true + - variable: disable_require_tls + label: "Disable Require TLS" + schema: + type: boolean + default: false + - variable: disable_html_emails + label: "Disable HTML emails" + schema: + type: boolean + default: false + - variable: tls + label: "TLS Settings" + schema: + type: dict + attrs: + - variable: server_name + label: "Server Name" + description: "Server Name for certificate validation (in case it's not set correctly in the URL)." + schema: + type: string + default: "" + - variable: skip_verify + label: "Skip Certificate Verification" + description: "Skip verifying the server certificate (to allow a self-signed certificate)" + schema: + type: boolean + default: false + - variable: minimum_version + label: "Minimum TLS version" + description: "Minimum TLS version for either Secure LDAP or LDAP StartTLS." + schema: + type: string + default: "TLS1.2" + enum: + - value: "TLS1.0" + description: "TLS1.0" + - value: "TLS1.1" + description: "TLS1.1" + - value: "TLS1.2" + description: "TLS1.2" + - value: "TLS1.3" + description: "TLS1.3" + - variable: access_control + group: "App Configuration" + label: "Access Control Configuration" + description: "Access control is a list of rules defining the authorizations applied for one resource to users or group of users." + schema: + type: dict + attrs: + - variable: default_policy + label: "Default Policy" + description: "Default policy can either be 'bypass', 'one_factor', 'two_factor' or 'deny'." + schema: + type: string + default: "two_factor" + enum: + - value: "bypass" + description: "bypass" + - value: "one_factor" + description: "one_factor" + - value: "two_factor" + description: "two_factor" + - value: "deny" + description: "deny" + + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: networkItem + label: "Network Item" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: network + label: "network" + schema: + type: string + default: "" + required: true + + - variable: rules + label: "Rules" + schema: + type: list + default: [] + items: + - variable: rulesItem + label: "Rule" + schema: + type: dict + attrs: + - variable: domain + label: "Domain" + description: "defines which domain or set of domains the rule applies to." + schema: + type: string + default: "" + required: true + - variable: policy + label: "Policy" + description: "The policy to apply to resources. It must be either 'bypass', 'one_factor', 'two_factor' or 'deny'." + schema: + type: string + default: "two_factor" + enum: + - value: "bypass" + description: "bypass" + - value: "one_factor" + description: "one_factor" + - value: "two_factor" + description: "two_factor" + - value: "deny" + description: "two_factor" + - variable: subject + label: "Subject" + description: "defines the subject to apply authorizations to. This parameter is optional and matching any user if not provided" + schema: + type: list + default: [] + items: + - variable: subjectitem + label: "Subject" + schema: + type: string + default: "" + required: true + - variable: networks + label: "Networks" + schema: + type: list + default: [] + items: + - variable: network + label: "Network" + schema: + type: string + default: "" + required: true + - variable: resources + label: "Resources" + description: "is a list of regular expressions that matches a set of resources to apply the policy to" + schema: + type: list + default: [] + items: + - variable: resource + label: "Resource" + schema: + type: string + default: "" + required: true + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36095 + required: true + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/incubator/authelia/1.3.1/templates/_configmap.tpl b/incubator/authelia/1.3.1/templates/_configmap.tpl new file mode 100644 index 00000000000..4bdeefd71cd --- /dev/null +++ b/incubator/authelia/1.3.1/templates/_configmap.tpl @@ -0,0 +1,245 @@ +{{/* Define the configmap */}} +{{- define "authelia.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-paths +data: + AUTHELIA_SERVER_DISABLE_HEALTHCHECK: "true" + AUTHELIA_JWT_SECRET_FILE: "/secrets/JWT_TOKEN" + AUTHELIA_SESSION_SECRET_FILE: "/secrets/SESSION_ENCRYPTION_KEY" + AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE: "/secrets/STORAGE_PASSWORD" + {{- if .Values.authentication_backend.ldap.enabled }} + AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD_FILE: "/secrets/LDAP_PASSWORD" + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE: "/secrets/SMTP_PASSWORD" + {{- end }} + AUTHELIA_SESSION_REDIS_PASSWORD_FILE: "/secrets/REDIS_PASSWORD" + {{- if and .Values.redisProvider.high_availability.enabled}} + AUTHELIA_SESSION_REDIS_HIGH_AVAILABILITY_SENTINEL_PASSWORD_FILE: "/secrets/REDIS_SENTINEL_PASSWORD" + {{- end }} + {{- if .Values.duo_api.enabled }} + AUTHELIA_DUO_API_SECRET_KEY_FILE: "/secrets/DUO_API_KEY" + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET_FILE: "/secrets/OIDC_HMAC_SECRET" + AUTHELIA_IDENTITY_PROVIDERS_OIDC_ISSUER_PRIVATE_KEY_FILE: "/secrets/OIDC_PRIVATE_KEY" + {{- end }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-configfile +data: + configuration.yaml: | + --- + theme: {{ default "light" .Values.theme }} + default_redirection_url: {{ default (printf "https://www.%s" .Values.domain) .Values.default_redirection_url }} + server: + host: 0.0.0.0 + port: {{ default 9091 .Values.server.port }} + {{- if not (eq "" (default "" .Values.server.path)) }} + path: {{ .Values.server.path }} + {{- end }} + read_buffer_size: {{ default 4096 .Values.server.read_buffer_size }} + write_buffer_size: {{ default 4096 .Values.server.write_buffer_size }} + enable_pprof: {{ default false .Values.server.enable_pprof }} + enable_expvars: {{ default false .Values.server.enable_expvars }} + log: + level: {{ default "info" .Values.log.level }} + format: {{ default "text" .Values.log.format }} + {{- if not (eq "" (default "" .Values.log.file_path)) }} + file_path: {{ .Values.log.file_path }} + keep_stdout: true + {{- end }} + totp: + issuer: {{ default .Values.domain .Values.totp.issuer }} + period: {{ default 30 .Values.totp.period }} + skew: {{ default 1 .Values.totp.skew }} + {{- if .Values.duo_api.enabled }} + duo_api: + hostname: {{ .Values.duo_api.hostname }} + integration_key: {{ .Values.duo_api.integration_key }} + {{- end }} + {{- with $auth := .Values.authentication_backend }} + authentication_backend: + disable_reset_password: {{ $auth.disable_reset_password }} + {{- if $auth.file.enabled }} + file: + path: {{ $auth.file.path }} + password: {{ toYaml $auth.file.password | nindent 10 }} + {{- end }} + {{- if $auth.ldap.enabled }} + ldap: + implementation: {{ default "custom" $auth.ldap.implementation }} + url: {{ $auth.ldap.url }} + timeout: {{ default "5s" $auth.ldap.timeout }} + start_tls: {{ $auth.ldap.start_tls }} + tls: + {{- if hasKey $auth.ldap.tls "server_name" }} + server_name: {{ default $auth.ldap.host $auth.ldap.tls.server_name }} + {{- end }} + minimum_version: {{ default "TLS1.2" $auth.ldap.tls.minimum_version }} + skip_verify: {{ default false $auth.ldap.tls.skip_verify }} + {{- if $auth.ldap.base_dn }} + base_dn: {{ $auth.ldap.base_dn }} + {{- end }} + {{- if $auth.ldap.username_attribute }} + username_attribute: {{ $auth.ldap.username_attribute }} + {{- end }} + {{- if $auth.ldap.additional_users_dn }} + additional_users_dn: {{ $auth.ldap.additional_users_dn }} + {{- end }} + {{- if $auth.ldap.users_filter }} + users_filter: {{ $auth.ldap.users_filter }} + {{- end }} + {{- if $auth.ldap.additional_groups_dn }} + additional_groups_dn: {{ $auth.ldap.additional_groups_dn }} + {{- end }} + {{- if $auth.ldap.groups_filter }} + groups_filter: {{ $auth.ldap.groups_filter }} + {{- end }} + {{- if $auth.ldap.group_name_attribute }} + group_name_attribute: {{ $auth.ldap.group_name_attribute }} + {{- end }} + {{- if $auth.ldap.mail_attribute }} + mail_attribute: {{ $auth.ldap.mail_attribute }} + {{- end }} + {{- if $auth.ldap.display_name_attribute }} + display_name_attribute: {{ $auth.ldap.display_name_attribute }} + {{- end }} + user: {{ $auth.ldap.user }} + {{- end }} + {{- end }} + {{- with $session := .Values.session }} + session: + name: {{ default "authelia_session" $session.name }} + domain: {{ required "A valid .Values.domain entry required!" $.Values.domain }} + same_site: {{ default "lax" $session.same_site }} + expiration: {{ default "1M" $session.expiration }} + inactivity: {{ default "5m" $session.inactivity }} + remember_me_duration: {{ default "1M" $session.remember_me_duration }} + {{- end }} + redis: + host: {{ ( printf "%v-%v" .Release.Name "redis-master" ) }} + {{- with $redis := .Values.redisProvider }} + port: {{ default 6379 $redis.port }} + {{- if not (eq $redis.username "") }} + username: {{ $redis.username }} + {{- end }} + maximum_active_connections: {{ default 8 $redis.maximum_active_connections }} + minimum_idle_connections: {{ default 0 $redis.minimum_idle_connections }} + {{- if $redis.tls.enabled }} + tls: + server_name: {{ $redis.tls.server_name }} + minimum_version: {{ default "TLS1.2" $redis.tls.minimum_version }} + skip_verify: {{ $redis.tls.skip_verify }} + {{- end }} + {{- if $redis.high_availability.enabled }} + high_availability: + sentinel_name: {{ $redis.high_availability.sentinel_name }} + {{- if $redis.high_availability.nodes }} + nodes: {{ toYaml $redis.high_availability.nodes | nindent 10 }} + {{- end }} + route_by_latency: {{ $redis.high_availability.route_by_latency }} + route_randomly: {{ $redis.high_availability.route_randomly }} + {{- end }} + {{- end }} + + regulation: {{ toYaml .Values.regulation | nindent 6 }} + storage: + postgres: + host: {{ printf "%v-%v" .Release.Name "postgresql" }} + {{- with $storage := .Values.storage }} + port: {{ default 5432 $storage.postgres.port }} + database: {{ default "authelia" $storage.postgres.database }} + username: {{ default "authelia" $storage.postgres.username }} + timeout: {{ default "5s" $storage.postgres.timeout }} + sslmode: {{ default "disable" $storage.postgres.sslmode }} + {{- end }} + {{- with $notifier := .Values.notifier }} + notifier: + disable_startup_check: {{ $.Values.notifier.disable_startup_check }} + {{- if $notifier.filesystem.enabled }} + filesystem: + filename: {{ $notifier.filesystem.filename }} + {{- end }} + {{- if $notifier.smtp.enabled }} + smtp: + host: {{ $notifier.smtp.host }} + port: {{ default 25 $notifier.smtp.port }} + timeout: {{ default "5s" $notifier.smtp.timeout }} + username: {{ $notifier.smtp.username }} + sender: {{ $notifier.smtp.sender }} + identifier: {{ $notifier.smtp.identifier }} + subject: {{ $notifier.smtp.subject | quote }} + startup_check_address: {{ $notifier.smtp.startup_check_address }} + disable_require_tls: {{ $notifier.smtp.disable_require_tls }} + disable_html_emails: {{ $notifier.smtp.disable_html_emails }} + tls: + server_name: {{ default $notifier.smtp.host $notifier.smtp.tls.server_name }} + minimum_version: {{ default "TLS1.2" $notifier.smtp.tls.minimum_version }} + skip_verify: {{ default false $notifier.smtp.tls.skip_verify }} + {{- end }} + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + identity_providers: + oidc: + access_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.access_token_lifespan }} + authorize_code_lifespan: {{ default "1m" .Values.identity_providers.oidc.authorize_code_lifespan }} + id_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.id_token_lifespan }} + refresh_token_lifespan: {{ default "90m" .Values.identity_providers.oidc.refresh_token_lifespan }} + enable_client_debug_messages: {{ default false .Values.identity_providers.oidc.enable_client_debug_messages }} + minimum_parameter_entropy: {{ default 8 .Values.identity_providers.oidc.minimum_parameter_entropy }} + {{- if gt (len .Values.identity_providers.oidc.clients) 0 }} + clients: + {{- range $client := .Values.identity_providers.oidc.clients }} + - id: {{ $client.id }} + description: {{ default $client.id $client.description }} + secret: {{ default (randAlphaNum 128) $client.secret }} + {{- if hasKey $client "public" }} + public: {{ $client.public }} + {{- end }} + authorization_policy: {{ default "two_factor" $client.authorization_policy }} + redirect_uris: {{ toYaml $client.redirect_uris | nindent 10 }} + {{- if hasKey $client "audience" }} + audience: {{ toYaml $client.audience | nindent 10 }} + {{- end }} + scopes: {{ toYaml (default (list "openid" "profile" "email" "groups") $client.scopes) | nindent 10 }} + grant_types: {{ toYaml (default (list "refresh_token" "authorization_code") $client.grant_types) | nindent 10 }} + response_types: {{ toYaml (default (list "code") $client.response_types) | nindent 10 }} + {{- if hasKey $client "response_modes" }} + response_modes: {{ toYaml $client.response_modes | nindent 10 }} + {{- end }} + userinfo_signing_algorithm: {{ default "none" $client.userinfo_signing_algorithm }} + {{- end }} + {{- end }} + {{- end }} + access_control: + {{- if (eq (len .Values.access_control.rules) 0) }} + {{- if (eq .Values.access_control.default_policy "bypass") }} + default_policy: one_factor + {{- else if (eq .Values.access_control.default_policy "deny") }} + default_policy: two_factor + {{- else }} + default_policy: {{ .Values.access_control.default_policy }} + {{- end }} + {{- else }} + default_policy: {{ .Values.access_control.default_policy }} + {{- end }} + {{- if (eq (len .Values.access_control.networks) 0) }} + networks: [] + {{- else }} + networks: {{ toYaml .Values.access_control.networks | nindent 6 }} + {{- end }} + {{- if (eq (len .Values.access_control.rules) 0) }} + rules: [] + {{- else }} + rules: {{ toYaml .Values.access_control.rules | nindent 6 }} + {{- end }} + ... +{{- end -}} diff --git a/incubator/authelia/1.3.1/templates/_secrets.tpl b/incubator/authelia/1.3.1/templates/_secrets.tpl new file mode 100644 index 00000000000..44f8b0e1548 --- /dev/null +++ b/incubator/authelia/1.3.1/templates/_secrets.tpl @@ -0,0 +1,112 @@ +{{/* Define the secrets */}} +{{- define "authelia.secrets" -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: {{ .Release.Name }}-dbcreds +{{- $dbprevious := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" .Release.Name "dbcreds" ) | quote ) }} +{{- $dbPass := "" }} +data: +{{- if $dbprevious }} + postgresql-password: {{ ( index $dbprevious.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $dbprevious.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque + + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: rediscreds +{{- $redisprevious := lookup "v1" "Secret" .Release.Namespace "rediscreds" }} +{{- $redisPass := "" }} +{{- $sentinelPass := "" }} +data: +{{- if $redisprevious }} + redis-password: {{ ( index $redisprevious.data "redis-password" ) }} + sentinel-password: {{ ( index $redisprevious.data "sentinel-password" ) }} +{{- else }} + {{- $redisPass = randAlphaNum 50 }} + {{- $sentinelPass = randAlphaNum 50 }} + redis-password: {{ $redisPass | b64enc | quote }} + sentinel-password: {{ $sentinelPass | b64enc | quote }} +{{- end }} + masterhost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} + slavehost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} +type: Opaque + + +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ include "common.names.fullname" . }}-secrets +{{- $autheliaprevious := lookup "v1" "Secret" .Release.Namespace ( ( printf "%v-%v" ( ( include "common.names.fullname" . ) | quote ) "-secrets" ) | quote ) }} +{{- $oidckey := "" }} +{{- $oidcsecret := "" }} +{{- $jwtsecret := "" }} +{{- $sessionsecret := "" }} +data: + {{- if $autheliaprevious }} + SESSION_ENCRYPTION_KEY: {{ index $autheliaprevious.data "SESSION_ENCRYPTION_KEY" }} + JWT_TOKEN: {{ index $autheliaprevious.data "JWT_TOKEN" }} + {{- else }} + {{- $jwtsecret := randAlphaNum 50 }} + {{- $sessionsecret := randAlphaNum 50 }} + SESSION_ENCRYPTION_KEY: {{ $jwtsecret | b64enc | quote }} + JWT_TOKEN: {{ $jwtsecret | b64enc | quote }} + {{- end }} + {{- if .Values.authentication_backend.ldap.enabled }} + LDAP_PASSWORD: {{ .Values.authentication_backend.ldap.plain_password }} + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + SMTP_PASSWORD: {{ .Values.notifier.smtp.plain_password }} + {{- end }} + {{- if .Values.duo_api.enabled }} + DUO_API_KEY: {{ .Values.duo_api.plain_api_key | b64enc }} + {{- end }} + {{- if $dbprevious }} + STORAGE_PASSWORD: {{ ( index $dbprevious.data "postgresql-password" ) }} + {{- else }} + STORAGE_PASSWORD: {{ $dbPass | b64enc | quote }} + {{- end }} + {{- if $redisprevious }} + REDIS_PASSWORD: {{ ( index $redisprevious.data "redis-password" ) }} + {{- if .Values.redisProvider.high_availability.enabled}} + REDIS_SENTINEL_PASSWORD: {{ ( index $redisprevious.data "sentinel-password" ) }} + {{- end }} + {{- else }} + REDIS_PASSWORD: {{ $redisPass | b64enc | quote }} + {{- if .Values.redisProvider.high_availability.enabled}} + REDIS_SENTINEL_PASSWORD: {{ $sentinelPass | b64enc | quote }} + {{- end }} + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + {{- if $autheliaprevious }} + OIDC_PRIVATE_KEY: {{ index $autheliaprevious.data "OIDC_PRIVATE_KEY" }} + OIDC_HMAC_SECRET: {{index $autheliaprevious.data "OIDC_HMAC_SECRET" }} + {{- else }} + {{- $oidckey := genPrivateKey "rsa" }} + {{- $oidcsecret := randAlphaNum 32 }} + OIDC_PRIVATE_KEY: {{ $oidckey | b64enc }} + OIDC_HMAC_SECRET: {{ $oidcsecret | b64enc }} + {{- end }} + {{- end }} + + +{{- end -}} diff --git a/incubator/authelia/1.3.1/templates/common.yaml b/incubator/authelia/1.3.1/templates/common.yaml new file mode 100644 index 00000000000..caa2c91f302 --- /dev/null +++ b/incubator/authelia/1.3.1/templates/common.yaml @@ -0,0 +1,72 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render configmap for authelia */}} +{{- include "authelia.configmap" . }} + +{{/* Render secrets for authelia */}} +{{- include "authelia.secrets" . }} + +{{/* Append the general configMap volume to the volumes */}} +{{- define "authelia.configmapVolume" -}} +enabled: "true" +mountPath: " /configuration.yaml" +readOnly: true +subPath: configuration.yaml +type: "custom" +volumeSpec: + configMap: + name: {{ include "common.names.fullname" . }}-configfile + items: + - key: configuration.yaml + path: configuration.yaml +{{- end -}} + +{{/* Append the general secret volumes to the volumes */}} +{{- define "authelia.secretVolumes" -}} +enabled: "true" +mountPath: " /secrets" +readOnly: true +type: "custom" +volumeSpec: + secret: + secretName: {{ include "common.names.fullname" . }}-secrets + items: + - key: "JWT_TOKEN" + path: JWT_TOKEN + - key: "SESSION_ENCRYPTION_KEY" + path: SESSION_ENCRYPTION_KEY + - key: "STORAGE_PASSWORD" + path: STORAGE_PASSWORD + {{- if .Values.authentication_backend.ldap.enabled }} + - key: "LDAP_PASSWORD" + path: LDAP_PASSWORD + {{- end }} + {{- if .Values.notifier.smtp.enabled }} + - key: "SMTP_PASSWORD" + path: SMTP_PASSWORD + {{- end }} + - key: "REDIS_PASSWORD" + path: REDIS_PASSWORD + {{- if .Values.redisProvider.high_availability.enabled}} + - key: "REDIS_SENTINEL_PASSWORD" + path: REDIS_SENTINEL_PASSWORD + {{- end }} + {{- if .Values.duo_api.enabled }} + - key: "DUO_API_KEY" + path: DUO_API_KEY + {{- end }} + {{- if .Values.identity_providers.oidc.enabled }} + - key: "OIDC_PRIVATE_KEY" + path: OIDC_PRIVATE_KEY + - key: "OIDC_HMAC_SECRET" + path: OIDC_HMAC_SECRET + {{- end }} +{{- end -}} + +{{- $_ := set .Values.persistence "authelia-configfile" (include "authelia.configmapVolume" . | fromYaml) -}} +{{- $_ := set .Values.persistence "authelia-secrets" (include "authelia.secretVolumes" . | fromYaml) -}} + + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/incubator/authelia/1.3.1/test_values.yaml b/incubator/authelia/1.3.1/test_values.yaml new file mode 100644 index 00000000000..f416a33a438 --- /dev/null +++ b/incubator/authelia/1.3.1/test_values.yaml @@ -0,0 +1,662 @@ +# Default values for Bitwarden. + +image: + repository: ghcr.io/authelia/authelia + pullPolicy: IfNotPresent + tag: "4.30.4" + +command: ["authelia"] +args: ["--config=/configuration.yaml"] + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 9091 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + redismaster: + noMount: true + forceName: "redismaster" + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: authelia + postgresqlDatabase: authelia + existingSecret: "{{ .Release.Name }}-dbcreds" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + + +podSecurityContext: + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + privileged: false + + +resources: + limits: {} + # limits: + # cpu: "4.00" + # memory: 125Mi + requests: {} + # requests: + # cpu: "0.25" + # memory: 50Mi + +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-paths' + +probes: + liveness: + type: HTTP + path: /api/health" + + readiness: + type: HTTP + path: "/api/health" + + startup: + type: HTTP + path: "/api/health" + +domain: example.com + +## +## Server Configuration +## +server: + ## + ## Port sets the configured port for the daemon, service, and the probes. + ## Default is 9091 and should not need to be changed. + ## + port: 9091 + + ## Buffers usually should be configured to be the same value. + ## Explanation at https://www.authelia.com/docs/configuration/server.html + ## Read buffer size adjusts the server's max incoming request size in bytes. + ## Write buffer size does the same for outgoing responses. + read_buffer_size: 4096 + write_buffer_size: 4096 + ## Set the single level path Authelia listens on. + ## Must be alphanumeric chars and should not contain any slashes. + path: "" + +log: + ## Level of verbosity for logs: info, debug, trace. + level: trace + + ## Format the logs are written as: json, text. + format: text + + ## TODO: Statefulness check should check if this is set, and the configMap should enable it. + ## File path where the logs will be written. If not set logs are written to stdout. + # file_path: /config/authelia.log + +## Default redirection URL +## +## If user tries to authenticate without any referer, Authelia does not know where to redirect the user to at the end +## of the authentication process. This parameter allows you to specify the default redirection URL Authelia will use +## in such a case. +## +## Note: this parameter is optional. If not provided, user won't be redirected upon successful authentication. +## Default is https://www. (value at the top of the values.yaml). +default_redirection_url: "" +# default_redirection_url: https://example.com + +theme: light + +## +## TOTP Configuration +## +## Parameters used for TOTP generation +totp: + ## The issuer name displayed in the Authenticator application of your choice + ## See: https://github.com/google/google-authenticator/wiki/Key-Uri-Format for more info on issuer names + ## Defaults to . + issuer: "" + ## The period in seconds a one-time password is current for. Changing this will require all users to register + ## their TOTP applications again. Warning: before changing period read the docs link below. + period: 30 + ## The skew controls number of one-time passwords either side of the current one that are valid. + ## Warning: before changing skew read the docs link below. + ## See: https://www.authelia.com/docs/configuration/one-time-password.html#period-and-skew to read the documentation. + skew: 1 + +## +## Duo Push API Configuration +## +## Parameters used to contact the Duo API. Those are generated when you protect an application of type +## "Partner Auth API" in the management panel. +duo_api: + enabled: false + hostname: api-123456789.example.com + integration_key: ABCDEF + plain_api_key: "" + +## +## Authentication Backend Provider Configuration +## +## Used for verifying user passwords and retrieve information such as email address and groups users belong to. +## +## The available providers are: `file`, `ldap`. You must use one and only one of these providers. +authentication_backend: + ## Disable both the HTML element and the API for reset password functionality + disable_reset_password: false + + ## The amount of time to wait before we refresh data from the authentication backend. Uses duration notation. + ## To disable this feature set it to 'disable', this will slightly reduce security because for Authelia, users will + ## always belong to groups they belonged to at the time of login even if they have been removed from them in LDAP. + ## To force update on every request you can set this to '0' or 'always', this will increase processor demand. + ## See the below documentation for more information. + ## Duration Notation docs: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ## Refresh Interval docs: https://www.authelia.com/docs/configuration/authentication/ldap.html#refresh-interval + refresh_interval: 5m + + ## LDAP backend configuration. + ## + ## This backend allows Authelia to be scaled to more + ## than one instance and therefore is recommended for + ## production. + ldap: + + ## Enable LDAP Backend. + enabled: false + + ## The LDAP implementation, this affects elements like the attribute utilised for resetting a password. + ## Acceptable options are as follows: + ## - 'activedirectory' - For Microsoft Active Directory. + ## - 'custom' - For custom specifications of attributes and filters. + ## This currently defaults to 'custom' to maintain existing behaviour. + ## + ## Depending on the option here certain other values in this section have a default value, notably all of the + ## attribute mappings have a default value that this config overrides, you can read more about these default values + ## at https://www.authelia.com/docs/configuration/authentication/ldap.html#defaults + implementation: activedirectory + + ## The url to the ldap server. Format: ://
[:]. + ## Scheme can be ldap or ldaps in the format (port optional). + url: ldap://openldap.default.svc.cluster.local + + ## Connection Timeout. + timeout: 5s + + ## Use StartTLS with the LDAP connection. + start_tls: false + + tls: + ## Server Name for certificate validation (in case it's not set correctly in the URL). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for either Secure LDAP or LDAP StartTLS. + minimum_version: TLS1.2 + + ## The base dn for every LDAP query. + base_dn: DC=example,DC=com + + ## The attribute holding the username of the user. This attribute is used to populate the username in the session + ## information. It was introduced due to #561 to handle case insensitive search queries. For you information, + ## Microsoft Active Directory usually uses 'sAMAccountName' and OpenLDAP usually uses 'uid'. Beware that this + ## attribute holds the unique identifiers for the users binding the user and the configuration stored in database. + ## Therefore only single value attributes are allowed and the value must never be changed once attributed to a user + ## otherwise it would break the configuration for that user. Technically, non-unique attributes like 'mail' can also + ## be used but we don't recommend using them, we instead advise to use the attributes mentioned above + ## (sAMAccountName and uid) to follow https://www.ietf.org/rfc/rfc2307.txt. + username_attribute: "" + + ## An additional dn to define the scope to all users. + additional_users_dn: OU=Users + + ## The users filter used in search queries to find the user profile based on input filled in login form. + ## Various placeholders are available in the user filter: + ## - {input} is a placeholder replaced by what the user inputs in the login form. + ## - {username_attribute} is a mandatory placeholder replaced by what is configured in `username_attribute`. + ## - {mail_attribute} is a placeholder replaced by what is configured in `mail_attribute`. + ## - DON'T USE - {0} is an alias for {input} supported for backward compatibility but it will be deprecated in later + ## versions, so please don't use it. + ## + ## Recommended settings are as follows: + ## - Microsoft Active Directory: (&({username_attribute}={input})(objectCategory=person)(objectClass=user)) + ## - OpenLDAP: + ## - (&({username_attribute}={input})(objectClass=person)) + ## - (&({username_attribute}={input})(objectClass=inetOrgPerson)) + ## + ## To allow sign in both with username and email, one can use a filter like + ## (&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=person)) + users_filter: "" + + ## An additional dn to define the scope of groups. + additional_groups_dn: OU=Groups + + ## The groups filter used in search queries to find the groups of the user. + ## - {input} is a placeholder replaced by what the user inputs in the login form. + ## - {username} is a placeholder replace by the username stored in LDAP (based on `username_attribute`). + ## - {dn} is a matcher replaced by the user distinguished name, aka, user DN. + ## - {username_attribute} is a placeholder replaced by what is configured in `username_attribute`. + ## - {mail_attribute} is a placeholder replaced by what is configured in `mail_attribute`. + ## - DON'T USE - {0} is an alias for {input} supported for backward compatibility but it will be deprecated in later + ## versions, so please don't use it. + ## - DON'T USE - {1} is an alias for {username} supported for backward compatibility but it will be deprecated in + ## later version, so please don't use it. + ## + ## If your groups use the `groupOfUniqueNames` structure use this instead: + ## (&(uniquemember={dn})(objectclass=groupOfUniqueNames)) + groups_filter: "" + + ## The attribute holding the name of the group + group_name_attribute: "" + + ## The attribute holding the mail address of the user. If multiple email addresses are defined for a user, only the + ## first one returned by the LDAP server is used. + mail_attribute: "" + + ## The attribute holding the display name of the user. This will be used to greet an authenticated user. + display_name_attribute: "" + + ## The username of the admin user. + user: CN=Authelia,DC=example,DC=com + plain_password: "" + + ## + ## File (Authentication Provider) + ## + ## With this backend, the users database is stored in a file which is updated when users reset their passwords. + ## Therefore, this backend is meant to be used in a dev environment and not in production since it prevents Authelia + ## to be scaled to more than one instance. The options under 'password' have sane defaults, and as it has security + ## implications it is highly recommended you leave the default values. Before considering changing these settings + ## please read the docs page below: + ## https://www.authelia.com/docs/configuration/authentication/file.html#password-hash-algorithm-tuning + ## + ## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html + ## + file: + enabled: true + path: /config/users_database.yml + password: + algorithm: argon2id + iterations: 1 + key_length: 32 + salt_length: 16 + memory: 1024 + parallelism: 8 + +## +## Access Control Configuration +## +## Access control is a list of rules defining the authorizations applied for one resource to users or group of users. +## +## If 'access_control' is not defined, ACL rules are disabled and the 'bypass' rule is applied, i.e., access is allowed +## to anyone. Otherwise restrictions follow the rules defined. +## +## Note: One can use the wildcard * to match any subdomain. +## It must stand at the beginning of the pattern. (example: *.mydomain.com) +## +## Note: You must put patterns containing wildcards between simple quotes for the YAML to be syntactically correct. +## +## Definition: A 'rule' is an object with the following keys: 'domain', 'subject', 'policy' and 'resources'. +## +## - 'domain' defines which domain or set of domains the rule applies to. +## +## - 'subject' defines the subject to apply authorizations to. This parameter is optional and matching any user if not +## provided. If provided, the parameter represents either a user or a group. It should be of the form +## 'user:' or 'group:'. +## +## - 'policy' is the policy to apply to resources. It must be either 'bypass', 'one_factor', 'two_factor' or 'deny'. +## +## - 'resources' is a list of regular expressions that matches a set of resources to apply the policy to. This parameter +## is optional and matches any resource if not provided. +## +## Note: the order of the rules is important. The first policy matching (domain, resource, subject) applies. +access_control: + ## Default policy can either be 'bypass', 'one_factor', 'two_factor' or 'deny'. It is the policy applied to any + ## resource if there is no policy to be applied to the user. + default_policy: deny + + networks: [] + # networks: + # - name: private + # networks: + # - 10.0.0.0/8 + # - 172.16.0.0/12 + # - 192.168.0.0/16 + # - name: vpn + # networks: + # - 10.9.0.0/16 + + rules: [] + # rules: + # - domain: public.example.com + # policy: bypass + # - domain: "*.example.com" + # policy: bypass + # methods: + # - OPTIONS + # - domain: secure.example.com + # policy: one_factor + # networks: + # - private + # - vpn + # - 192.168.1.0/24 + # - 10.0.0.1 + # - domain: + # - secure.example.com + # - private.example.com + # policy: two_factor + # - domain: singlefactor.example.com + # policy: one_factor + # - domain: "mx2.mail.example.com" + # subject: "group:admins" + # policy: deny + # - domain: "*.example.com" + # subject: + # - "group:admins" + # - "group:moderators" + # policy: two_factor + # - domain: dev.example.com + # resources: + # - "^/groups/dev/.*$" + # subject: "group:dev" + # policy: two_factor + # - domain: dev.example.com + # resources: + # - "^/users/john/.*$" + # subject: + # - ["group:dev", "user:john"] + # - "group:admins" + # policy: two_factor + # - domain: "{user}.example.com" + # policy: bypass + +## +## Session Provider Configuration +## +## The session cookies identify the user once logged in. +## The available providers are: `memory`, `redis`. Memory is the provider unless redis is defined. +session: + ## The name of the session cookie. (default: authelia_session). + name: authelia_session + + ## Sets the Cookie SameSite value. Possible options are none, lax, or strict. + ## Please read https://www.authelia.com/docs/configuration/session.html#same_site + same_site: lax + + ## The time in seconds before the cookie expires and session is reset. + expiration: 1h + + ## The inactivity time in seconds before the session is reset. + inactivity: 5m + + ## The remember me duration. + ## Value is in seconds, or duration notation. Value of 0 disables remember me. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ## Longer periods are considered less secure because a stolen cookie will last longer giving attackers more time to + ## spy or attack. Currently the default is 1M or 1 month. + remember_me_duration: 1M + +## +## Redis Provider +## +## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html +## +## The redis connection details +redisProvider: + port: 6379 + + ## Optional username to be used with authentication. + # username: authelia + username: "" + + ## This is the Redis DB Index https://redis.io/commands/select (sometimes referred to as database number, DB, etc). + database_index: 0 + + ## The maximum number of concurrent active connections to Redis. + maximum_active_connections: 8 + + ## The target number of idle connections to have open ready for work. Useful when opening connections is slow. + minimum_idle_connections: 0 + + ## The Redis TLS configuration. If defined will require a TLS connection to the Redis instance(s). + tls: + enabled: false + + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for the connection. + minimum_version: TLS1.2 + + ## The Redis HA configuration options. + ## This provides specific options to Redis Sentinel, sentinel_name must be defined (Master Name). + high_availability: + enabled: false + enabledSecret: false + ## Sentinel Name / Master Name + sentinel_name: mysentinel + + ## The additional nodes to pre-seed the redis provider with (for sentinel). + ## If the host in the above section is defined, it will be combined with this list to connect to sentinel. + ## For high availability to be used you must have either defined; the host above or at least one node below. + nodes: [] + # nodes: + # - host: sentinel-0.databases.svc.cluster.local + # port: 26379 + # - host: sentinel-1.databases.svc.cluster.local + # port: 26379 + + ## Choose the host with the lowest latency. + route_by_latency: false + + ## Choose the host randomly. + route_randomly: false + +## +## Regulation Configuration +## +## This mechanism prevents attackers from brute forcing the first factor. It bans the user if too many attempts are done +## in a short period of time. +regulation: + ## The number of failed login attempts before user is banned. Set it to 0 to disable regulation. + max_retries: 3 + + ## The time range during which the user can attempt login before being banned. The user is banned if the + ## authentication failed 'max_retries' times in a 'find_time' seconds window. Find Time accepts duration notation. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + find_time: 2m + + ## The length of time before a banned user can login again. Ban Time accepts duration notation. + ## See: https://www.authelia.com/docs/configuration/index.html#duration-notation-format + ban_time: 5m + + +## +## Storage Provider Configuration +## +## The available providers are: `local`, `mysql`, `postgres`. You must use one and only one of these providers. +storage: + ## + ## PostgreSQL (Storage Provider) + ## + postgres: + port: 5432 + database: authelia + username: authelia + sslmode: disable + timeout: 5s + +## +## Notification Provider +## +## +## Notifications are sent to users when they require a password reset, a u2f registration or a TOTP registration. +## The available providers are: filesystem, smtp. You must use one and only one of these providers. +notifier: + ## You can disable the notifier startup check by setting this to true. + disable_startup_check: false + + ## + ## File System (Notification Provider) + ## + ## Important: Kubernetes (or HA) users must read https://www.authelia.com/docs/features/statelessness.html + ## + filesystem: + enabled: true + filename: /config/notification.txt + + ## + ## SMTP (Notification Provider) + ## + ## Use a SMTP server for sending notifications. Authelia uses the PLAIN or LOGIN methods to authenticate. + ## [Security] By default Authelia will: + ## - force all SMTP connections over TLS including unauthenticated connections + ## - use the disable_require_tls boolean value to disable this requirement + ## (only works for unauthenticated connections) + ## - validate the SMTP server x509 certificate during the TLS handshake against the hosts trusted certificates + ## (configure in tls section) + smtp: + enabled: false + enabledSecret: false + host: smtp.mail.svc.cluster.local + port: 25 + timeout: 5s + username: test + plain_password: test + sender: admin@example.com + ## HELO/EHLO Identifier. Some SMTP Servers may reject the default of localhost. + identifier: localhost + ## Subject configuration of the emails sent. + ## {title} is replaced by the text from the notifier + subject: "[Authelia] {title}" + ## This address is used during the startup check to verify the email configuration is correct. + ## It's not important what it is except if your email server only allows local delivery. + startup_check_address: test@authelia.com + disable_require_tls: false + disable_html_emails: false + + tls: + ## Server Name for certificate validation (in case you are using the IP or non-FQDN in the host option). + server_name: "" + + ## Skip verifying the server certificate (to allow a self-signed certificate). + ## In preference to setting this we strongly recommend you add the public portion of the certificate to the + ## certificates directory which is defined by the `certificates_directory` option at the top of the config. + skip_verify: false + + ## Minimum TLS version for either StartTLS or SMTPS. + minimum_version: TLS1.2 + +identity_providers: + oidc: + ## Enables this in the config map. Currently in beta stage. + ## See https://www.authelia.com/docs/configuration/identity-providers/oidc.html#roadmap + enabled: false + + access_token_lifespan: 1h + authorize_code_lifespan: 1m + id_token_lifespan: 1h + refresh_token_lifespan: 90m + + enable_client_debug_messages: false + + ## SECURITY NOTICE: It's not recommended changing this option, and highly discouraged to have it below 8 for + ## security reasons. + minimum_parameter_entropy: 8 + + clients: [] + # clients: + # - + ## The ID is the OpenID Connect ClientID which is used to link an application to a configuration. + # id: myapp + + ## The description to show to users when they end up on the consent screen. Defaults to the ID above. + # description: My Application + + ## The client secret is a shared secret between Authelia and the consumer of this client. + # secret: apple123 + + ## Sets the client to public. This should typically not be set, please see the documentation for usage. + # public: false + + ## The policy to require for this client; one_factor or two_factor. + # authorization_policy: two_factor + + ## Audience this client is allowed to request. + # audience: [] + + ## Scopes this client is allowed to request. + # scopes: + # - openid + # - profile + # - email + # - groups + + ## Redirect URI's specifies a list of valid case-sensitive callbacks for this client. + # redirect_uris: + # - https://oidc.example.com/oauth2/callback + + ## Grant Types configures which grants this client can obtain. + ## It's not recommended to configure this unless you know what you're doing. + # grant_types: + # - refresh_token + # - authorization_code + + ## Response Types configures which responses this client can be sent. + ## It's not recommended to configure this unless you know what you're doing. + # response_types: + # - code + + ## Response Modes configures which response modes this client supports. + ## It's not recommended to configure this unless you know what you're doing. + # response_modes: + # - form_post + # - query + # - fragment + + ## The algorithm used to sign userinfo endpoint responses for this client, either none or RS256. + # userinfo_signing_algorithm: none diff --git a/incubator/authelia/1.3.1/values.yaml b/incubator/authelia/1.3.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/custom-app/0.2.2/CONFIG.md b/incubator/custom-app/0.2.2/CONFIG.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/custom-app/0.2.2/Chart.lock b/incubator/custom-app/0.2.2/Chart.lock new file mode 100644 index 00000000000..d316c6a15f6 --- /dev/null +++ b/incubator/custom-app/0.2.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:04:35.592149307Z" diff --git a/incubator/custom-app/0.2.2/Chart.yaml b/incubator/custom-app/0.2.2/Chart.yaml new file mode 100644 index 00000000000..1623314feb6 --- /dev/null +++ b/incubator/custom-app/0.2.2/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Advanced tool to create your own TrueCharts-based App +home: https://github.com/truecharts/apps/tree/master/charts/stable/custom-app +icon: https://truecharts.org/_static/img/custom-app-icon.png +keywords: +- custom +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: custom-app +sources: +- https://github.com/truecharts/apps/tree/master/charts/stable/custom-app +type: application +version: 0.2.2 diff --git a/incubator/custom-app/0.2.2/README.md b/incubator/custom-app/0.2.2/README.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/custom-app/0.2.2/app-readme.md b/incubator/custom-app/0.2.2/app-readme.md new file mode 100644 index 00000000000..c539c410987 --- /dev/null +++ b/incubator/custom-app/0.2.2/app-readme.md @@ -0,0 +1 @@ +Advanced tool to create your own TrueCharts-based App diff --git a/incubator/custom-app/0.2.2/charts/common-6.12.1.tgz b/incubator/custom-app/0.2.2/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/custom-app/0.2.2/ix_values.yaml b/incubator/custom-app/0.2.2/ix_values.yaml new file mode 100644 index 00000000000..18f32919de7 --- /dev/null +++ b/incubator/custom-app/0.2.2/ix_values.yaml @@ -0,0 +1,10 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/custom-app/0.2.2/questions.yaml b/incubator/custom-app/0.2.2/questions.yaml new file mode 100644 index 00000000000..dc5457b4bc8 --- /dev/null +++ b/incubator/custom-app/0.2.2/questions.yaml @@ -0,0 +1,1194 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + - variable: image + group: "Container Image" + label: "Container" + schema: + type: dict + attrs: + - variable: repository + label: "Container Repository" + schema: + type: string + default: "ghcr.io/k8s-at-home/jackett" + required: true + - variable: tag + label: "Container Tag" + schema: + type: string + default: "v0.18.616" + required: true + - variable: pullPolicy + label: "Container Pullpolicy" + schema: + type: string + default: "IfNotPresent" + enum: + - value: "IfNotPresent" + description: "IfNotPresent" + - value: "Always" + description: "Always" + - value: "Never" + description: "Never" + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplementalGroup" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: deviceList + label: "Mount (USB) devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + + - variable: resources + group: "Resources and Devices" + label: "Resource Limits" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/incubator/custom-app/0.2.2/templates/common.yaml b/incubator/custom-app/0.2.2/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/custom-app/0.2.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/custom-app/0.2.2/test_values.yaml b/incubator/custom-app/0.2.2/test_values.yaml new file mode 100644 index 00000000000..c1ad52b84e3 --- /dev/null +++ b/incubator/custom-app/0.2.2/test_values.yaml @@ -0,0 +1,43 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.616 + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 9117 + portsList: + - name: "extraport" + enabled: true + port: 9118 + +serviceList: + - name: extraservice + enabled: true + portsList: + - name: "extrasvcport" + enabled: true + port: 9119 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/incubator/custom-app/0.2.2/values.yaml b/incubator/custom-app/0.2.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/jdownloader2/0.3.1/CONFIG.md b/incubator/jdownloader2/0.3.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/jdownloader2/0.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 Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/jdownloader2/0.3.1/Chart.lock b/incubator/jdownloader2/0.3.1/Chart.lock new file mode 100644 index 00000000000..48811ee9c20 --- /dev/null +++ b/incubator/jdownloader2/0.3.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:04:40.52284254Z" diff --git a/incubator/jdownloader2/0.3.1/Chart.yaml b/incubator/jdownloader2/0.3.1/Chart.yaml new file mode 100644 index 00000000000..7cca857775d --- /dev/null +++ b/incubator/jdownloader2/0.3.1/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: JDownloader is a free, open-source download management tool with a huge + community of developers that makes downloading as easy and fast as it should be. +home: https://github.com/truecharts/apps/tree/master/charts/stable/jackett +icon: https://jdownloader.org/_media/knowledge/wiki/jdownloader.png?w=150 +keywords: +- jdownloader +- download +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: Simoneu01@users.noreply.github.com + name: Simoneu01 + url: truecharts.org +name: jdownloader2 +sources: +- https://github.com/jlesage/docker-jdownloader-2 +- https://hub.docker.com/r/jlesage/jdownloader-2 +- https://jdownloader.org/ +type: application +version: 0.3.1 diff --git a/incubator/jdownloader2/0.3.1/README.md b/incubator/jdownloader2/0.3.1/README.md new file mode 100644 index 00000000000..52f27962837 --- /dev/null +++ b/incubator/jdownloader2/0.3.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 0.0.6](https://img.shields.io/badge/Version-0.0.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/jdownloader2/0.3.1/app-readme.md b/incubator/jdownloader2/0.3.1/app-readme.md new file mode 100644 index 00000000000..fcc6e45d8ae --- /dev/null +++ b/incubator/jdownloader2/0.3.1/app-readme.md @@ -0,0 +1,4 @@ +JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +JDownloader is a free, open-source download management tool with a huge diff --git a/incubator/jdownloader2/0.3.1/charts/common-6.12.1.tgz b/incubator/jdownloader2/0.3.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/incubator/jdownloader2/0.3.1/ix_values.yaml b/incubator/jdownloader2/0.3.1/ix_values.yaml new file mode 100644 index 00000000000..f54d8d42d59 --- /dev/null +++ b/incubator/jdownloader2/0.3.1/ix_values.yaml @@ -0,0 +1,21 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/jdownloader-2 + tag: v1.7.1 + pullPolicy: IfNotPresent + +#All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/jdownloader2/0.3.1/questions.yaml b/incubator/jdownloader2/0.3.1/questions.yaml new file mode 100644 index 00000000000..dbc87cce0db --- /dev/null +++ b/incubator/jdownloader2/0.3.1/questions.yaml @@ -0,0 +1,1187 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for jdownloader2 containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for jdownloader2 containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for jdownloader2 containers" + schema: + type: string + default: "022" + - variable: KEEP_APP_RUNNING + label: "KEEP_APP_RUNNING" + description: "When set to 1, the application will be automatically restarted if it crashes or if a user quits it." + schema: + type: int + default: 0 + - variable: gui + label: "GUI Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: DISPLAY_WIDTH + label: "DISPLAY_WIDTH" + description: "Width (in pixels) of the application's window." + schema: + type: string + default: "1280" + required: true + - variable: DISPLAY_HEIGHT + label: "DISPLAY_HEIGHT" + description: "Height (in pixels) of the application's window." + schema: + type: string + default: "768" + required: true + - variable: SECURE_CONNECTION + label: "SECURE_CONNECTION" + description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." + schema: + type: string + default: "0" + required: true + - variable: VNC_PASSWORD + label: "VNC_PASSWORD" + description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." + schema: + private: true + type: string + default: "" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5580 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + - variable: myjd + label: "MyJDownloader" + description: "Port used by MyJDownloader mobile applications and browser extensions to establish a direct connect to the JDownloader" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: myjd + label: "myjd Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3129 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3129 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: vnc + label: "VNC Service" + description: "The VNC service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "VNC Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36094 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/incubator/jdownloader2/0.3.1/templates/common.yaml b/incubator/jdownloader2/0.3.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/incubator/jdownloader2/0.3.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/incubator/jdownloader2/0.3.1/test_values.yaml b/incubator/jdownloader2/0.3.1/test_values.yaml new file mode 100644 index 00000000000..bf467dbc38c --- /dev/null +++ b/incubator/jdownloader2/0.3.1/test_values.yaml @@ -0,0 +1,50 @@ +# Default values for jdownloader2. + +image: + repository: jlesage/jdownloader-2 + pullPolicy: IfNotPresent + tag: v1.7.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5800 + vnc: + enabled: true + type: ClusterIP + ports: + vnc: + enabled: true + port: 5900 + protocol: "TCP" + +# All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + # Permissions Settings + PUID: "568" + PGID: "568" + # General Settings + KEEP_APP_RUNNING: "0" + CLEAN_TMP_DIR: "1" + # GUI Settings + DISPLAY_WIDTH: "1280" + DISPLAY_HEIGHT: "768" + SECURE_CONNECTION: "0" + VNC_PASSWORD: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/incubator/jdownloader2/0.3.1/values.yaml b/incubator/jdownloader2/0.3.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/nextcloud/3.4.1/CONFIG.md b/incubator/nextcloud/3.4.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/incubator/nextcloud/3.4.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/nextcloud/3.4.1/Chart.lock b/incubator/nextcloud/3.4.1/Chart.lock new file mode 100644 index 00000000000..93973d882e0 --- /dev/null +++ b/incubator/nextcloud/3.4.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.3 +digest: sha256:ef39067328029b87716d9271f3eb04d774aeaa67289d8ab5e34deeca7db9003a +generated: "2021-08-30T21:04:48.179210772Z" diff --git a/incubator/nextcloud/3.4.1/Chart.yaml b/incubator/nextcloud/3.4.1/Chart.yaml new file mode 100644 index 00000000000..260c588e199 --- /dev/null +++ b/incubator/nextcloud/3.4.1/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +- condition: redis.enabled + name: redis + repository: https://charts.bitnami.com/bitnami + version: 15.0.3 +deprecated: false +description: A private cloud server that puts the control and security of your own + data back into your hands. +home: https://nextcloud.com/ +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Nextcloud_Logo.svg/1280px-Nextcloud_Logo.svg.png +keywords: +- nextcloud +- storage +- http +- web +- php +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: nextcloud +sources: +- https://github.com/nextcloud/docker +- https://github.com/nextcloud/helm +type: application +version: 3.4.1 diff --git a/incubator/nextcloud/3.4.1/README.md b/incubator/nextcloud/3.4.1/README.md new file mode 100644 index 00000000000..e44dc3dd88b --- /dev/null +++ b/incubator/nextcloud/3.4.1/README.md @@ -0,0 +1,45 @@ +# Introduction + +![Version: 3.1.4](https://img.shields.io/badge/Version-3.1.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A private cloud server that puts the control and security of your own data back into your hands. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | redis | 15.0.3 | +| https://truecharts.org/ | common | 6.10.7 | +| https://truecharts.org/ | postgresql | 1.2.4 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/nextcloud/3.4.1/app-readme.md b/incubator/nextcloud/3.4.1/app-readme.md new file mode 100644 index 00000000000..e7f74fea014 --- /dev/null +++ b/incubator/nextcloud/3.4.1/app-readme.md @@ -0,0 +1,4 @@ +A private cloud server that puts the control and security of your own data back into your hands. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A private cloud server that puts the control and security of your own diff --git a/incubator/nextcloud/3.4.1/charts/common-6.12.1.tgz b/incubator/nextcloud/3.4.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.4.1/charts/postgresql-1.3.0.tgz b/incubator/nextcloud/3.4.1/charts/postgresql-1.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2caee3ce8636fb4a68579dcc017ad83225c336a9 GIT binary patch literal 30700 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 literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.4.1/charts/redis-15.0.3.tgz b/incubator/nextcloud/3.4.1/charts/redis-15.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..69973ddb4b93e1dd8aea2b875741433c667862bc GIT binary patch literal 77327 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 Yxqt4TyZ!wC00030|1~@9Kmc3@0BTO|RsaA1 literal 0 HcmV?d00001 diff --git a/incubator/nextcloud/3.4.1/ix_values.yaml b/incubator/nextcloud/3.4.1/ix_values.yaml new file mode 100644 index 00000000000..05175685dff --- /dev/null +++ b/incubator/nextcloud/3.4.1/ix_values.yaml @@ -0,0 +1,187 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nextcloud + pullPolicy: IfNotPresent + tag: 22.1.0 + +strategy: + type: Recreate + +env: {} + + +envTpl: + POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envFrom: + - configMapRef: + name: nextcloudconfig + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: host + REDIS_HOST: + secretKeyRef: + name: rediscreds + key: masterhost + REDIS_HOST_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + +initContainers: + - name: init-postgresdb + image: postgres:13.1 + command: + - "sh" + - "-c" + - "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +additionalContainers: +- name: hpb + image: nextcloud:21.0.2 + imagePullPolicy: IfNotPresent + command: + - "/bin/bash" + - "-c" + - "--" + args: + - 'while [ ! -f "/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push" ]; do sleep 30; echo "notify_push not found, waiting"; done && /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php' + env: + - name: PORT + value: "7867" + envFrom: + - configMapRef: + name: hpbconfig + ports: + - name: hpb + containerPort: 7867 + volumeMounts: + - mountPath: /var/www/html + name: data + securityContext: + runAsUser: 33 + runAsGroup: 33 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Redainess probe configuration + # @default -- See below + readiness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Startup probe configuration + # @default -- See below + startup: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: true + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/nextcloud/3.4.1/questions.yaml b/incubator/nextcloud/3.4.1/questions.yaml new file mode 100644 index 00000000000..6d98702aae1 --- /dev/null +++ b/incubator/nextcloud/3.4.1/questions.yaml @@ -0,0 +1,1278 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: NEXTCLOUD_ADMIN_USER + label: "NEXTCLOUD_ADMIN_USER" + description: "Sets nextcloud admin username" + schema: + type: string + required: true + default: "" + - variable: NEXTCLOUD_ADMIN_PASSWORD + label: "NEXTCLOUD_ADMIN_PASSWORD" + description: "Sets nextcloud admin password" + schema: + type: string + required: true + default: "" + - variable: TRUSTED_PROXIES + label: "TRUSTED_PROXIES" + description: "Sets nextcloud Trusted Proxies" + schema: + type: string + default: "172.16.0.0/16" + - variable: NODE_IP + label: "NODE_IP" + description: "Sets nextcloud nodeip for nodeport connections" + schema: + type: string + $ref: + - "definitions/nodeIP" + + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36091 + required: true + - variable: hpb + label: "High Performance Backend Service" + description: "The service which runs the High Performance Backend" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: false + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: hpb + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7867 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7867 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36092 + required: true + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/www/html" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: redismaster + label: "Redis Storage" + description: "Stores the Application redis-master-database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "redismaster" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: hpb + label: "High Performance Backend Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/push" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Service" + schema: + type: dict + hidden: true + attrs: + - variable: name + label: "service name" + schema: + type: string + hidden: true + default: "{{ .Release.Name }}-nextcloud-hpb" + - variable: port + label: "serviceport" + schema: + type: int + hidden: true + default: 7867 + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 33 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/incubator/nextcloud/3.4.1/templates/_configmap.tpl b/incubator/nextcloud/3.4.1/templates/_configmap.tpl new file mode 100644 index 00000000000..aa6473aaf29 --- /dev/null +++ b/incubator/nextcloud/3.4.1/templates/_configmap.tpl @@ -0,0 +1,33 @@ +{{/* Define the configmap */}} +{{- define "nextcloud.configmap" -}} + +{{- $hosts := "" }} +{{- if .Values.ingress.main.enabled }} +{{ range $index, $host := .Values.ingress.main.hosts }} + {{- if $index }} + {{ $hosts = ( printf "%v %v" $hosts $host.host ) }} + {{- else }} + {{ $hosts = ( printf "%s" $host.host ) }} + {{- end }} +{{ end }} +{{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nextcloudconfig +data: + NEXTCLOUD_TRUSTED_DOMAINS: {{ ( printf "%v %v %v %v %v" "test.fakedomain.dns" ( .Values.env.NODE_IP | default "localhost" ) ( printf "%v-%v" .Release.Name "nextcloud" ) ( printf "%v-%v" .Release.Name "nextcloud-hpb" ) $hosts ) | quote }} + {{- if .Values.ingress.main.enabled }} + APACHE_DISABLE_REWRITE_IP: "1" + {{- end }} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: hpbconfig +data: + NEXTCLOUD_URL: {{ ( printf "%v-%v" .Release.Name "nextcloud" ) | quote }} + +{{- end -}} diff --git a/incubator/nextcloud/3.4.1/templates/_cronjob.tpl b/incubator/nextcloud/3.4.1/templates/_cronjob.tpl new file mode 100644 index 00000000000..c2ed1ca20f8 --- /dev/null +++ b/incubator/nextcloud/3.4.1/templates/_cronjob.tpl @@ -0,0 +1,51 @@ +{{/* Define the cronjob */}} +{{- define "nextcloud.cronjob" -}} +{{- $jobName := include "common.names.fullname" . -}} + +--- +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ printf "%s-cronjob" $jobName }} + labels: + {{- include "common.labels" . | nindent 4 }} +spec: + schedule: "{{ .Values.cronjob.schedule }}" + concurrencyPolicy: Forbid + {{- with .Values.cronjob.failedJobsHistoryLimit }} + failedJobsHistoryLimit: {{ . }} + {{- end }} + {{- with .Values.cronjob.successfulJobsHistoryLimit }} + successfulJobsHistoryLimit: {{ . }} + {{- end }} + jobTemplate: + metadata: + spec: + template: + metadata: + spec: + restartPolicy: Never + {{- with (include "common.controller.volumes" . | trim) }} + volumes: + {{- nindent 12 . }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ default .Values.image.tag }}" + imagePullPolicy: {{ default .Values.image.pullPolicy }} + command: [ "php" ] + args: + - "-f" + - "/var/www/html/cron.php" + # Will mount configuration files as www-data (id: 33) by default for nextcloud + {{- with (include "common.controller.volumeMounts" . | trim) }} + volumeMounts: + {{ nindent 16 . }} + {{- end }} + securityContext: + runAsUser: 33 + runAsGroup: 33 + resources: +{{ toYaml .Values.resources | indent 16 }} + +{{- end -}} diff --git a/incubator/nextcloud/3.4.1/templates/_secrets.tpl b/incubator/nextcloud/3.4.1/templates/_secrets.tpl new file mode 100644 index 00000000000..d9ae0df858c --- /dev/null +++ b/incubator/nextcloud/3.4.1/templates/_secrets.tpl @@ -0,0 +1,50 @@ +{{/* Define the secrets */}} +{{- define "nextcloud.secrets" -}} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} + host: {{ ( printf "%v-%v:5432" .Release.Name "postgresql" ) | b64enc | quote }} + plainhost: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }} +type: Opaque + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: rediscreds +{{- $redisprevious := lookup "v1" "Secret" .Release.Namespace "rediscreds" }} +{{- $redisPass := "" }} +data: +{{- if $redisprevious }} + {{- $redisPass = ( index $redisprevious.data "redis-password" ) | b64dec }} + redis-password: {{ ( index $redisprevious.data "redis-password" ) }} +{{- else }} + {{- $redisPass = randAlphaNum 50 }} + redis-password: {{ $redisPass | b64enc | quote }} +{{- end }} + masterhost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} + slavehost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/incubator/nextcloud/3.4.1/templates/common.yaml b/incubator/nextcloud/3.4.1/templates/common.yaml new file mode 100644 index 00000000000..8e72c538b1d --- /dev/null +++ b/incubator/nextcloud/3.4.1/templates/common.yaml @@ -0,0 +1,14 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for nextcloud */}} +{{- include "nextcloud.configmap" . }} + +{{/* Render secrets for nextcloud */}} +{{- include "nextcloud.secrets" . }} + +{{/* Render cronjob for nextcloud */}} +{{- include "nextcloud.cronjob" . }} diff --git a/incubator/nextcloud/3.4.1/test_values.yaml b/incubator/nextcloud/3.4.1/test_values.yaml new file mode 100644 index 00000000000..8c35bcd5a0b --- /dev/null +++ b/incubator/nextcloud/3.4.1/test_values.yaml @@ -0,0 +1,210 @@ +# Default values for Bitwarden. + +image: + repository: nextcloud + pullPolicy: IfNotPresent + tag: 22.1.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + hpb: + enabled: true + ports: + hpb: + enabled: true + port: 7867 + +env: + NEXTCLOUD_ADMIN_USER: "admin" + NEXTCLOUD_ADMIN_PASSWORD: "adminpass" + TRUSTED_PROXIES: "172.16.0.0/16" + +envTpl: + POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envFrom: + - configMapRef: + name: nextcloudconfig + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: host + REDIS_HOST: + secretKeyRef: + name: rediscreds + key: masterhost + REDIS_HOST_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + redismaster: + noMount: true + forceName: "redismaster" + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +initContainers: + - name: init-postgresdb + image: postgres:13.1 + command: + - "sh" + - "-c" + - "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +additionalContainers: +- name: hpb + image: nextcloud:21.0.2 + imagePullPolicy: IfNotPresent + command: + - "/bin/bash" + - "-c" + - "--" + args: + - 'while [ ! -f "/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push" ]; do sleep 30; echo "notify_push not found, waiting"; done && /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php' + env: + - name: PORT + value: "7867" + envFrom: + - configMapRef: + name: hpbconfig + ports: + - name: hpb + containerPort: 7867 + volumeMounts: + - mountPath: /var/www/html + name: data + securityContext: + runAsUser: 33 + runAsGroup: 33 + + +podSecurityContext: + fsGroup: 33 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Redainess probe configuration + # @default -- See below + readiness: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + # -- Startup probe configuration + # @default -- See below + startup: + custom: true + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + spec: + httpGet: + path: /status.php + port: 80 + httpHeaders: + - name: Host + value: "test.fakedomain.dns" + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 5 + + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false diff --git a/incubator/nextcloud/3.4.1/values.yaml b/incubator/nextcloud/3.4.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/airsonic/1.11.1/CONFIG.md b/stable/airsonic/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/airsonic/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/airsonic/1.11.1/Chart.lock b/stable/airsonic/1.11.1/Chart.lock new file mode 100644 index 00000000000..e33bfbaa1b9 --- /dev/null +++ b/stable/airsonic/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:11.319546649Z" diff --git a/stable/airsonic/1.11.1/Chart.yaml b/stable/airsonic/1.11.1/Chart.yaml new file mode 100644 index 00000000000..658af9f6c18 --- /dev/null +++ b/stable/airsonic/1.11.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Airsonic is a Free and Open Source community driven media server +home: https://github.com/truecharts/apps/tree/master/charts/incubator/airsonic +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/airsonic-logo.png +keywords: +- airsonic +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: airsonic +sources: +- https://github.com/airsonic/airsonic +- https://github.com/linuxserver/docker-airsonic +- https://github.com/k8s-at-home/charts/tree/master/charts/airsonic +version: 1.11.1 diff --git a/stable/airsonic/1.11.1/README.md b/stable/airsonic/1.11.1/README.md new file mode 100644 index 00000000000..9724468038b --- /dev/null +++ b/stable/airsonic/1.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Airsonic is a Free and Open Source community driven media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/airsonic/1.11.1/app-readme.md b/stable/airsonic/1.11.1/app-readme.md new file mode 100644 index 00000000000..497aca64338 --- /dev/null +++ b/stable/airsonic/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Airsonic is a Free and Open Source community driven media server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Airsonic is a Free and Open Source community driven media server diff --git a/stable/airsonic/1.11.1/charts/common-6.12.1.tgz b/stable/airsonic/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/airsonic/1.11.1/ix_values.yaml b/stable/airsonic/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..8771a6489cf --- /dev/null +++ b/stable/airsonic/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: linuxserver/airsonic + # -- image tag + tag: version-v10.6.2 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/airsonic/1.11.1/questions.yaml b/stable/airsonic/1.11.1/questions.yaml new file mode 100644 index 00000000000..9821c4964ab --- /dev/null +++ b/stable/airsonic/1.11.1/questions.yaml @@ -0,0 +1,1069 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36050 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/airsonic/1.11.1/templates/common.yaml b/stable/airsonic/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/airsonic/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/airsonic/1.11.1/test_values.yaml b/stable/airsonic/1.11.1/test_values.yaml new file mode 100644 index 00000000000..fcb38fedac1 --- /dev/null +++ b/stable/airsonic/1.11.1/test_values.yaml @@ -0,0 +1,63 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: linuxserver/airsonic + # -- image tag + tag: version-v10.6.2 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-airsonic#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Used to set the base path for reverse proxies eg. /booksonic, /books, etc. + CONTEXT_PATH: # "url-base" + # -- For passing additional java options. For some reverse proxies, you may need to pass `JAVA_OPTS=-Dserver.use-forward-headers=true` for airsonic to generate the proper URL schemes. + JAVA_OPTS: + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 4040 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + music: + enabled: false + mountPath: /music + playlists: + enabled: false + mountPath: /playlists + podcasts: + enabled: false + mountPath: /podcasts + media: + enabled: false + mountPath: /media diff --git a/stable/airsonic/1.11.1/values.yaml b/stable/airsonic/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/appdaemon/3.11.1/CONFIG.md b/stable/appdaemon/3.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/appdaemon/3.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/appdaemon/3.11.1/Chart.lock b/stable/appdaemon/3.11.1/Chart.lock new file mode 100644 index 00000000000..de94eaac616 --- /dev/null +++ b/stable/appdaemon/3.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:16.610673979Z" diff --git a/stable/appdaemon/3.11.1/Chart.yaml b/stable/appdaemon/3.11.1/Chart.yaml new file mode 100644 index 00000000000..51dd322ce00 --- /dev/null +++ b/stable/appdaemon/3.11.1/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: v4.0.8 +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: AppDaemon is a loosely coupled, multithreaded, sandboxed python execution + environment for writing automation apps for Home Assistant home automation software. + It also provides a configurable dashboard (HADashboard) suitable for wall mounted + tablets. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/appdaemon +icon: https://github.com/hassio-addons/addon-appdaemon/blob/main/appdaemon/icon.png?raw=true +keywords: +- appdaemon +- homeautomation +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: appdaemon +sources: +- https://github.com/AppDaemon/appdaemon +type: application +version: 3.11.1 diff --git a/stable/appdaemon/3.11.1/README.md b/stable/appdaemon/3.11.1/README.md new file mode 100644 index 00000000000..bf06d23259a --- /dev/null +++ b/stable/appdaemon/3.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 3.8.7](https://img.shields.io/badge/Version-3.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v4.0.8](https://img.shields.io/badge/AppVersion-v4.0.8-informational?style=flat-square) + +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution environment for writing automation apps for Home Assistant home automation software. It also provides a configurable dashboard (HADashboard) suitable for wall mounted tablets. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/appdaemon/3.11.1/app-readme.md b/stable/appdaemon/3.11.1/app-readme.md new file mode 100644 index 00000000000..0fa940d8b6f --- /dev/null +++ b/stable/appdaemon/3.11.1/app-readme.md @@ -0,0 +1,4 @@ +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution environment for writing automation apps for Home Assistant home automation software. It also provides a configurable dashboard (HADashboard) suitable for wall mounted tablets. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +AppDaemon is a loosely coupled, multithreaded, sandboxed python execution diff --git a/stable/appdaemon/3.11.1/charts/common-6.12.1.tgz b/stable/appdaemon/3.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/appdaemon/3.11.1/ix_values.yaml b/stable/appdaemon/3.11.1/ix_values.yaml new file mode 100644 index 00000000000..37a0ce9a4bc --- /dev/null +++ b/stable/appdaemon/3.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: acockburn/appdaemon + pullPolicy: IfNotPresent + tag: "4.1.0" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/appdaemon/3.11.1/questions.yaml b/stable/appdaemon/3.11.1/questions.yaml new file mode 100644 index 00000000000..d765bc5c918 --- /dev/null +++ b/stable/appdaemon/3.11.1/questions.yaml @@ -0,0 +1,1040 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: HA_URL + label: "HA URL" + description: "Your HomeAssistant URL" + schema: + type: string + default: "" + required: true + - variable: TOKEN + label: "HA Token" + description: "Your HomeAssistant Token" + schema: + type: string + default: "" + required: true + - variable: DASH_URL + label: "Dashboard URL" + description: "URL of your appdaemon dashboard" + schema: + type: string + default: "http://$HOSTNAME:5050" + required: true + - variable: LATITUDE + label: "Latitude" + description: "Latitude of your home assistant instance" + schema: + type: string + default: "" + valid_chars: '^[0-9]{1,}\.{1}[0-9]{1,}$' + required: true + - variable: LONGITUDE + label: "Longitude" + description: "Longitude of your home assistant instance" + schema: + type: string + default: "" + valid_chars: '^[0-9]{1,}\.{1}[0-9]{1,}$' + required: true + - variable: ELEVATION + label: "Elevation" + description: "Longitude of your home assistant instance" + schema: + type: int + default: 0 + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5050 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51050 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36051 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: conf + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/conf" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/appdaemon/3.11.1/templates/common.yaml b/stable/appdaemon/3.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/appdaemon/3.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/appdaemon/3.11.1/test_values.yaml b/stable/appdaemon/3.11.1/test_values.yaml new file mode 100644 index 00000000000..28a79f5375a --- /dev/null +++ b/stable/appdaemon/3.11.1/test_values.yaml @@ -0,0 +1,43 @@ +image: + repository: ghcr.io/k8s-at-home/appdaemon + pullPolicy: IfNotPresent + tag: "v4.0.8" + +strategy: + type: Recreate + +# Configure the Security Context for the Pod +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +env: + TZ: "America/Chicago" + LATITUDE: 46 + LONGITUDE: -94 + ELEVATION: 1217 + DASH_URL: "http://$HOSTNAME:5050" + +service: + main: + ports: + main: + port: 5050 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51050 + protocol: TCP + +hostPathMounts: + - name: config + enabled: true + mountPath: /conf + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/appdaemon/3.11.1/values.yaml b/stable/appdaemon/3.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/bazarr/6.11.1/CONFIG.md b/stable/bazarr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/bazarr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/bazarr/6.11.1/Chart.lock b/stable/bazarr/6.11.1/Chart.lock new file mode 100644 index 00000000000..0475eeeff85 --- /dev/null +++ b/stable/bazarr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:21.507593082Z" diff --git a/stable/bazarr/6.11.1/Chart.yaml b/stable/bazarr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..eef97fb3eb2 --- /dev/null +++ b/stable/bazarr/6.11.1/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Bazarr is a companion application to Bazarr and Radarr. It manages and + downloads subtitles based on your requirements +home: https://github.com/truecharts/apps/tree/master/charts/incubator/bazarr +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png +keywords: +- bazarr +- radarr +- bazarr +- subtitles +- usenet +- torrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: bazarr +sources: +- https://github.com/Bazarr/Bazarr +- https://hub.docker.com/r/linuxserver/bazarr +type: application +version: 6.11.1 diff --git a/stable/bazarr/6.11.1/README.md b/stable/bazarr/6.11.1/README.md new file mode 100644 index 00000000000..2cc0cc7b836 --- /dev/null +++ b/stable/bazarr/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/bazarr/6.11.1/app-readme.md b/stable/bazarr/6.11.1/app-readme.md new file mode 100644 index 00000000000..f4b7ce82a42 --- /dev/null +++ b/stable/bazarr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Bazarr is a companion application to Bazarr and Radarr. It manages and diff --git a/stable/bazarr/6.11.1/charts/common-6.12.1.tgz b/stable/bazarr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/bazarr/6.11.1/ix_values.yaml b/stable/bazarr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..c6397b4077e --- /dev/null +++ b/stable/bazarr/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/bazarr + pullPolicy: IfNotPresent + tag: v0.9.7 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/bazarr/6.11.1/questions.yaml b/stable/bazarr/6.11.1/questions.yaml new file mode 100644 index 00000000000..799b46274b8 --- /dev/null +++ b/stable/bazarr/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6767 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36025 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/bazarr/6.11.1/templates/common.yaml b/stable/bazarr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/bazarr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/bazarr/6.11.1/test_values.yaml b/stable/bazarr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..1f2fc717768 --- /dev/null +++ b/stable/bazarr/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Bazarr. + +image: + repository: ghcr.io/k8s-at-home/bazarr + pullPolicy: IfNotPresent + tag: v0.9.7 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6767 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/bazarr/6.11.1/values.yaml b/stable/bazarr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/booksonic-air/1.9.1/CONFIG.md b/stable/booksonic-air/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/booksonic-air/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/booksonic-air/1.9.1/Chart.lock b/stable/booksonic-air/1.9.1/Chart.lock new file mode 100644 index 00000000000..7f995f2cee0 --- /dev/null +++ b/stable/booksonic-air/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:57:26.449521396Z" diff --git a/stable/booksonic-air/1.9.1/Chart.yaml b/stable/booksonic-air/1.9.1/Chart.yaml new file mode 100644 index 00000000000..c70d57d6e22 --- /dev/null +++ b/stable/booksonic-air/1.9.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Booksonic is a platform for accessing the audibooks you own wherever + you are +home: https://github.com/truechartsapps/tree/master/charts/incubator/booksonic-air +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/booksonic-air.png +keywords: +- booksonic +- audiobook +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: booksonic-air +sources: +- https://github.com/popeen/Booksonic-Air +- https://hub.docker.com/r/linuxserver/booksonic-air +version: 1.9.1 diff --git a/stable/booksonic-air/1.9.1/README.md b/stable/booksonic-air/1.9.1/README.md new file mode 100644 index 00000000000..2d7b2c4fc1b --- /dev/null +++ b/stable/booksonic-air/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Booksonic is a platform for accessing the audibooks you own wherever you are + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/booksonic-air/1.9.1/app-readme.md b/stable/booksonic-air/1.9.1/app-readme.md new file mode 100644 index 00000000000..9a471b5ea13 --- /dev/null +++ b/stable/booksonic-air/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Booksonic is a platform for accessing the audibooks you own wherever you are + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Booksonic is a platform for accessing the audibooks you own wherever diff --git a/stable/booksonic-air/1.9.1/charts/common-6.12.1.tgz b/stable/booksonic-air/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/booksonic-air/1.9.1/ix_values.yaml b/stable/booksonic-air/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..d4514d8f9dd --- /dev/null +++ b/stable/booksonic-air/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/booksonic-air + pullPolicy: IfNotPresent + tag: version-v2009.1.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/booksonic-air/1.9.1/questions.yaml b/stable/booksonic-air/1.9.1/questions.yaml new file mode 100644 index 00000000000..913099261ce --- /dev/null +++ b/stable/booksonic-air/1.9.1/questions.yaml @@ -0,0 +1,1067 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4040 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4040 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/booksonic-air/1.9.1/templates/common.yaml b/stable/booksonic-air/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/booksonic-air/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/booksonic-air/1.9.1/test_values.yaml b/stable/booksonic-air/1.9.1/test_values.yaml new file mode 100644 index 00000000000..2f2ff35eade --- /dev/null +++ b/stable/booksonic-air/1.9.1/test_values.yaml @@ -0,0 +1,50 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/booksonic-air + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: version-v2009.1.0 + +# See more environment variables in the [booksonic-air documentation](https://github.com/linuxserver/docker-booksonic-air#parameters) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "568" + # -- Specify the group ID the application will run as + PGID: "568" + # -- Used to set the base path for reverse proxies eg. /booksonic, /books, etc. + # CONTEXT_PATH=url-base + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 4040 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + audiobooks: + enabled: false + podcasts: + enabled: false + othermedia: + enabled: false diff --git a/stable/booksonic-air/1.9.1/values.yaml b/stable/booksonic-air/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/calibre-web/6.11.1/CONFIG.md b/stable/calibre-web/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/calibre-web/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/calibre-web/6.11.1/Chart.lock b/stable/calibre-web/6.11.1/Chart.lock new file mode 100644 index 00000000000..302a06f2216 --- /dev/null +++ b/stable/calibre-web/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:36.463547899Z" diff --git a/stable/calibre-web/6.11.1/Chart.yaml b/stable/calibre-web/6.11.1/Chart.yaml new file mode 100644 index 00000000000..b642206f5eb --- /dev/null +++ b/stable/calibre-web/6.11.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Calibre-Web is a web app providing a clean interface for browsing, reading + and downloading eBooks using an existing Calibre database. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/calibre-web +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png +keywords: +- calibre-web +- calibre +- ebook +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: calibre-web +sources: +- https://hub.docker.com/r/linuxserver/calibre-web/ +- https://github.com/janeczku/calibre-web +type: application +version: 6.11.1 diff --git a/stable/calibre-web/6.11.1/README.md b/stable/calibre-web/6.11.1/README.md new file mode 100644 index 00000000000..2ab79757c1c --- /dev/null +++ b/stable/calibre-web/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/calibre-web/6.11.1/app-readme.md b/stable/calibre-web/6.11.1/app-readme.md new file mode 100644 index 00000000000..af83432d07c --- /dev/null +++ b/stable/calibre-web/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Calibre-Web is a web app providing a clean interface for browsing, reading diff --git a/stable/calibre-web/6.11.1/charts/common-6.12.1.tgz b/stable/calibre-web/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/calibre-web/6.11.1/ix_values.yaml b/stable/calibre-web/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..1f6e24d1545 --- /dev/null +++ b/stable/calibre-web/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.12 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/calibre-web/6.11.1/questions.yaml b/stable/calibre-web/6.11.1/questions.yaml new file mode 100644 index 00000000000..e52edfec4ed --- /dev/null +++ b/stable/calibre-web/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8083 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36015 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/calibre-web/6.11.1/templates/common.yaml b/stable/calibre-web/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/calibre-web/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/calibre-web/6.11.1/test_values.yaml b/stable/calibre-web/6.11.1/test_values.yaml new file mode 100644 index 00000000000..b424b2ad247 --- /dev/null +++ b/stable/calibre-web/6.11.1/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Calibre-Web. + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.12 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8083 + +env: {} + # TZ: + # PUID: + # PGID: + # UMASK: + # DOCKER_MODS: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/calibre-web/6.11.1/values.yaml b/stable/calibre-web/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/calibre/1.9.1/CONFIG.md b/stable/calibre/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/calibre/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/calibre/1.9.1/Chart.lock b/stable/calibre/1.9.1/Chart.lock new file mode 100644 index 00000000000..406ad037d96 --- /dev/null +++ b/stable/calibre/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:57:31.428649739Z" diff --git a/stable/calibre/1.9.1/Chart.yaml b/stable/calibre/1.9.1/Chart.yaml new file mode 100644 index 00000000000..8f7c7d8606d --- /dev/null +++ b/stable/calibre/1.9.1/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Calibre is a powerful and easy to use e-book manager. +home: https://github.com/truechartsapps/tree/master/charts/incubator/calibre +icon: https://github.com/kovidgoyal/calibre/raw/master/resources/images/lt.png +keywords: +- calibre +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: calibre +sources: +- https://hub.docker.com/r/linuxserver/calibre/ +- https://github.com/kovidgoyal/calibre/ +version: 1.9.1 diff --git a/stable/calibre/1.9.1/README.md b/stable/calibre/1.9.1/README.md new file mode 100644 index 00000000000..1d3ff848e65 --- /dev/null +++ b/stable/calibre/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.8](https://img.shields.io/badge/Version-1.6.8-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Calibre is a powerful and easy to use e-book manager. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/calibre/1.9.1/app-readme.md b/stable/calibre/1.9.1/app-readme.md new file mode 100644 index 00000000000..0fa01f56f15 --- /dev/null +++ b/stable/calibre/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Calibre is a powerful and easy to use e-book manager. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Calibre is a powerful and easy to use e-book manager. diff --git a/stable/calibre/1.9.1/charts/common-6.12.1.tgz b/stable/calibre/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/calibre/1.9.1/ix_values.yaml b/stable/calibre/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..a7e2dac960f --- /dev/null +++ b/stable/calibre/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre + pullPolicy: IfNotPresent + tag: version-v5.26.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/calibre/1.9.1/questions.yaml b/stable/calibre/1.9.1/questions.yaml new file mode 100644 index 00000000000..67b2bc2b8fa --- /dev/null +++ b/stable/calibre/1.9.1/questions.yaml @@ -0,0 +1,1182 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK_SET + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: GUAC_USER + label: "GUAC_USER" + description: "Username for the calibre gui" + schema: + type: string + default: "" + - variable: GUAC_PASS + label: "GUAC_PASS" + description: "Password's md5 hash for the calibre gui" + schema: + type: string + default: "" + - variable: CLI_ARGS + label: "CLI_ARGS" + description: "Optionally pass cli start arguments to calibre" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36053 + - variable: webserver + label: "webserver Service" + description: "The webserver service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: webserver + label: "webserver Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8081 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8081 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36054 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/calibre/1.9.1/templates/common.yaml b/stable/calibre/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..c53fdc73fbd --- /dev/null +++ b/stable/calibre/1.9.1/templates/common.yaml @@ -0,0 +1,3 @@ +--- + +{{ include "common.all" . }} diff --git a/stable/calibre/1.9.1/test_values.yaml b/stable/calibre/1.9.1/test_values.yaml new file mode 100644 index 00000000000..a1c3cce0c2d --- /dev/null +++ b/stable/calibre/1.9.1/test_values.yaml @@ -0,0 +1,61 @@ +--- + +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +# -- This is the default, you can also use requarks/wiki +image: + # -- image repository + repository: linuxserver/calibre + # -- image tag + tag: version-v5.26.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-calibre#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Username for the calibre gui + GUAC_USER: + # -- Password's md5 hash for the calibre gui + GUAC_PASS: + # -- for umask setting of Calibre, default if left unset is 022. + UMASK_SET: "022" + # -- Optionally pass cli start arguments to calibre. + CLI_ARGS: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + webserver: + enabled: false + type: ClusterIP + ports: + webserver: + enabled: true + port: 8081 + protocol: TCP + targetPort: 8081 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/calibre/1.9.1/values.yaml b/stable/calibre/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/collabora-online/6.11.1/CONFIG.md b/stable/collabora-online/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/collabora-online/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/collabora-online/6.11.1/Chart.lock b/stable/collabora-online/6.11.1/Chart.lock new file mode 100644 index 00000000000..435ce627795 --- /dev/null +++ b/stable/collabora-online/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:41.431120958Z" diff --git a/stable/collabora-online/6.11.1/Chart.yaml b/stable/collabora-online/6.11.1/Chart.yaml new file mode 100644 index 00000000000..83c9ea178b7 --- /dev/null +++ b/stable/collabora-online/6.11.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: "Collabora Online Development Edition \u2013 an awesome, Online Office\ + \ suite image suitable for home use." +home: https://github.com/truecharts/apps/tree/master/charts/stable/collabora-online +icon: https://truecharts.org/_static/img/collabora-icon.png +keywords: +- collabora-online +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: collabora-online +sources: +- https://hub.docker.com/r/collabora/code +- https://sdk.collaboraonline.com/contents.html +- https://github.com/CollaboraOnline/online/tree/master/kubernetes/helm +type: application +version: 6.11.1 diff --git a/stable/collabora-online/6.11.1/README.md b/stable/collabora-online/6.11.1/README.md new file mode 100644 index 00000000000..1b5301b89fe --- /dev/null +++ b/stable/collabora-online/6.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/collabora-online/6.11.1/app-readme.md b/stable/collabora-online/6.11.1/app-readme.md new file mode 100644 index 00000000000..1e3bedd43a5 --- /dev/null +++ b/stable/collabora-online/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"Collabora Online Development Edition \u2013 an awesome, Online Office\ diff --git a/stable/collabora-online/6.11.1/charts/common-6.12.1.tgz b/stable/collabora-online/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/collabora-online/6.11.1/ix_values.yaml b/stable/collabora-online/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..7aeb071aae8 --- /dev/null +++ b/stable/collabora-online/6.11.1/ix_values.yaml @@ -0,0 +1,14 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: collabora/code + tag: 6.4.10.10 + pullPolicy: IfNotPresent +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/collabora-online/6.11.1/questions.yaml b/stable/collabora-online/6.11.1/questions.yaml new file mode 100644 index 00000000000..eb37768a5c9 --- /dev/null +++ b/stable/collabora-online/6.11.1/questions.yaml @@ -0,0 +1,983 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/loleaflet/dist/admin/admin.html" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: domain + label: "Domain(s) using collabora" + description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' + schema: + type: string + default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld' + valid_chars: '^([a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}\|{0,1})*$' + required: true + - variable: username + label: "Username for WebUI" + schema: + type: string + default: "admin" + required: true + - variable: password + label: "Password for WebUI" + schema: + type: string + private: true + default: "" + valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}" + required: true + - variable: dictionaries + label: "Dictionaries to use, leave empty to use all" + schema: + type: string + default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" + - variable: extra_params + label: "Extra Parameters to add" + description: 'e.g. "--o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space' + schema: + type: string + default: "--o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true --o:ssl.enable=false" + - variable: DONT_GEN_SSL_CERT + label: "DONT_GEN_SSL_CERT" + description: "When set to true it does NOT generate an SSL cert, you have to use your own" + schema: + type: string + default: "true" + enum: + - value: "true" + description: "true" + - value: "" + description: "false" + - variable: server_name + label: "Server Name" + description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it." + schema: + type: string + default: 'collabora\.domain\.tld' + valid_chars: '^[a-z]{1,}\\{1}\.{1}[a-z]{1,}\\{1}\.{1}[a-z]{1,}$' + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9980 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36004 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/collabora-online/6.11.1/templates/common.yaml b/stable/collabora-online/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/collabora-online/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/collabora-online/6.11.1/test_values.yaml b/stable/collabora-online/6.11.1/test_values.yaml new file mode 100644 index 00000000000..2bbc50b4948 --- /dev/null +++ b/stable/collabora-online/6.11.1/test_values.yaml @@ -0,0 +1,22 @@ +image: + repository: collabora/code + tag: 6.4.10.10 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + type: NodePort + ports: + main: + port: 9980 + +env: + domain: nextcloud\.domain\.tld + dictionaries: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + username: admin + password: changeme + extra_params: "-o:welcome.enable=false -o:user_interface.mode=notebookbar -o:ssl.termination=true -o:ssl.enable=false" + server_name: collabora\.domain\.tld diff --git a/stable/collabora-online/6.11.1/values.yaml b/stable/collabora-online/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deconz/1.9.1/CONFIG.md b/stable/deconz/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deconz/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deconz/1.9.1/Chart.lock b/stable/deconz/1.9.1/Chart.lock new file mode 100644 index 00000000000..8d12be015b0 --- /dev/null +++ b/stable/deconz/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:57:46.357818033Z" diff --git a/stable/deconz/1.9.1/Chart.yaml b/stable/deconz/1.9.1/Chart.yaml new file mode 100644 index 00000000000..d0d41350850 --- /dev/null +++ b/stable/deconz/1.9.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: deCONZ is an easy to use control software, with which you can set up + and control Zigbee networks of any size without further programming effort. +home: https://github.com/truechartsapps/tree/master/charts/incubator/deconz +icon: https://avatars1.githubusercontent.com/u/4217524?s=400&v=4 +keywords: +- deconz +- home-automation +- zigbee +- conbee +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: deconz +sources: +- https://github.com/dresden-elektronik/deconz-rest-plugin +- https://github.com/marthoc/docker-deconz +version: 1.9.1 diff --git a/stable/deconz/1.9.1/README.md b/stable/deconz/1.9.1/README.md new file mode 100644 index 00000000000..4a803b1ec4f --- /dev/null +++ b/stable/deconz/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +deCONZ is an easy to use control software, with which you can set up and control Zigbee networks of any size without further programming effort. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deconz/1.9.1/app-readme.md b/stable/deconz/1.9.1/app-readme.md new file mode 100644 index 00000000000..a986a5c28af --- /dev/null +++ b/stable/deconz/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +deCONZ is an easy to use control software, with which you can set up and control Zigbee networks of any size without further programming effort. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +deCONZ is an easy to use control software, with which you can set up diff --git a/stable/deconz/1.9.1/charts/common-6.12.1.tgz b/stable/deconz/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deconz/1.9.1/ix_values.yaml b/stable/deconz/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..bc0f860f664 --- /dev/null +++ b/stable/deconz/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: marthoc/deconz + pullPolicy: IfNotPresent + tag: 2.12.06 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deconz/1.9.1/questions.yaml b/stable/deconz/1.9.1/questions.yaml new file mode 100644 index 00000000000..1374668885e --- /dev/null +++ b/stable/deconz/1.9.1/questions.yaml @@ -0,0 +1,1286 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: DECONZ_DEVICE + label: "DECONZ_DEVICE" + description: "Override the location where deCONZ looks for the RaspBee/Conbee device" + schema: + type: string + default: "/dev/ttyUSB0" + - variable: DECONZ_VNC_MODE + label: "DECONZ_VNC_MODE" + description: "Enable VNC access to the container to view the deCONZ ZigBee mesh" + schema: + type: string + default: "1" + - variable: DECONZ_WEB_PORT + label: "DECONZ_WEB_PORT" + description: "Web UI listen port" + schema: + type: string + default: "80" + - variable: DECONZ_WS_PORT + label: "DECONZ_WS_PORT" + description: "Websocket listen port" + schema: + type: string + default: "443" + - variable: DECONZ_VNC_PORT + label: "DECONZ_VNC_PORT" + description: " VNC server listen port" + schema: + type: string + default: "5900" + - variable: DECONZ_VNC_PASSWORD + label: "DECONZ_VNC_PASSWORD" + description: "If VNC is enabled (DECONZ_VNC_MODE=1) you can change the default password" + schema: + type: string + required: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36055 + - variable: websocket + label: "websocket Service" + description: "The websocket service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: websocket + label: "websocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36056 + - variable: vnc + label: "vnc Service" + description: "The vnc service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "vnc Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36057 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.local/share/dresden-elektronik/deCONZ" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/deconz/1.9.1/templates/common.yaml b/stable/deconz/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deconz/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deconz/1.9.1/test_values.yaml b/stable/deconz/1.9.1/test_values.yaml new file mode 100644 index 00000000000..13f990cab24 --- /dev/null +++ b/stable/deconz/1.9.1/test_values.yaml @@ -0,0 +1,75 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: marthoc/deconz + # -- image tag + tag: 2.12.06 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://github.com/marthoc/docker-deconz/blob/master/README.md) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Override the location where deCONZ looks for the RaspBee/Conbee device. + DECONZ_DEVICE: # /dev/ttyUSB0 + # -- Enable VNC access to the container to view the deCONZ ZigBee mesh + DECONZ_VNC_MODE: 1 + # -- Web UI listen port + DECONZ_WEB_PORT: 80 + # -- Websocket listen port + DECONZ_WS_PORT: 443 + # -- VNC server listen port + DECONZ_VNC_PORT: 5900 + # -- If VNC is enabled (DECONZ_VNC_MODE=1) you can change the default password "changeme" using a Secret. + DECONZ_VNC_PASSWORD: + # secretKeyRef: + # name: deconz-vnc-password + # key: password + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + websocket: + enabled: true + port: 443 + vnc: + enabled: true + port: 5900 + +securityContext: + # -- (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine + privileged: # true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.local/share/dresden-elektronik/deCONZ + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zigbee-controller diff --git a/stable/deconz/1.9.1/values.yaml b/stable/deconz/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deepstack-cpu/4.11.1/CONFIG.md b/stable/deepstack-cpu/4.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deepstack-cpu/4.11.1/Chart.lock b/stable/deepstack-cpu/4.11.1/Chart.lock new file mode 100644 index 00000000000..60b9344bdc8 --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:51.304996225Z" diff --git a/stable/deepstack-cpu/4.11.1/Chart.yaml b/stable/deepstack-cpu/4.11.1/Chart.yaml new file mode 100644 index 00000000000..14d4e9410ac --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: DeepStack AI provides AI features including Face Recognition, Object + Detection, Scene Recognition and custom AI Models +home: https://github.com/truecharts/apps/tree/master/charts/stable/deepstack-cpu +icon: https://deepquest.sfo2.digitaloceanspaces.com/deepstackcc/static/img/deepstacklogo.png +keywords: +- AI +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: deepstack-cpu +sources: +- https://github.com/johnolafenwa/DeepStack +- https://hub.docker.com/r/deepquestai/deepstack +- https://www.deepstack.cc/ +type: application +version: 4.11.1 diff --git a/stable/deepstack-cpu/4.11.1/README.md b/stable/deepstack-cpu/4.11.1/README.md new file mode 100644 index 00000000000..5acb0b63bb4 --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 4.8.7](https://img.shields.io/badge/Version-4.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +DeepStack AI provides AI features including Face Recognition, Object Detection, Scene Recognition and custom AI Models + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deepstack-cpu/4.11.1/app-readme.md b/stable/deepstack-cpu/4.11.1/app-readme.md new file mode 100644 index 00000000000..0f75582169b --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/app-readme.md @@ -0,0 +1,4 @@ +DeepStack AI provides AI features including Face Recognition, Object Detection, Scene Recognition and custom AI Models + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +DeepStack AI provides AI features including Face Recognition, Object diff --git a/stable/deepstack-cpu/4.11.1/charts/common-6.12.1.tgz b/stable/deepstack-cpu/4.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deepstack-cpu/4.11.1/ix_values.yaml b/stable/deepstack-cpu/4.11.1/ix_values.yaml new file mode 100644 index 00000000000..4bff0fb6e80 --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deepquestai/deepstack + pullPolicy: IfNotPresent + tag: cpu-2021.02.1 + +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deepstack-cpu/4.11.1/questions.yaml b/stable/deepstack-cpu/4.11.1/questions.yaml new file mode 100644 index 00000000000..6684f3f006c --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/questions.yaml @@ -0,0 +1,1119 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Configure Enviroment Variables + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: VISION-FACE + label: "VISION-FACE" + description: "Enables Face Detection" + schema: + type: string + default: "False" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: VISION-DETECTION + label: "VISION-DETECTION" + description: "Enables Object Detection" + schema: + type: string + default: "True" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: VISION-SCENE + label: "VISION-SCENE" + description: "Enables Scene Detection" + schema: + type: string + default: "False" + enum: + - value: "False" + description: "False" + - value: "True" + description: "True" + - variable: MODE + label: "Mode" + description: "Sets the performance mode" + schema: + type: string + default: "Medium" + enum: + - value: "High" + description: "High" + - value: "Medium" + description: "Medium" + - value: "Low" + description: "Low" + - variable: MODELSTORE-DETECTION + label: "Custom Models Path" + description: "Change the path of the custom models (Optional)" + schema: + type: string + default: "/modelstore/detection" + required: true + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36005 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/datastore" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/deepstack-cpu/4.11.1/templates/common.yaml b/stable/deepstack-cpu/4.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deepstack-cpu/4.11.1/test_values.yaml b/stable/deepstack-cpu/4.11.1/test_values.yaml new file mode 100644 index 00000000000..c9adc2baa09 --- /dev/null +++ b/stable/deepstack-cpu/4.11.1/test_values.yaml @@ -0,0 +1,41 @@ +# Default values for Jackett. + +image: + repository: deepquestai/deepstack + pullPolicy: IfNotPresent + tag: cpu-2021.02.1 + +strategy: + type: Recreate + +service: + main: + enabled: true + ports: + main: + port: 5000 + +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + PUID: "568" + PGID: "568" + # TZ: UTC + VISION-FACE: "True" + VISION-DETECTION: "True" + VISION-SCENE: "True" + # Path to custom models (needs to be on documentation) + MODELSTORE-DETECTION: "/modelstore/detection" + # High|Medium|Low + MODE: "High" + +persistence: + config: + enabled: true + mountPath: "/datastore" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/deepstack-cpu/4.11.1/values.yaml b/stable/deepstack-cpu/4.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/deluge/6.11.1/CONFIG.md b/stable/deluge/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/deluge/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/deluge/6.11.1/Chart.lock b/stable/deluge/6.11.1/Chart.lock new file mode 100644 index 00000000000..08a9b99ae24 --- /dev/null +++ b/stable/deluge/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:57:56.249440082Z" diff --git a/stable/deluge/6.11.1/Chart.yaml b/stable/deluge/6.11.1/Chart.yaml new file mode 100644 index 00000000000..64d67a7cf36 --- /dev/null +++ b/stable/deluge/6.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Deluge App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/incubator/deluge +icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200 +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: deluge +sources: +- https://github.com/deluge-torrent/deluge +type: application +version: 6.11.1 diff --git a/stable/deluge/6.11.1/README.md b/stable/deluge/6.11.1/README.md new file mode 100644 index 00000000000..caf494ce95f --- /dev/null +++ b/stable/deluge/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Deluge App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/deluge/6.11.1/app-readme.md b/stable/deluge/6.11.1/app-readme.md new file mode 100644 index 00000000000..e078f25b8c3 --- /dev/null +++ b/stable/deluge/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Deluge App for TrueNAS SCALE + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Deluge App for TrueNAS SCALE diff --git a/stable/deluge/6.11.1/charts/common-6.12.1.tgz b/stable/deluge/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/deluge/6.11.1/ix_values.yaml b/stable/deluge/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..14051dceb23 --- /dev/null +++ b/stable/deluge/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/deluge/6.11.1/questions.yaml b/stable/deluge/6.11.1/questions.yaml new file mode 100644 index 00000000000..1b916e09aea --- /dev/null +++ b/stable/deluge/6.11.1/questions.yaml @@ -0,0 +1,1210 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + ## Portal Button + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Australia/Hobart" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + ## Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + ## Enable Host Network + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Network" + schema: + type: boolean + default: false + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8112 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36026 + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/deluge/6.11.1/templates/common.yaml b/stable/deluge/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/deluge/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/deluge/6.11.1/test_values.yaml b/stable/deluge/6.11.1/test_values.yaml new file mode 100644 index 00000000000..8b791a2d77d --- /dev/null +++ b/stable/deluge/6.11.1/test_values.yaml @@ -0,0 +1,35 @@ +# Default values for deluge. + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8112 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/deluge/6.11.1/values.yaml b/stable/deluge/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/dizquetv/1.9.1/CONFIG.md b/stable/dizquetv/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/dizquetv/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/dizquetv/1.9.1/Chart.lock b/stable/dizquetv/1.9.1/Chart.lock new file mode 100644 index 00000000000..8bc1bbab5f8 --- /dev/null +++ b/stable/dizquetv/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:58:01.256849758Z" diff --git a/stable/dizquetv/1.9.1/Chart.yaml b/stable/dizquetv/1.9.1/Chart.yaml new file mode 100644 index 00000000000..2e4dee36f8e --- /dev/null +++ b/stable/dizquetv/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Create live TV channel streams from media on your Plex servers. +home: https://github.com/truechartsapps/tree/master/charts/incubator/dizquetv +icon: https://github.com/vexorian/dizquetv/raw/main/resources/dizquetv.png?raw=true +keywords: +- dizqueTV +- dizquetv +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: dizquetv +sources: +- https://github.com/vexorian/dizquetv +- https://hub.docker.com/r/vexorian/dizquetv +version: 1.9.1 diff --git a/stable/dizquetv/1.9.1/README.md b/stable/dizquetv/1.9.1/README.md new file mode 100644 index 00000000000..06be6484d6e --- /dev/null +++ b/stable/dizquetv/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Create live TV channel streams from media on your Plex servers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/dizquetv/1.9.1/app-readme.md b/stable/dizquetv/1.9.1/app-readme.md new file mode 100644 index 00000000000..368ab69afef --- /dev/null +++ b/stable/dizquetv/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Create live TV channel streams from media on your Plex servers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Create live TV channel streams from media on your Plex servers. diff --git a/stable/dizquetv/1.9.1/charts/common-6.12.1.tgz b/stable/dizquetv/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/dizquetv/1.9.1/ix_values.yaml b/stable/dizquetv/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..4bc21c65fd5 --- /dev/null +++ b/stable/dizquetv/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: vexorian/dizquetv + pullPolicy: IfNotPresent + tag: 1.4.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/dizquetv/1.9.1/questions.yaml b/stable/dizquetv/1.9.1/questions.yaml new file mode 100644 index 00000000000..3a46d662bc8 --- /dev/null +++ b/stable/dizquetv/1.9.1/questions.yaml @@ -0,0 +1,1067 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36058 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/home/node/app/.dizquetv" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/dizquetv/1.9.1/templates/common.yaml b/stable/dizquetv/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/dizquetv/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/dizquetv/1.9.1/test_values.yaml b/stable/dizquetv/1.9.1/test_values.yaml new file mode 100644 index 00000000000..993d288febc --- /dev/null +++ b/stable/dizquetv/1.9.1/test_values.yaml @@ -0,0 +1,43 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: vexorian/dizquetv + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 1.4.3 + +# -- environment variables. See more environment variables in the [dizquetv documentation](https://hub.docker.com/r/vexorian/dizquetv). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: 1001 + # -- Specify the group ID the application will run as + PGID: 1001 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /home/node/app/.dizquetv diff --git a/stable/dizquetv/1.9.1/values.yaml b/stable/dizquetv/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/duplicati/1.9.1/CONFIG.md b/stable/duplicati/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/duplicati/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/duplicati/1.9.1/Chart.lock b/stable/duplicati/1.9.1/Chart.lock new file mode 100644 index 00000000000..2a908001b25 --- /dev/null +++ b/stable/duplicati/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:58:06.131907048Z" diff --git a/stable/duplicati/1.9.1/Chart.yaml b/stable/duplicati/1.9.1/Chart.yaml new file mode 100644 index 00000000000..4db1772fe06 --- /dev/null +++ b/stable/duplicati/1.9.1/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Store securely encrypted backups on cloud storage services! +home: https://github.com/truechartsapps/tree/master/charts/incubator/duplicati +icon: https://avatars.githubusercontent.com/u/8270231?s=200&v=4 +keywords: +- duplicati +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: duplicati +sources: +- https://hub.docker.com/r/linuxserver/duplicati/ +- https://github.com/duplicati/duplicati +version: 1.9.1 diff --git a/stable/duplicati/1.9.1/README.md b/stable/duplicati/1.9.1/README.md new file mode 100644 index 00000000000..eed1746e7d1 --- /dev/null +++ b/stable/duplicati/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Store securely encrypted backups on cloud storage services! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/duplicati/1.9.1/app-readme.md b/stable/duplicati/1.9.1/app-readme.md new file mode 100644 index 00000000000..071db847f8e --- /dev/null +++ b/stable/duplicati/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Store securely encrypted backups on cloud storage services! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Store securely encrypted backups on cloud storage services! diff --git a/stable/duplicati/1.9.1/charts/common-6.12.1.tgz b/stable/duplicati/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/duplicati/1.9.1/ix_values.yaml b/stable/duplicati/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..ab1c03b2bc8 --- /dev/null +++ b/stable/duplicati/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/duplicati + pullPolicy: IfNotPresent + tag: latest + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/duplicati/1.9.1/questions.yaml b/stable/duplicati/1.9.1/questions.yaml new file mode 100644 index 00000000000..88a10dcf78e --- /dev/null +++ b/stable/duplicati/1.9.1/questions.yaml @@ -0,0 +1,1067 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8200 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8200 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36059 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/duplicati/1.9.1/templates/common.yaml b/stable/duplicati/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/duplicati/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/duplicati/1.9.1/test_values.yaml b/stable/duplicati/1.9.1/test_values.yaml new file mode 100644 index 00000000000..8c43b855e86 --- /dev/null +++ b/stable/duplicati/1.9.1/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/duplicati + # -- image tag + tag: latest + # -- image pull policy + pullPolicy: IfNotPresent + +# See more environment variables in the [duplicati documentation](https://github.com/linuxserver/docker-duplicati#parameters) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1000" + # -- Specify the group ID the application will run as + PGID: "1000" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8200 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + source: + enabled: false + backups: + enabled: false diff --git a/stable/duplicati/1.9.1/values.yaml b/stable/duplicati/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/emby/6.11.1/CONFIG.md b/stable/emby/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/emby/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/emby/6.11.1/Chart.lock b/stable/emby/6.11.1/Chart.lock new file mode 100644 index 00000000000..d810da114c3 --- /dev/null +++ b/stable/emby/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:58:10.954343636Z" diff --git a/stable/emby/6.11.1/Chart.yaml b/stable/emby/6.11.1/Chart.yaml new file mode 100644 index 00000000000..ff5312a7533 --- /dev/null +++ b/stable/emby/6.11.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Emby Server is a home media server +home: https://github.com/truecharts/apps/master/stable/emby +icon: https://truecharts.org/_static/img/emby-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: dan.sheridan@postman.org.uk + name: djs52 + url: truecharts.org +name: emby +sources: +- https://hub.docker.com/r/linuxserver/emby +- https://github.com/linuxserver/docker-emby.git +type: application +version: 6.11.1 diff --git a/stable/emby/6.11.1/README.md b/stable/emby/6.11.1/README.md new file mode 100644 index 00000000000..457a67260bf --- /dev/null +++ b/stable/emby/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Emby Server is a home media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/emby/6.11.1/app-readme.md b/stable/emby/6.11.1/app-readme.md new file mode 100644 index 00000000000..15ade62a292 --- /dev/null +++ b/stable/emby/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Emby Server is a home media server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Emby Server is a home media server diff --git a/stable/emby/6.11.1/charts/common-6.12.1.tgz b/stable/emby/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/emby/6.11.1/ix_values.yaml b/stable/emby/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..62b028de9c7 --- /dev/null +++ b/stable/emby/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/emby + pullPolicy: IfNotPresent + tag: v4.6.4.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/emby/6.11.1/questions.yaml b/stable/emby/6.11.1/questions.yaml new file mode 100644 index 00000000000..5c0bd7e58f5 --- /dev/null +++ b/stable/emby/6.11.1/questions.yaml @@ -0,0 +1,1113 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36006 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/emby/6.11.1/templates/common.yaml b/stable/emby/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/emby/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/emby/6.11.1/test_values.yaml b/stable/emby/6.11.1/test_values.yaml new file mode 100644 index 00000000000..65ec246cc86 --- /dev/null +++ b/stable/emby/6.11.1/test_values.yaml @@ -0,0 +1,31 @@ +# Default values for emby. + +image: + repository: ghcr.io/k8s-at-home/emby + pullPolicy: IfNotPresent + tag: v4.6.4.0 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/emby/6.11.1/values.yaml b/stable/emby/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/esphome/6.11.1/CONFIG.md b/stable/esphome/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/esphome/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/esphome/6.11.1/Chart.lock b/stable/esphome/6.11.1/Chart.lock new file mode 100644 index 00000000000..ac8e0d0342c --- /dev/null +++ b/stable/esphome/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:58:15.795968679Z" diff --git a/stable/esphome/6.11.1/Chart.yaml b/stable/esphome/6.11.1/Chart.yaml new file mode 100644 index 00000000000..33693de73ef --- /dev/null +++ b/stable/esphome/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful + configuration files and control them remotely through Home Automation systems. +home: https://github.com/truecharts/apps/tree/master/charts/stable/esphome +icon: https://esphome.io/_images/logo.svg +keywords: +- esphome +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: esphome +sources: +- https://github.com/esphome/esphome +- https://hub.docker.com/u/esphome +type: application +version: 6.11.1 diff --git a/stable/esphome/6.11.1/README.md b/stable/esphome/6.11.1/README.md new file mode 100644 index 00000000000..75daa984945 --- /dev/null +++ b/stable/esphome/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/esphome/6.11.1/app-readme.md b/stable/esphome/6.11.1/app-readme.md new file mode 100644 index 00000000000..561699f8df7 --- /dev/null +++ b/stable/esphome/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful diff --git a/stable/esphome/6.11.1/charts/common-6.12.1.tgz b/stable/esphome/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/esphome/6.11.1/ix_values.yaml b/stable/esphome/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..8ffc4bcf1a8 --- /dev/null +++ b/stable/esphome/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 2021.8.2 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/esphome/6.11.1/questions.yaml b/stable/esphome/6.11.1/questions.yaml new file mode 100644 index 00000000000..8edb7d8a6d0 --- /dev/null +++ b/stable/esphome/6.11.1/questions.yaml @@ -0,0 +1,1208 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6052 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6052 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36007 + # Configure app volumes + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: platformio + label: "Platformio Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/.platformio" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/esphome/6.11.1/templates/common.yaml b/stable/esphome/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/esphome/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/esphome/6.11.1/test_values.yaml b/stable/esphome/6.11.1/test_values.yaml new file mode 100644 index 00000000000..8dfd7964c09 --- /dev/null +++ b/stable/esphome/6.11.1/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for esphome. + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 2021.8.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6052 + +env: {} + # ESPHOME_DASHBOARD_USE_PING: true + # ESPHOME_DASHBOARD_RELATIVE_URL: "/" + # ESPHOME_QUICKWIZARD: + # ESPHOME_IS_HASSIO: + # DISABLE_HA_AUTHENTICATION: + # USERNAME: + # PASSWORD: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/esphome/6.11.1/values.yaml b/stable/esphome/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/external-service/1.4.0/Chart.lock b/stable/external-service/1.4.0/Chart.lock index 4b3d7bfd31f..529cdb9ceaf 100644 --- a/stable/external-service/1.4.0/Chart.lock +++ b/stable/external-service/1.4.0/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.12.1 digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da -generated: "2021-08-30T14:26:04.728453323Z" +generated: "2021-08-30T20:58:20.742804266Z" diff --git a/stable/fireflyiii/5.7.1/CONFIG.md b/stable/fireflyiii/5.7.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/fireflyiii/5.7.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/fireflyiii/5.7.1/Chart.lock b/stable/fireflyiii/5.7.1/Chart.lock new file mode 100644 index 00000000000..7fd30240c42 --- /dev/null +++ b/stable/fireflyiii/5.7.1/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +digest: sha256:d3e59b1fb333b720f8acae4cd687b65a2ee8e1ff783c876426fbe7309d0987b3 +generated: "2021-08-30T20:58:26.576949948Z" diff --git a/stable/fireflyiii/5.7.1/Chart.yaml b/stable/fireflyiii/5.7.1/Chart.yaml new file mode 100644 index 00000000000..e00a659b458 --- /dev/null +++ b/stable/fireflyiii/5.7.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +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: 5.7.1 diff --git a/stable/fireflyiii/5.7.1/README.md b/stable/fireflyiii/5.7.1/README.md new file mode 100644 index 00000000000..b701eb77722 --- /dev/null +++ b/stable/fireflyiii/5.7.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 5.4.4](https://img.shields.io/badge/Version-5.4.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A free and open source personal finance manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | +| https://truecharts.org/ | postgresql | 1.2.4 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/fireflyiii/5.7.1/app-readme.md b/stable/fireflyiii/5.7.1/app-readme.md new file mode 100644 index 00000000000..51ef9c43a7d --- /dev/null +++ b/stable/fireflyiii/5.7.1/app-readme.md @@ -0,0 +1,4 @@ +A free and open source personal finance manager + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A free and open source personal finance manager diff --git a/stable/fireflyiii/5.7.1/charts/common-6.12.1.tgz b/stable/fireflyiii/5.7.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/fireflyiii/5.7.1/charts/postgresql-1.3.0.tgz b/stable/fireflyiii/5.7.1/charts/postgresql-1.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2caee3ce8636fb4a68579dcc017ad83225c336a9 GIT binary patch literal 30700 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 literal 0 HcmV?d00001 diff --git a/stable/fireflyiii/5.7.1/ix_values.yaml b/stable/fireflyiii/5.7.1/ix_values.yaml new file mode 100644 index 00000000000..a94de5b58ef --- /dev/null +++ b/stable/fireflyiii/5.7.1/ix_values.yaml @@ -0,0 +1,54 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: fireflyiii/core + pullPolicy: IfNotPresent + tag: version-5.5.12 + +probes: + liveness: + path: "/login" + + readiness: + path: "/login" + + startup: + path: "/login" + +env: + DB_USERNAME: fireflyiii + DB_DATABASE: fireflyiii + DB_CONNECTION: pgsql + DB_PORT: 5432 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: dbcreds + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: fireflyiii + postgresqlDatabase: fireflyiii + existingSecret: dbcreds + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/fireflyiii/5.7.1/questions.yaml b/stable/fireflyiii/5.7.1/questions.yaml new file mode 100644 index 00000000000..0d5c724f68f --- /dev/null +++ b/stable/fireflyiii/5.7.1/questions.yaml @@ -0,0 +1,1116 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: APP_KEY + label: "App Key" + description: "Your unique 32 application character key" + schema: + type: string + default: "" + min_length: 32 + max_length: 32 + valid_chars: '[a-zA-Z0-9!@#$%^&*?]{32}' + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36048 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 0 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/fireflyiii/5.7.1/templates/common.yaml b/stable/fireflyiii/5.7.1/templates/common.yaml new file mode 100644 index 00000000000..64e027ac0fa --- /dev/null +++ b/stable/fireflyiii/5.7.1/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/fireflyiii/5.7.1/templates/secrets.yaml b/stable/fireflyiii/5.7.1/templates/secrets.yaml new file mode 100644 index 00000000000..5d262741617 --- /dev/null +++ b/stable/fireflyiii/5.7.1/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/stable/fireflyiii/5.7.1/test_values.yaml b/stable/fireflyiii/5.7.1/test_values.yaml new file mode 100644 index 00000000000..21b500850d3 --- /dev/null +++ b/stable/fireflyiii/5.7.1/test_values.yaml @@ -0,0 +1,72 @@ +# Default values for fireflyIII. + +image: + repository: fireflyiii/core + pullPolicy: IfNotPresent + tag: version-5.5.12 + +strategy: + type: Recreate + +podSecurityContext: + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 + fsGroup: 0 + +service: + main: + ports: + main: + port: 8080 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP + +probes: + liveness: + path: "/login" + + readiness: + path: "/login" + + startup: + path: "/login" + +env: + DB_USERNAME: firefly + DB_DATABASE: firefly + DB_CONNECTION: pgsql + DB_PORT: 5432 + APP_KEY: AGcfkCUS233ZWmBXztYbdyCs2u7kkz55 + +envValueFrom: + DB_HOST: + secretKeyRef: + name: dbcreds + key: postgresql_host + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + +persistence: + data: + enabled: true + mountPath: "/var/www/html/storage/upload" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: firefly + postgresqlDatabase: firefly + existingSecret: dbcreds diff --git a/stable/fireflyiii/5.7.1/values.yaml b/stable/fireflyiii/5.7.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/flaresolverr/1.9.1/CONFIG.md b/stable/flaresolverr/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/flaresolverr/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/flaresolverr/1.9.1/Chart.lock b/stable/flaresolverr/1.9.1/Chart.lock new file mode 100644 index 00000000000..f67b098597b --- /dev/null +++ b/stable/flaresolverr/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:58:32.879389753Z" diff --git a/stable/flaresolverr/1.9.1/Chart.yaml b/stable/flaresolverr/1.9.1/Chart.yaml new file mode 100644 index 00000000000..38ffc611598 --- /dev/null +++ b/stable/flaresolverr/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: FlareSolverr is a proxy server to bypass Cloudflare protection +home: https://github.com/truechartsapps/tree/master/charts/incubator/flaresolverr +icon: https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.svg +keywords: +- flaresolverr +- jackett +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: flaresolverr +sources: +- https://github.com/FlareSolverr/FlareSolverr +- https://hub.docker.com/r/flaresolverr/flaresolverr +version: 1.9.1 diff --git a/stable/flaresolverr/1.9.1/README.md b/stable/flaresolverr/1.9.1/README.md new file mode 100644 index 00000000000..d28d92d1c70 --- /dev/null +++ b/stable/flaresolverr/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +FlareSolverr is a proxy server to bypass Cloudflare protection + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/flaresolverr/1.9.1/app-readme.md b/stable/flaresolverr/1.9.1/app-readme.md new file mode 100644 index 00000000000..2ffce9f89c3 --- /dev/null +++ b/stable/flaresolverr/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +FlareSolverr is a proxy server to bypass Cloudflare protection + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +FlareSolverr is a proxy server to bypass Cloudflare protection diff --git a/stable/flaresolverr/1.9.1/charts/common-6.12.1.tgz b/stable/flaresolverr/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/flaresolverr/1.9.1/ix_values.yaml b/stable/flaresolverr/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..8d6938f0aa1 --- /dev/null +++ b/stable/flaresolverr/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/flaresolverr/flaresolverr + pullPolicy: IfNotPresent + tag: v1.2.9 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/flaresolverr/1.9.1/questions.yaml b/stable/flaresolverr/1.9.1/questions.yaml new file mode 100644 index 00000000000..227ad3c01ce --- /dev/null +++ b/stable/flaresolverr/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8191 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8191 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36060 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/flaresolverr/1.9.1/templates/common.yaml b/stable/flaresolverr/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/flaresolverr/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/flaresolverr/1.9.1/test_values.yaml b/stable/flaresolverr/1.9.1/test_values.yaml new file mode 100644 index 00000000000..5e136cec6b7 --- /dev/null +++ b/stable/flaresolverr/1.9.1/test_values.yaml @@ -0,0 +1,28 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/flaresolverr/flaresolverr + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v1.2.9 + +# -- environment variables. See more environment variables in the [flaresolverr documentation](https://github.com/FlareSolverr/FlareSolverr#environment-variables). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8191 diff --git a/stable/flaresolverr/1.9.1/values.yaml b/stable/flaresolverr/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/flood/1.9.1/CONFIG.md b/stable/flood/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/flood/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/flood/1.9.1/Chart.lock b/stable/flood/1.9.1/Chart.lock new file mode 100644 index 00000000000..bf0617048a9 --- /dev/null +++ b/stable/flood/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:58:37.793740245Z" diff --git a/stable/flood/1.9.1/Chart.yaml b/stable/flood/1.9.1/Chart.yaml new file mode 100644 index 00000000000..29abbcb572e --- /dev/null +++ b/stable/flood/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Flood is a monitoring service for various torrent clients +home: https://github.com/truechartsapps/tree/master/charts/incubator/flood +icon: https://raw.githubusercontent.com/jesec/flood/master/flood.svg +keywords: +- flood +- rtorrent +- qbittorrent +- transmission +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: flood +sources: +- https://github.com/jesec/flood +- https://hub.docker.com/r/jesec/flood +version: 1.9.1 diff --git a/stable/flood/1.9.1/README.md b/stable/flood/1.9.1/README.md new file mode 100644 index 00000000000..f04b9a244d5 --- /dev/null +++ b/stable/flood/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Flood is a monitoring service for various torrent clients + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/flood/1.9.1/app-readme.md b/stable/flood/1.9.1/app-readme.md new file mode 100644 index 00000000000..1b74a178f8a --- /dev/null +++ b/stable/flood/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Flood is a monitoring service for various torrent clients + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Flood is a monitoring service for various torrent clients diff --git a/stable/flood/1.9.1/charts/common-6.12.1.tgz b/stable/flood/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/flood/1.9.1/ci/ct-values.yaml b/stable/flood/1.9.1/ci/ct-values.yaml new file mode 100644 index 00000000000..f874292fadf --- /dev/null +++ b/stable/flood/1.9.1/ci/ct-values.yaml @@ -0,0 +1,5 @@ +persistence: + data: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi diff --git a/stable/flood/1.9.1/ix_values.yaml b/stable/flood/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..8ea3b077107 --- /dev/null +++ b/stable/flood/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jesec/flood + pullPolicy: IfNotPresent + tag: 4.6.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/flood/1.9.1/questions.yaml b/stable/flood/1.9.1/questions.yaml new file mode 100644 index 00000000000..bf75b7031a0 --- /dev/null +++ b/stable/flood/1.9.1/questions.yaml @@ -0,0 +1,1111 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: FLOOD_OPTION_RUNDIR + label: "FLOOD_OPTION_RUNDIR" + description: "Where to store Flood's runtime files (eg. database)" + schema: + type: string + default: "/data" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36061 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/flood/1.9.1/templates/common.yaml b/stable/flood/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/flood/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/flood/1.9.1/test_values.yaml b/stable/flood/1.9.1/test_values.yaml new file mode 100644 index 00000000000..c1b0c97e0d3 --- /dev/null +++ b/stable/flood/1.9.1/test_values.yaml @@ -0,0 +1,39 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: jesec/flood + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.6.1 + +# -- environment variables. See more environment variables in the [flood documentation] (https://github.com/jesec/flood/blob/v4.6.0/config.ts) +# Note: The environmental variables are not case sensitive (e.g. FLOOD_OPTION_port=FLOOD_OPTION_PORT). +# @default -- See below +env: + # -- Where to store Flood's runtime files (eg. database) + FLOOD_OPTION_RUNDIR: /data + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 3000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/flood/1.9.1/values.yaml b/stable/flood/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/focalboard/1.9.1/CONFIG.md b/stable/focalboard/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/focalboard/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/focalboard/1.9.1/Chart.lock b/stable/focalboard/1.9.1/Chart.lock new file mode 100644 index 00000000000..0ff6f6e07ad --- /dev/null +++ b/stable/focalboard/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:58:42.728208533Z" diff --git a/stable/focalboard/1.9.1/Chart.yaml b/stable/focalboard/1.9.1/Chart.yaml new file mode 100644 index 00000000000..c7de433d1d1 --- /dev/null +++ b/stable/focalboard/1.9.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Focalboard is an open source, self-hosted alternative to Trello, Notion, + and Asana. +home: https://github.com/truechartsapps/tree/master/charts/incubator/focalboard +icon: https://github.com/mattermost/focalboard/raw/main/webapp/static/favicon.svg +keywords: +- focalboard +- kanban +- project management +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: focalboard +sources: +- https://www.focalboard.com/ +- https://github.com/mattermost/focalboard +- https://github.com/FlipEnergy/container-images/blob/main/focalboard +version: 1.9.1 diff --git a/stable/focalboard/1.9.1/README.md b/stable/focalboard/1.9.1/README.md new file mode 100644 index 00000000000..8d4d58d2188 --- /dev/null +++ b/stable/focalboard/1.9.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/focalboard/1.9.1/app-readme.md b/stable/focalboard/1.9.1/app-readme.md new file mode 100644 index 00000000000..81d01c25ab0 --- /dev/null +++ b/stable/focalboard/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Focalboard is an open source, self-hosted alternative to Trello, Notion, diff --git a/stable/focalboard/1.9.1/charts/common-6.12.1.tgz b/stable/focalboard/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/focalboard/1.9.1/ix_values.yaml b/stable/focalboard/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..d0913f04ee9 --- /dev/null +++ b/stable/focalboard/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: flipenergy/focalboard + pullPolicy: IfNotPresent + tag: 0.8.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/focalboard/1.9.1/questions.yaml b/stable/focalboard/1.9.1/questions.yaml new file mode 100644 index 00000000000..a82e8e273f1 --- /dev/null +++ b/stable/focalboard/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36049 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/focalboard/1.9.1/templates/common.yaml b/stable/focalboard/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/focalboard/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/focalboard/1.9.1/test_values.yaml b/stable/focalboard/1.9.1/test_values.yaml new file mode 100644 index 00000000000..2a644998937 --- /dev/null +++ b/stable/focalboard/1.9.1/test_values.yaml @@ -0,0 +1,39 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: flipenergy/focalboard + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 0.8.0 + +# -- environment variables. See more environment variables in the [image entrypoint script](https://github.com/FlipEnergy/container-images/blob/main/focalboard/entrypoint.sh) +# @default -- See below +env: {} + # SERVER_ROOT: + # DBTYPE: + # DBCONFIG: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/focalboard/1.9.1/values.yaml b/stable/focalboard/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/freeradius/1.7.1/CONFIG.md b/stable/freeradius/1.7.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/freeradius/1.7.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/freeradius/1.7.1/Chart.lock b/stable/freeradius/1.7.1/Chart.lock new file mode 100644 index 00000000000..89b6b47e419 --- /dev/null +++ b/stable/freeradius/1.7.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:58:47.671817149Z" diff --git a/stable/freeradius/1.7.1/Chart.yaml b/stable/freeradius/1.7.1/Chart.yaml new file mode 100644 index 00000000000..686c21082dc --- /dev/null +++ b/stable/freeradius/1.7.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: OpenSource Radius implementation +home: https://www.openldap.org +icon: https://networkradius.com/assets/img/FR-NR.svg +keywords: +- radius +- auth +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: freeradius +sources: +- https://hub.docker.com/r/freeradius/freeradius-server/ +- https://freeradius.org/ +type: application +version: 1.7.1 diff --git a/stable/freeradius/1.7.1/README.md b/stable/freeradius/1.7.1/README.md new file mode 100644 index 00000000000..269f91dfef6 --- /dev/null +++ b/stable/freeradius/1.7.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.4.7](https://img.shields.io/badge/Version-1.4.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +OpenSource Radius implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/freeradius/1.7.1/app-readme.md b/stable/freeradius/1.7.1/app-readme.md new file mode 100644 index 00000000000..a967f8ba6ae --- /dev/null +++ b/stable/freeradius/1.7.1/app-readme.md @@ -0,0 +1,4 @@ +OpenSource Radius implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +OpenSource Radius implementation diff --git a/stable/freeradius/1.7.1/charts/common-6.12.1.tgz b/stable/freeradius/1.7.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/freeradius/1.7.1/ix_values.yaml b/stable/freeradius/1.7.1/ix_values.yaml new file mode 100644 index 00000000000..5f5b3bc0697 --- /dev/null +++ b/stable/freeradius/1.7.1/ix_values.yaml @@ -0,0 +1,34 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## +image: + repository: ghcr.io/truecharts/freeradius + pullPolicy: IfNotPresent + tag: v3.0.23 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + enabled: false + + # -- Redainess probe configuration + # @default -- See below + readiness: + enabled: false + + # -- Startup probe configuration + # @default -- See below + startup: + enabled: false + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/freeradius/1.7.1/questions.yaml b/stable/freeradius/1.7.1/questions.yaml new file mode 100644 index 00000000000..6b3bd83af02 --- /dev/null +++ b/stable/freeradius/1.7.1/questions.yaml @@ -0,0 +1,1037 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "Statefulset" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1812 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1812 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36096 + - variable: administration + label: "administration Service" + description: "The administration service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1813 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1813 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36097 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Config." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/freeradius/1.7.1/templates/common.yaml b/stable/freeradius/1.7.1/templates/common.yaml new file mode 100644 index 00000000000..64e027ac0fa --- /dev/null +++ b/stable/freeradius/1.7.1/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/freeradius/1.7.1/test_values.yaml b/stable/freeradius/1.7.1/test_values.yaml new file mode 100644 index 00000000000..8159592eed5 --- /dev/null +++ b/stable/freeradius/1.7.1/test_values.yaml @@ -0,0 +1,47 @@ +# Default values for Bitwarden. + +image: + repository: ghcr.io/truecharts/freeradius + pullPolicy: IfNotPresent + tag: v3.0.23 + +service: + main: + ports: + main: + protocol: UDP + port: 1812 + accounting: + ports: + accounting: + protocol: UDP + port: 1813 + +# -- Probe configuration +# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) +# @default -- See below +probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + enabled: false + + # -- Redainess probe configuration + # @default -- See below + readiness: + enabled: false + + # -- Startup probe configuration + # @default -- See below + startup: + enabled: false + +env: {} + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/freeradius/1.7.1/values.yaml b/stable/freeradius/1.7.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/freshrss/6.11.1/CONFIG.md b/stable/freshrss/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/freshrss/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/freshrss/6.11.1/Chart.lock b/stable/freshrss/6.11.1/Chart.lock new file mode 100644 index 00000000000..5507d62a503 --- /dev/null +++ b/stable/freshrss/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:58:52.627210998Z" diff --git a/stable/freshrss/6.11.1/Chart.yaml b/stable/freshrss/6.11.1/Chart.yaml new file mode 100644 index 00000000000..312c31096b9 --- /dev/null +++ b/stable/freshrss/6.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: FreshRSS is a self-hosted RSS feed aggregator +home: https://github.com/truecharts/apps/tree/master/charts/incubator/freshrss +icon: https://github.com/FreshRSS/FreshRSS/blob/master/docs/img/FreshRSS-logo.png?raw=true +keywords: +- freshrss +- rss +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: freshrss +sources: +- https://github.com/FreshRSS/FreshRSS +- https://hub.docker.com/r/linuxserver/freshrss +type: application +version: 6.11.1 diff --git a/stable/freshrss/6.11.1/README.md b/stable/freshrss/6.11.1/README.md new file mode 100644 index 00000000000..5c3a1f95ff7 --- /dev/null +++ b/stable/freshrss/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +FreshRSS is a self-hosted RSS feed aggregator + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/freshrss/6.11.1/app-readme.md b/stable/freshrss/6.11.1/app-readme.md new file mode 100644 index 00000000000..e0a7bf6bef9 --- /dev/null +++ b/stable/freshrss/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +FreshRSS is a self-hosted RSS feed aggregator + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +FreshRSS is a self-hosted RSS feed aggregator diff --git a/stable/freshrss/6.11.1/charts/common-6.12.1.tgz b/stable/freshrss/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/freshrss/6.11.1/ix_values.yaml b/stable/freshrss/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..98641a23823 --- /dev/null +++ b/stable/freshrss/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/freshrss/6.11.1/questions.yaml b/stable/freshrss/6.11.1/questions.yaml new file mode 100644 index 00000000000..63d4bd0123d --- /dev/null +++ b/stable/freshrss/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36029 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/freshrss/6.11.1/templates/common.yaml b/stable/freshrss/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/freshrss/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/freshrss/6.11.1/test_values.yaml b/stable/freshrss/6.11.1/test_values.yaml new file mode 100644 index 00000000000..80bf6769c92 --- /dev/null +++ b/stable/freshrss/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for FreshRSS. + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.18.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/freshrss/6.11.1/values.yaml b/stable/freshrss/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/gaps/6.11.1/CONFIG.md b/stable/gaps/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/gaps/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/gaps/6.11.1/Chart.lock b/stable/gaps/6.11.1/Chart.lock new file mode 100644 index 00000000000..ff0b2e9252d --- /dev/null +++ b/stable/gaps/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:58:57.505161419Z" diff --git a/stable/gaps/6.11.1/Chart.yaml b/stable/gaps/6.11.1/Chart.yaml new file mode 100644 index 00000000000..933432b1742 --- /dev/null +++ b/stable/gaps/6.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Gaps searches through your Plex Server or local folders for all movies, + then queries for known movies in the same collection. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/gaps +icon: https://raw.githubusercontent.com/JasonHHouse/gaps/master/images/Final-Black.png +keywords: +- gaps +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: gaps +sources: +- https://github.com/JasonHHouse/gaps +type: application +version: 6.11.1 diff --git a/stable/gaps/6.11.1/README.md b/stable/gaps/6.11.1/README.md new file mode 100644 index 00000000000..a80fc3de699 --- /dev/null +++ b/stable/gaps/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/gaps/6.11.1/app-readme.md b/stable/gaps/6.11.1/app-readme.md new file mode 100644 index 00000000000..df7087e7a53 --- /dev/null +++ b/stable/gaps/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Gaps searches through your Plex Server or local folders for all movies, diff --git a/stable/gaps/6.11.1/charts/common-6.12.1.tgz b/stable/gaps/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/gaps/6.11.1/ix_values.yaml b/stable/gaps/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..d11177660e5 --- /dev/null +++ b/stable/gaps/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/gaps/6.11.1/questions.yaml b/stable/gaps/6.11.1/questions.yaml new file mode 100644 index 00000000000..6b6f3d8e3f5 --- /dev/null +++ b/stable/gaps/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8484 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36030 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/gaps/6.11.1/templates/common.yaml b/stable/gaps/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/gaps/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/gaps/6.11.1/test_values.yaml b/stable/gaps/6.11.1/test_values.yaml new file mode 100644 index 00000000000..29edcb27bd2 --- /dev/null +++ b/stable/gaps/6.11.1/test_values.yaml @@ -0,0 +1,26 @@ +# Default values for Gaps. + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8484 + +env: {} + # TZ: UTC + +persistence: + data: + enabled: true + mountPath: "/usr/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/gaps/6.11.1/values.yaml b/stable/gaps/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/gonic/1.9.1/CONFIG.md b/stable/gonic/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/gonic/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/gonic/1.9.1/Chart.lock b/stable/gonic/1.9.1/Chart.lock new file mode 100644 index 00000000000..f9d4f169bcb --- /dev/null +++ b/stable/gonic/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:59:02.470582427Z" diff --git a/stable/gonic/1.9.1/Chart.yaml b/stable/gonic/1.9.1/Chart.yaml new file mode 100644 index 00000000000..dfe4df34803 --- /dev/null +++ b/stable/gonic/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Music streaming server / subsonic server API implementation +home: https://github.com/truechartsapps/tree/master/charts/incubator/gonic +icon: https://raw.githubusercontent.com/sentriz/gonic/master/.github/logo.png +keywords: +- music +- subsonic +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: gonic +sources: +- https://github.com/sentriz/gonic +- https://hub.docker.com/r/sentriz/gonic +version: 1.9.1 diff --git a/stable/gonic/1.9.1/README.md b/stable/gonic/1.9.1/README.md new file mode 100644 index 00000000000..8ceb404b6f3 --- /dev/null +++ b/stable/gonic/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Music streaming server / subsonic server API implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/gonic/1.9.1/app-readme.md b/stable/gonic/1.9.1/app-readme.md new file mode 100644 index 00000000000..8aac0d79210 --- /dev/null +++ b/stable/gonic/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Music streaming server / subsonic server API implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Music streaming server / subsonic server API implementation diff --git a/stable/gonic/1.9.1/charts/common-6.12.1.tgz b/stable/gonic/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/gonic/1.9.1/ci/ct-values.yaml b/stable/gonic/1.9.1/ci/ct-values.yaml new file mode 100644 index 00000000000..6d8d2f4a5c9 --- /dev/null +++ b/stable/gonic/1.9.1/ci/ct-values.yaml @@ -0,0 +1,21 @@ +env: + GONIC_MUSIC_PATH: "/music" + GONIC_PODCAST_PATH: "/podcasts" + GONIC_CACHE_PATH: "/cache" +persistence: + data: + enabled: true + type: emptyDir + mountPath: /data + podcasts: + enabled: true + type: emptyDir + mountPath: /podcasts + cache: + enabled: true + type: emptyDir + mountPath: /cache + music: + enabled: true + type: emptyDir + mountPath: /music diff --git a/stable/gonic/1.9.1/ix_values.yaml b/stable/gonic/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..0573c45fa47 --- /dev/null +++ b/stable/gonic/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: sentriz/gonic + pullPolicy: IfNotPresent + tag: v0.13.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/gonic/1.9.1/questions.yaml b/stable/gonic/1.9.1/questions.yaml new file mode 100644 index 00000000000..b1a93afd866 --- /dev/null +++ b/stable/gonic/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36062 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/gonic/1.9.1/templates/common.yaml b/stable/gonic/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/gonic/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/gonic/1.9.1/test_values.yaml b/stable/gonic/1.9.1/test_values.yaml new file mode 100644 index 00000000000..ffa50795a48 --- /dev/null +++ b/stable/gonic/1.9.1/test_values.yaml @@ -0,0 +1,41 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: sentriz/gonic + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.13.1 + +# -- environment variables. See more environment variables in the [gonic documentation](https://github.com/sentriz/gonic#configuration-options) +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # GONIC_MUSIC_PATH: + # GONIC_PODCAST_PATH: + # GONIC_CACHE_PATH: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/gonic/1.9.1/values.yaml b/stable/gonic/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/grocy/6.11.1/CONFIG.md b/stable/grocy/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/grocy/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/grocy/6.11.1/Chart.lock b/stable/grocy/6.11.1/Chart.lock new file mode 100644 index 00000000000..11fdf99332b --- /dev/null +++ b/stable/grocy/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:07.395489652Z" diff --git a/stable/grocy/6.11.1/Chart.yaml b/stable/grocy/6.11.1/Chart.yaml new file mode 100644 index 00000000000..d5693acc1e2 --- /dev/null +++ b/stable/grocy/6.11.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & + household management solution for your home +home: https://github.com/truecharts/apps/tree/master/charts/incubator/grocy +icon: https://github.com/grocy/grocy/raw/master/public/img/appicons/mstile-150x150.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: grocy +sources: +- https://github.com/grocy/grocy +type: application +version: 6.11.1 diff --git a/stable/grocy/6.11.1/README.md b/stable/grocy/6.11.1/README.md new file mode 100644 index 00000000000..26e08e648c4 --- /dev/null +++ b/stable/grocy/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/grocy/6.11.1/app-readme.md b/stable/grocy/6.11.1/app-readme.md new file mode 100644 index 00000000000..29b6f35a8a7 --- /dev/null +++ b/stable/grocy/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +ERP beyond your fridge - grocy is a web-based self-hosted groceries & diff --git a/stable/grocy/6.11.1/charts/common-6.12.1.tgz b/stable/grocy/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/grocy/6.11.1/ix_values.yaml b/stable/grocy/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..c667aba334c --- /dev/null +++ b/stable/grocy/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/grocy + tag: version-v3.1.1 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/grocy/6.11.1/questions.yaml b/stable/grocy/6.11.1/questions.yaml new file mode 100644 index 00000000000..e2c8e09b498 --- /dev/null +++ b/stable/grocy/6.11.1/questions.yaml @@ -0,0 +1,1065 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36031 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/grocy/6.11.1/templates/common.yaml b/stable/grocy/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/grocy/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/grocy/6.11.1/test_values.yaml b/stable/grocy/6.11.1/test_values.yaml new file mode 100644 index 00000000000..5441f2ffb03 --- /dev/null +++ b/stable/grocy/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for grocy. + +image: + repository: linuxserver/grocy + tag: version-v3.1.1 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: + # PUID: + # PGID: + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/grocy/6.11.1/values.yaml b/stable/grocy/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/handbrake/6.11.1/CONFIG.md b/stable/handbrake/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/handbrake/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/handbrake/6.11.1/Chart.lock b/stable/handbrake/6.11.1/Chart.lock new file mode 100644 index 00000000000..938383ad253 --- /dev/null +++ b/stable/handbrake/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:12.322307709Z" diff --git a/stable/handbrake/6.11.1/Chart.yaml b/stable/handbrake/6.11.1/Chart.yaml new file mode 100644 index 00000000000..17d3c6e2c5c --- /dev/null +++ b/stable/handbrake/6.11.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: HandBrake is a tool for converting video from nearly any format to a + selection of modern, widely supported codecs. +home: https://github.com/truecharts/apps/tree/master/charts/stable/handbrake +icon: https://handbrake.fr/img/logo.png +keywords: +- handbrake +- encode +- media +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: stavros-k@users.noreply.github.com + name: stavros-k + url: truecharts.org +name: handbrake +sources: +- https://github.com/jlesage/docker-handbrake +- https://hub.docker.com/r/jlesage/handbrake/ +- https://handbrake.fr/ +type: application +version: 6.11.1 diff --git a/stable/handbrake/6.11.1/README.md b/stable/handbrake/6.11.1/README.md new file mode 100644 index 00000000000..a0c6bb91a5e --- /dev/null +++ b/stable/handbrake/6.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/handbrake/6.11.1/app-readme.md b/stable/handbrake/6.11.1/app-readme.md new file mode 100644 index 00000000000..8e6089d9f0c --- /dev/null +++ b/stable/handbrake/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +HandBrake is a tool for converting video from nearly any format to a diff --git a/stable/handbrake/6.11.1/charts/common-6.12.1.tgz b/stable/handbrake/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/handbrake/6.11.1/ix_values.yaml b/stable/handbrake/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..e403ece7c74 --- /dev/null +++ b/stable/handbrake/6.11.1/ix_values.yaml @@ -0,0 +1,20 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/handbrake + tag: v1.24.1 + pullPolicy: IfNotPresent + +#All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/handbrake/6.11.1/questions.yaml b/stable/handbrake/6.11.1/questions.yaml new file mode 100644 index 00000000000..c41f5e3108b --- /dev/null +++ b/stable/handbrake/6.11.1/questions.yaml @@ -0,0 +1,1282 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + # Portal + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: gui + label: "GUI Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: DISPLAY_WIDTH + label: "DISPLAY_WIDTH" + description: "Width (in pixels) of the application's window." + schema: + type: string + default: "1280" + required: true + - variable: DISPLAY_HEIGHT + label: "DISPLAY_HEIGHT" + description: "Height (in pixels) of the application's window." + schema: + type: string + default: "768" + required: true + - variable: SECURE_CONNECTION + label: "SECURE_CONNECTION" + description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." + schema: + type: string + default: "0" + required: true + - variable: VNC_PASSWORD + label: "VNC_PASSWORD" + description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." + schema: + private: true + type: string + default: "" + - variable: autoconv + label: "Automated Conversion Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: AUTOMATED_CONVERSION_PRESET + label: "AUTOMATED_CONVERSION_PRESET" + description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format /" + schema: + type: string + default: "General/Very Fast 1080p30" + required: true + - variable: AUTOMATED_CONVERSION_FORMAT + label: "AUTOMATED_CONVERSION_FORMAT" + description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension." + schema: + type: string + default: "mp4" + required: true + - variable: AUTOMATED_CONVERSION_KEEP_SOURCE + label: "AUTOMATED_CONVERSION_KEEP_SOURCE" + description: "When set to 0, a video that has been successfully converted is removed from the watch folder." + schema: + type: string + default: "1" + required: true + - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION + label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" + description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." + schema: + type: string + default: "ignore" + required: true + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5800 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36002 + - variable: vnc + label: "VNC Service" + description: "VNC Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: vnc + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36003 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/handbrake/6.11.1/templates/common.yaml b/stable/handbrake/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/handbrake/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/handbrake/6.11.1/test_values.yaml b/stable/handbrake/6.11.1/test_values.yaml new file mode 100644 index 00000000000..cb1fb9307c6 --- /dev/null +++ b/stable/handbrake/6.11.1/test_values.yaml @@ -0,0 +1,53 @@ +image: + repository: jlesage/handbrake + tag: v1.24.1 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5800 + vnc: + enabled: true + type: ClusterIP + ports: + vnc: + enabled: true + port: 5900 + protocol: "TCP" + +# All values here are set as the docker defaults. +envTpl: + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" + +env: + # Permissions Settings + PUID: "568" + PGID: "568" + # General Settings + KEEP_APP_RUNNING: "0" + CLEAN_TMP_DIR: "1" + # GUI Settings + DISPLAY_WIDTH: "1280" + DISPLAY_HEIGHT: "768" + SECURE_CONNECTION: "0" + VNC_PASSWORD: + # Automated Conversion Preset + AUTOMATED_CONVERSION_PRESET: "General/Very Fast 1080p30" + AUTOMATED_CONVERSION_FORMAT: "mp4" + AUTOMATED_CONVERSION_KEEP_SOURCE: "1" + AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: "ignore" + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/handbrake/6.11.1/values.yaml b/stable/handbrake/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/haste-server/1.11.1/CONFIG.md b/stable/haste-server/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/haste-server/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/haste-server/1.11.1/Chart.lock b/stable/haste-server/1.11.1/Chart.lock new file mode 100644 index 00000000000..1f6a0237130 --- /dev/null +++ b/stable/haste-server/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:17.228448578Z" diff --git a/stable/haste-server/1.11.1/Chart.yaml b/stable/haste-server/1.11.1/Chart.yaml new file mode 100644 index 00000000000..1e38f38b701 --- /dev/null +++ b/stable/haste-server/1.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Simple text sharing +home: https://github.com/truecharts/apps/tree/master/charts/incubator/haste +icon: https://raw.githubusercontent.com/nicholaswilde/helm-charts/main/images/haste.png +keywords: +- haste +- hastebin +- haste-server +- pastebin +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: haste-server +sources: +- https://github.com/seejohnrun/haste-server +- https://github.com/k8s-at-home/container-images +version: 1.11.1 diff --git a/stable/haste-server/1.11.1/README.md b/stable/haste-server/1.11.1/README.md new file mode 100644 index 00000000000..bcf16c4fa18 --- /dev/null +++ b/stable/haste-server/1.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Simple text sharing + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/haste-server/1.11.1/app-readme.md b/stable/haste-server/1.11.1/app-readme.md new file mode 100644 index 00000000000..5f4872e4afe --- /dev/null +++ b/stable/haste-server/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Simple text sharing + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Simple text sharing diff --git a/stable/haste-server/1.11.1/charts/common-6.12.1.tgz b/stable/haste-server/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/haste-server/1.11.1/ix_values.yaml b/stable/haste-server/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..a9ee0bcb65b --- /dev/null +++ b/stable/haste-server/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/haste-server + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/haste-server/1.11.1/questions.yaml b/stable/haste-server/1.11.1/questions.yaml new file mode 100644 index 00000000000..635f9d2b3c8 --- /dev/null +++ b/stable/haste-server/1.11.1/questions.yaml @@ -0,0 +1,1110 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: STORAGE_FILEPATH + label: "STORAGE_FILEPATH" + schema: + type: string + default: "/config" + - variable: STORAGE_TYPE + label: "STORAGE_TYPE" + schema: + type: string + default: "file" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7777 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7777 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36055 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/haste-server/1.11.1/templates/common.yaml b/stable/haste-server/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/haste-server/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/haste-server/1.11.1/test_values.yaml b/stable/haste-server/1.11.1/test_values.yaml new file mode 100644 index 00000000000..e51c1821b1e --- /dev/null +++ b/stable/haste-server/1.11.1/test_values.yaml @@ -0,0 +1,53 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/haste-server + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: latest + +strategy: + type: Recreate + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. See [image docs](https://github.com/seejohnrun/haste-server) for more details. +# @default -- See below +env: + # -- filepath for persistance + STORAGE_FILEPATH: "/config" + # -- sets backend + STORAGE_TYPE: "file" + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 7777 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/haste-server/1.11.1/values.yaml b/stable/haste-server/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/healthchecks/1.9.1/CONFIG.md b/stable/healthchecks/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/healthchecks/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/healthchecks/1.9.1/Chart.lock b/stable/healthchecks/1.9.1/Chart.lock new file mode 100644 index 00000000000..dd6a3f93bae --- /dev/null +++ b/stable/healthchecks/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:59:22.114676288Z" diff --git a/stable/healthchecks/1.9.1/Chart.yaml b/stable/healthchecks/1.9.1/Chart.yaml new file mode 100644 index 00000000000..019b271543d --- /dev/null +++ b/stable/healthchecks/1.9.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Healthchecks is a cron job monitoring service. It listens for HTTP requests + and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). + When a ping does not arrive on time, Healthchecks sends out alerts. +home: https://github.com/truechartsapps/tree/master/charts/incubator/healthchecks +icon: https://avatars.githubusercontent.com/u/13053880?s=200&v=4 +keywords: +- cron +- monitoring +- alert +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: healthchecks +sources: +- https://github.com/healthchecks/healthchecks +- https://hub.docker.com/r/linuxserver/healthchecks +version: 1.9.1 diff --git a/stable/healthchecks/1.9.1/README.md b/stable/healthchecks/1.9.1/README.md new file mode 100644 index 00000000000..29711445635 --- /dev/null +++ b/stable/healthchecks/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). When a ping does not arrive on time, Healthchecks sends out alerts. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/healthchecks/1.9.1/app-readme.md b/stable/healthchecks/1.9.1/app-readme.md new file mode 100644 index 00000000000..5c726785312 --- /dev/null +++ b/stable/healthchecks/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and scheduled tasks ("checks"). When a ping does not arrive on time, Healthchecks sends out alerts. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Healthchecks is a cron job monitoring service. It listens for HTTP requests diff --git a/stable/healthchecks/1.9.1/charts/common-6.12.1.tgz b/stable/healthchecks/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/healthchecks/1.9.1/ix_values.yaml b/stable/healthchecks/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..484ea724c48 --- /dev/null +++ b/stable/healthchecks/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/healthchecks + pullPolicy: IfNotPresent + tag: version-v1.22.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/healthchecks/1.9.1/questions.yaml b/stable/healthchecks/1.9.1/questions.yaml new file mode 100644 index 00000000000..3d1a94723b2 --- /dev/null +++ b/stable/healthchecks/1.9.1/questions.yaml @@ -0,0 +1,1090 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: REGENERATE_SETTINGS + label: "REGENERATE_SETTINGS" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: SITE_ROOT + label: "SITE_ROOT" + description: "The site's top-level URL and the port it listens to" + schema: + type: string + required: true + default: "" + - variable: SITE_NAME + label: "SITE_NAME" + description: "The site's name" + schema: + type: string + required: true + default: "" + - variable: SUPERUSER_EMAIL + label: "SUPERUSER_EMAIL" + description: "Superuser email" + schema: + type: string + required: true + default: "" + - variable: SUPERUSER_PASSWORD + label: "SUPERUSER_PASSWORD" + description: "Superuser password" + schema: + type: string + required: true + private: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36063 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/healthchecks/1.9.1/templates/common.yaml b/stable/healthchecks/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/healthchecks/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/healthchecks/1.9.1/test_values.yaml b/stable/healthchecks/1.9.1/test_values.yaml new file mode 100644 index 00000000000..6da11562cbb --- /dev/null +++ b/stable/healthchecks/1.9.1/test_values.yaml @@ -0,0 +1,44 @@ +# Default values for healthchecks. + +image: + # -- image repository + repository: linuxserver/healthchecks + # -- image tag + tag: version-v1.22.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + +# -- environment variables. See [image docs](https://github.com/linuxserver/docker-healthchecks#parameters) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. + REGENERATE_SETTINGS: "True" + # -- The site's top-level URL and the port it listens to + SITE_ROOT: https://healthchecks.domain + # -- The site's name (e.g., "Example Corp HealthChecks") + SITE_NAME: 8265 + # -- Superuser email + SUPERUSER_EMAIL: email@healthchecks.io + # -- Superuser password + SUPERUSER_PASSWORD: myVeryStrongPassword + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: +# -- Volume used for configuration + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountpath: /config diff --git a/stable/healthchecks/1.9.1/values.yaml b/stable/healthchecks/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/heimdall/6.11.1/CONFIG.md b/stable/heimdall/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/heimdall/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/heimdall/6.11.1/Chart.lock b/stable/heimdall/6.11.1/Chart.lock new file mode 100644 index 00000000000..ee20066ab66 --- /dev/null +++ b/stable/heimdall/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:27.269365976Z" diff --git a/stable/heimdall/6.11.1/Chart.yaml b/stable/heimdall/6.11.1/Chart.yaml new file mode 100644 index 00000000000..b6f992672a9 --- /dev/null +++ b/stable/heimdall/6.11.1/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: An Application dashboard and launcher +home: https://github.com/truecharts/apps/tree/master/charts/incubator/heimdall +icon: https://i.imgur.com/mM4tcO5.png +keywords: +- heimdall +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: heimdall +sources: null +type: application +version: 6.11.1 diff --git a/stable/heimdall/6.11.1/README.md b/stable/heimdall/6.11.1/README.md new file mode 100644 index 00000000000..a6d185e188e --- /dev/null +++ b/stable/heimdall/6.11.1/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +An Application dashboard and launcher + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/heimdall/6.11.1/app-readme.md b/stable/heimdall/6.11.1/app-readme.md new file mode 100644 index 00000000000..34abbfd370f --- /dev/null +++ b/stable/heimdall/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +An Application dashboard and launcher + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +An Application dashboard and launcher diff --git a/stable/heimdall/6.11.1/charts/common-6.12.1.tgz b/stable/heimdall/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/heimdall/6.11.1/ix_values.yaml b/stable/heimdall/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..bdcc3ce0176 --- /dev/null +++ b/stable/heimdall/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/heimdall/6.11.1/questions.yaml b/stable/heimdall/6.11.1/questions.yaml new file mode 100644 index 00000000000..3264cd63e95 --- /dev/null +++ b/stable/heimdall/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/heimdall/6.11.1/templates/common.yaml b/stable/heimdall/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/heimdall/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/heimdall/6.11.1/test_values.yaml b/stable/heimdall/6.11.1/test_values.yaml new file mode 100644 index 00000000000..c2354753fa4 --- /dev/null +++ b/stable/heimdall/6.11.1/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for grocy. + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: + # PUID: + # PGID: + +probes: + startup: + enabled: true + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/heimdall/6.11.1/values.yaml b/stable/heimdall/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/home-assistant/6.11.1/CONFIG.md b/stable/home-assistant/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/home-assistant/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/home-assistant/6.11.1/Chart.lock b/stable/home-assistant/6.11.1/Chart.lock new file mode 100644 index 00000000000..adbe559c33b --- /dev/null +++ b/stable/home-assistant/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:32.169094111Z" diff --git a/stable/home-assistant/6.11.1/Chart.yaml b/stable/home-assistant/6.11.1/Chart.yaml new file mode 100644 index 00000000000..d3e8798f8d6 --- /dev/null +++ b/stable/home-assistant/6.11.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: home-assistant App for TrueNAS SCALE +home: https://github.com/truecharts/apps/tree/master/charts/stable/home-assistant +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Home_Assistant_Logo.svg/519px-Home_Assistant_Logo.svg.png +keywords: +- home-assistant +- hass +- homeassistant +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: home-assistant +sources: +- https://github.com/home-assistant/home-assistant +- https://github.com/cdr/code-server +type: application +version: 6.11.1 diff --git a/stable/home-assistant/6.11.1/README.md b/stable/home-assistant/6.11.1/README.md new file mode 100644 index 00000000000..f700a1fdd6f --- /dev/null +++ b/stable/home-assistant/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +home-assistant App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/home-assistant/6.11.1/app-readme.md b/stable/home-assistant/6.11.1/app-readme.md new file mode 100644 index 00000000000..1b5f149dda8 --- /dev/null +++ b/stable/home-assistant/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +home-assistant App for TrueNAS SCALE + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +home-assistant App for TrueNAS SCALE diff --git a/stable/home-assistant/6.11.1/charts/common-6.12.1.tgz b/stable/home-assistant/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/home-assistant/6.11.1/ix_values.yaml b/stable/home-assistant/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..161391fb151 --- /dev/null +++ b/stable/home-assistant/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/home-assistant/6.11.1/questions.yaml b/stable/home-assistant/6.11.1/questions.yaml new file mode 100644 index 00000000000..d8857afe14d --- /dev/null +++ b/stable/home-assistant/6.11.1/questions.yaml @@ -0,0 +1,1121 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: git + group: "Container Configuration" + label: "Home-Assistant Git Settings" + schema: + type: dict + attrs: + - variable: deployKey + label: "Git deploy key" + schema: + type: string + default: "" + - variable: deployKeyBase64 + label: "Git KeyBase64 deploy key" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8123 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36008 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/home-assistant/6.11.1/templates/common.yaml b/stable/home-assistant/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/home-assistant/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/home-assistant/6.11.1/templates/secret.yaml b/stable/home-assistant/6.11.1/templates/secret.yaml new file mode 100644 index 00000000000..19f769cf59b --- /dev/null +++ b/stable/home-assistant/6.11.1/templates/secret.yaml @@ -0,0 +1,15 @@ +{{- if or .Values.git.deployKey .Values.git.deployKeyBase64 }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "common.names.fullname" . }}-deploykey + labels: + {{- include "common.labels" . | nindent 4 }} +type: Opaque +data: + {{- if .Values.git.deployKey }} + id_rsa: {{ .Values.git.deployKey | b64enc | quote }} + {{- else }} + id_rsa: {{ .Values.git.deployKeyBase64 | quote }} + {{- end }} +{{- end }} diff --git a/stable/home-assistant/6.11.1/test_values.yaml b/stable/home-assistant/6.11.1/test_values.yaml new file mode 100644 index 00000000000..f271650524d --- /dev/null +++ b/stable/home-assistant/6.11.1/test_values.yaml @@ -0,0 +1,85 @@ +# Default values for Home Assistant + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.8.8 + +strategy: + type: Recreate + +env: {} + # TZ: + +service: + main: + ports: + main: + port: 8123 + +# # Enable devices to be discoverable +# hostNetwork: true + +# # When hostNetwork is true set dnsPolicy to ClusterFirstWithHostNet +# dnsPolicy: ClusterFirstWithHostNet + +# # Enable passing thru a USB device to Home Assistant +# securityContext: +# privileged: true + +# Allow access a Git repository by passing in a private SSH key +git: + # Raw SSH private key + deployKey: "" + # Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. + deployKeyBase64: "" + +# Enable a prometheus-operator servicemonitor +prometheus: + serviceMonitor: + enabled: false + # interval: 1m + # additionalLabels: {} + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# # Path to your Z-Wave / Zigbee device in the container +# additionalVolumeMounts: +# - name: zwave-usb +# mountPath: /dev/serial/by-id/usb-0658_0200-if00 + +# # Path to your Z-Wave / Zigbee device on the host +# additionalVolumes: +# - name: zwave-usb +# hostPath: +# path: /dev/serial/by-id/usb-0658_0200-if00 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: false + postgresqlUsername: home-assistant + postgresqlPassword: home-assistant-pass + postgresqlDatabase: home-assistant + persistence: + enabled: false + # storageClass: "" + +# Enable influxdb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/influxdb +influxdb: + enabled: false + architecture: standalone + database: home_assistant + authEnabled: false + persistence: + enabled: false + # storageClass: "" + # size: 8Gi diff --git a/stable/home-assistant/6.11.1/values.yaml b/stable/home-assistant/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/hyperion-ng/1.9.1/CONFIG.md b/stable/hyperion-ng/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/hyperion-ng/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/hyperion-ng/1.9.1/Chart.lock b/stable/hyperion-ng/1.9.1/Chart.lock new file mode 100644 index 00000000000..28abc8d4753 --- /dev/null +++ b/stable/hyperion-ng/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:59:37.015988132Z" diff --git a/stable/hyperion-ng/1.9.1/Chart.yaml b/stable/hyperion-ng/1.9.1/Chart.yaml new file mode 100644 index 00000000000..238e5357a5f --- /dev/null +++ b/stable/hyperion-ng/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Hyperion is an opensource Bias or Ambient Lighting implementation +home: https://github.com/truechartsapps/tree/master/charts/incubator/hyperion-ng +icon: https://avatars.githubusercontent.com/u/17778452?s=200&v=4 +keywords: +- hyperion-ng +- hyperion +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: hyperion-ng +sources: +- https://github.com/hyperion-project/hyperion.ng +- https://hub.docker.com/r/sirfragalot/hyperion.ng +version: 1.9.1 diff --git a/stable/hyperion-ng/1.9.1/README.md b/stable/hyperion-ng/1.9.1/README.md new file mode 100644 index 00000000000..0ef7e35ae98 --- /dev/null +++ b/stable/hyperion-ng/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Hyperion is an opensource Bias or Ambient Lighting implementation + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/hyperion-ng/1.9.1/app-readme.md b/stable/hyperion-ng/1.9.1/app-readme.md new file mode 100644 index 00000000000..f2e71517e2c --- /dev/null +++ b/stable/hyperion-ng/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Hyperion is an opensource Bias or Ambient Lighting implementation + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Hyperion is an opensource Bias or Ambient Lighting implementation diff --git a/stable/hyperion-ng/1.9.1/charts/common-6.12.1.tgz b/stable/hyperion-ng/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/hyperion-ng/1.9.1/ix_values.yaml b/stable/hyperion-ng/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..5f7832aeb94 --- /dev/null +++ b/stable/hyperion-ng/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: sirfragalot/hyperion.ng + pullPolicy: IfNotPresent + tag: 2.0.0-alpha.9-x86_64 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/hyperion-ng/1.9.1/questions.yaml b/stable/hyperion-ng/1.9.1/questions.yaml new file mode 100644 index 00000000000..081df7d0a0a --- /dev/null +++ b/stable/hyperion-ng/1.9.1/questions.yaml @@ -0,0 +1,1407 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36064 + - variable: jsonservice + label: "jsonservice Service" + description: "The jsonservice service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: jsonservice + label: "jsonservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19444 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19444 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36096 + - variable: protobufservice + label: "protobufservice Service" + description: "The protobufservice service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: protobufservice + label: "protobufservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19445 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19445 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36097 + - variable: boblightservice + label: "boblightservice Service" + description: "The boblightservice service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: boblightservice + label: "boblightservice Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 19333 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 19333 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36098 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.hyperion" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/hyperion-ng/1.9.1/templates/common.yaml b/stable/hyperion-ng/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/hyperion-ng/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/hyperion-ng/1.9.1/test_values.yaml b/stable/hyperion-ng/1.9.1/test_values.yaml new file mode 100644 index 00000000000..1961e40e8ef --- /dev/null +++ b/stable/hyperion-ng/1.9.1/test_values.yaml @@ -0,0 +1,56 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: sirfragalot/hyperion.ng + # -- image tag + tag: 2.0.0-alpha.9-x86_64 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-airsonic#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8090 + jsonservice: + enabled: true + port: 19444 + protocol: TCP + targetPort: 19444 + protobufservice: + enabled: true + port: 19445 + protocol: TCP + targetPort: 19445 + boblightservice: + enabled: true + port: 19333 + protocol: TCP + targetPort: 19333 + + +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.hyperion diff --git a/stable/hyperion-ng/1.9.1/values.yaml b/stable/hyperion-ng/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jackett/6.11.1/CONFIG.md b/stable/jackett/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/jackett/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/jackett/6.11.1/Chart.lock b/stable/jackett/6.11.1/Chart.lock new file mode 100644 index 00000000000..168d4a8132f --- /dev/null +++ b/stable/jackett/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:41.858836908Z" diff --git a/stable/jackett/6.11.1/Chart.yaml b/stable/jackett/6.11.1/Chart.yaml new file mode 100644 index 00000000000..a49e452bc94 --- /dev/null +++ b/stable/jackett/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/jackett +icon: https://truecharts.org/_static/img/jackett-icon.png +keywords: +- jackett +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jackett +sources: +- https://github.com/Jackett/Jackett +type: application +version: 6.11.1 diff --git a/stable/jackett/6.11.1/README.md b/stable/jackett/6.11.1/README.md new file mode 100644 index 00000000000..7f7354c472d --- /dev/null +++ b/stable/jackett/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jackett/6.11.1/app-readme.md b/stable/jackett/6.11.1/app-readme.md new file mode 100644 index 00000000000..98549f0fc93 --- /dev/null +++ b/stable/jackett/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +API Support for your favorite torrent trackers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +API Support for your favorite torrent trackers. diff --git a/stable/jackett/6.11.1/charts/common-6.12.1.tgz b/stable/jackett/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/jackett/6.11.1/ix_values.yaml b/stable/jackett/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..2a6bfe1ed34 --- /dev/null +++ b/stable/jackett/6.11.1/ix_values.yaml @@ -0,0 +1,25 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.616 + +probes: + liveness: + path: "/UI/Login" + + readiness: + path: "/UI/Login" + + startup: + path: "/UI/Login" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jackett/6.11.1/questions.yaml b/stable/jackett/6.11.1/questions.yaml new file mode 100644 index 00000000000..5a1749ecb57 --- /dev/null +++ b/stable/jackett/6.11.1/questions.yaml @@ -0,0 +1,1224 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9117 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36009 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplementalGroups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplementalGroup" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "Resource Limits" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/jackett/6.11.1/templates/common.yaml b/stable/jackett/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jackett/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jackett/6.11.1/test_values.yaml b/stable/jackett/6.11.1/test_values.yaml new file mode 100644 index 00000000000..e257e17bd2f --- /dev/null +++ b/stable/jackett/6.11.1/test_values.yaml @@ -0,0 +1,41 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/k8s-at-home/jackett + pullPolicy: IfNotPresent + tag: v0.18.616 + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 9117 + +probes: + liveness: + path: "/UI/Login" + + readiness: + path: "/UI/Login" + + startup: + path: "/UI/Login" + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/jackett/6.11.1/values.yaml b/stable/jackett/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jellyfin/6.11.1/CONFIG.md b/stable/jellyfin/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/jellyfin/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/jellyfin/6.11.1/Chart.lock b/stable/jellyfin/6.11.1/Chart.lock new file mode 100644 index 00000000000..b25b74ab974 --- /dev/null +++ b/stable/jellyfin/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:46.724881263Z" diff --git a/stable/jellyfin/6.11.1/Chart.yaml b/stable/jellyfin/6.11.1/Chart.yaml new file mode 100644 index 00000000000..367926267f6 --- /dev/null +++ b/stable/jellyfin/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Jellyfin is a Free Software Media System +home: https://github.com/truecharts/apps/tree/master/charts/stable/jellyfin +icon: https://truecharts.org/_static/img/jellyfin-icon.png +keywords: +- jellyfin +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: jellyfin +sources: +- https://github.com/jellyfin/jellyfin +type: application +version: 6.11.1 diff --git a/stable/jellyfin/6.11.1/README.md b/stable/jellyfin/6.11.1/README.md new file mode 100644 index 00000000000..36e3f20c933 --- /dev/null +++ b/stable/jellyfin/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Jellyfin is a Free Software Media System + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jellyfin/6.11.1/app-readme.md b/stable/jellyfin/6.11.1/app-readme.md new file mode 100644 index 00000000000..ca419ffecaa --- /dev/null +++ b/stable/jellyfin/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Jellyfin is a Free Software Media System + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Jellyfin is a Free Software Media System diff --git a/stable/jellyfin/6.11.1/charts/common-6.12.1.tgz b/stable/jellyfin/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/jellyfin/6.11.1/ix_values.yaml b/stable/jellyfin/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..6d15d6ab62b --- /dev/null +++ b/stable/jellyfin/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.7.6 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jellyfin/6.11.1/questions.yaml b/stable/jellyfin/6.11.1/questions.yaml new file mode 100644 index 00000000000..1a88277843b --- /dev/null +++ b/stable/jellyfin/6.11.1/questions.yaml @@ -0,0 +1,1113 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36010 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/jellyfin/6.11.1/templates/common.yaml b/stable/jellyfin/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/jellyfin/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/jellyfin/6.11.1/test_values.yaml b/stable/jellyfin/6.11.1/test_values.yaml new file mode 100644 index 00000000000..3a7595bf57a --- /dev/null +++ b/stable/jellyfin/6.11.1/test_values.yaml @@ -0,0 +1,31 @@ +# Default values for jellyfin. + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.7.6 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/jellyfin/6.11.1/values.yaml b/stable/jellyfin/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/kms/6.11.1/CONFIG.md b/stable/kms/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/kms/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/kms/6.11.1/Chart.lock b/stable/kms/6.11.1/Chart.lock new file mode 100644 index 00000000000..4724eae44fc --- /dev/null +++ b/stable/kms/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T20:59:51.71994324Z" diff --git a/stable/kms/6.11.1/Chart.yaml b/stable/kms/6.11.1/Chart.yaml new file mode 100644 index 00000000000..af36e993fa2 --- /dev/null +++ b/stable/kms/6.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: minimal +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Private Windows Activation Server for development and testing +home: https://github.com/truecharts/apps/tree/master/charts/stable/kms +icon: https://truecharts.org/_static/img/kms-icon.jpg +keywords: +- kms +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: kms +sources: +- https://github.com/SystemRage/py-kms +type: application +version: 6.11.1 diff --git a/stable/kms/6.11.1/README.md b/stable/kms/6.11.1/README.md new file mode 100644 index 00000000000..cb53b6737af --- /dev/null +++ b/stable/kms/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: minimal](https://img.shields.io/badge/AppVersion-minimal-informational?style=flat-square) + +Private Windows Activation Server for development and testing + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/kms/6.11.1/app-readme.md b/stable/kms/6.11.1/app-readme.md new file mode 100644 index 00000000000..0c9616d9471 --- /dev/null +++ b/stable/kms/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Private Windows Activation Server for development and testing + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Private Windows Activation Server for development and testing diff --git a/stable/kms/6.11.1/charts/common-6.12.1.tgz b/stable/kms/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/kms/6.11.1/ix_values.yaml b/stable/kms/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..05f3f76e0a3 --- /dev/null +++ b/stable/kms/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/kms/6.11.1/questions.yaml b/stable/kms/6.11.1/questions.yaml new file mode 100644 index 00000000000..cc12b6704d9 --- /dev/null +++ b/stable/kms/6.11.1/questions.yaml @@ -0,0 +1,833 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1688 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36011 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/kms/6.11.1/templates/common.yaml b/stable/kms/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/kms/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/kms/6.11.1/test_values.yaml b/stable/kms/6.11.1/test_values.yaml new file mode 100644 index 00000000000..8aabb450d99 --- /dev/null +++ b/stable/kms/6.11.1/test_values.yaml @@ -0,0 +1,16 @@ +# Default values for KMS. + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + +strategy: + type: Recreate + +service: + main: + ports: + main: + protocol: TCP + port: 1688 diff --git a/stable/kms/6.11.1/values.yaml b/stable/kms/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/komga/1.9.1/CONFIG.md b/stable/komga/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/komga/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/komga/1.9.1/Chart.lock b/stable/komga/1.9.1/Chart.lock new file mode 100644 index 00000000000..55d4a9eb363 --- /dev/null +++ b/stable/komga/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T20:59:56.704047397Z" diff --git a/stable/komga/1.9.1/Chart.yaml b/stable/komga/1.9.1/Chart.yaml new file mode 100644 index 00000000000..b2a710f21bf --- /dev/null +++ b/stable/komga/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: A comics/mangas server to serve/stream pages via API +home: https://github.com/truechartsapps/tree/master/charts/incubator/komga +icon: https://komga.org/assets/media/logo.svg +keywords: +- komga +- comics +- mangas +- server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: komga +sources: +- https://komga.org/ +- https://github.com/gotson/komga +version: 1.9.1 diff --git a/stable/komga/1.9.1/README.md b/stable/komga/1.9.1/README.md new file mode 100644 index 00000000000..3b4914cc80c --- /dev/null +++ b/stable/komga/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A comics/mangas server to serve/stream pages via API + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/komga/1.9.1/app-readme.md b/stable/komga/1.9.1/app-readme.md new file mode 100644 index 00000000000..395a4cdd334 --- /dev/null +++ b/stable/komga/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +A comics/mangas server to serve/stream pages via API + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A comics/mangas server to serve/stream pages via API diff --git a/stable/komga/1.9.1/charts/common-6.12.1.tgz b/stable/komga/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/komga/1.9.1/ix_values.yaml b/stable/komga/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..869a5e7b1c1 --- /dev/null +++ b/stable/komga/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: gotson/komga + pullPolicy: IfNotPresent + tag: 0.119.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/komga/1.9.1/questions.yaml b/stable/komga/1.9.1/questions.yaml new file mode 100644 index 00000000000..5696072269d --- /dev/null +++ b/stable/komga/1.9.1/questions.yaml @@ -0,0 +1,1214 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36065 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/komga/1.9.1/templates/common.yaml b/stable/komga/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/komga/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/komga/1.9.1/test_values.yaml b/stable/komga/1.9.1/test_values.yaml new file mode 100644 index 00000000000..80bccaded7d --- /dev/null +++ b/stable/komga/1.9.1/test_values.yaml @@ -0,0 +1,40 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: gotson/komga + # -- image tag + tag: 0.119.1 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [komga documentation](https://komga.org/installation/configuration.html#optional-configuration). +# @default -- See below +env: {} + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + data: + enabled: false + mountPath: /data diff --git a/stable/komga/1.9.1/values.yaml b/stable/komga/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lazylibrarian/6.11.1/CONFIG.md b/stable/lazylibrarian/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lazylibrarian/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lazylibrarian/6.11.1/Chart.lock b/stable/lazylibrarian/6.11.1/Chart.lock new file mode 100644 index 00000000000..767e0ba7916 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:01.582214932Z" diff --git a/stable/lazylibrarian/6.11.1/Chart.yaml b/stable/lazylibrarian/6.11.1/Chart.yaml new file mode 100644 index 00000000000..fd47e57ba1c --- /dev/null +++ b/stable/lazylibrarian/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Get all your books, like series with Sonarr... +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lazylibrarian +icon: https://lazylibrarian.gitlab.io/logo.svg +keywords: +- lazylibrarian +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lazylibrarian +sources: +- https://gitlab.com/LazyLibrarian/LazyLibrarian.git +- https://lazylibrarian.gitlab.io +type: application +version: 6.11.1 diff --git a/stable/lazylibrarian/6.11.1/README.md b/stable/lazylibrarian/6.11.1/README.md new file mode 100644 index 00000000000..0e67997b791 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Get all your books, like series with Sonarr... + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lazylibrarian/6.11.1/app-readme.md b/stable/lazylibrarian/6.11.1/app-readme.md new file mode 100644 index 00000000000..cf9ff407111 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Get all your books, like series with Sonarr... + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Get all your books, like series with Sonarr... diff --git a/stable/lazylibrarian/6.11.1/charts/common-6.12.1.tgz b/stable/lazylibrarian/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/lazylibrarian/6.11.1/ix_values.yaml b/stable/lazylibrarian/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..553b98dbe3e --- /dev/null +++ b/stable/lazylibrarian/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lazylibrarian/6.11.1/questions.yaml b/stable/lazylibrarian/6.11.1/questions.yaml new file mode 100644 index 00000000000..23bfaf81e95 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5299 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/lazylibrarian/6.11.1/templates/common.yaml b/stable/lazylibrarian/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lazylibrarian/6.11.1/test_values.yaml b/stable/lazylibrarian/6.11.1/test_values.yaml new file mode 100644 index 00000000000..ce1abe3ab65 --- /dev/null +++ b/stable/lazylibrarian/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for LazyLibrarian. + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5299 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lazylibrarian/6.11.1/values.yaml b/stable/lazylibrarian/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/librespeed/1.9.1/CONFIG.md b/stable/librespeed/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/librespeed/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/librespeed/1.9.1/Chart.lock b/stable/librespeed/1.9.1/Chart.lock new file mode 100644 index 00000000000..04d800c7af4 --- /dev/null +++ b/stable/librespeed/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:00:06.509110051Z" diff --git a/stable/librespeed/1.9.1/Chart.yaml b/stable/librespeed/1.9.1/Chart.yaml new file mode 100644 index 00000000000..f55f76f9476 --- /dev/null +++ b/stable/librespeed/1.9.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Librespeed is a HTML5 webpage to test upload and download speeds +home: https://github.com/truechartsapps/tree/master/charts/incubator/librespeed +icon: https://github.com/librespeed/speedtest/blob/master/.logo/icon_huge.png?raw=true +keywords: +- librespeed +- speedtest +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: librespeed +sources: +- https://github.com/librespeed/speedtest +- https://hub.docker.com/r/linuxserver/librespeed +- https://github.com/truechartsapps/tree/master/charts/librespeed +version: 1.9.1 diff --git a/stable/librespeed/1.9.1/README.md b/stable/librespeed/1.9.1/README.md new file mode 100644 index 00000000000..261fe7b4d86 --- /dev/null +++ b/stable/librespeed/1.9.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Librespeed is a HTML5 webpage to test upload and download speeds + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/librespeed/1.9.1/app-readme.md b/stable/librespeed/1.9.1/app-readme.md new file mode 100644 index 00000000000..b64fc8f9897 --- /dev/null +++ b/stable/librespeed/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Librespeed is a HTML5 webpage to test upload and download speeds + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Librespeed is a HTML5 webpage to test upload and download speeds diff --git a/stable/librespeed/1.9.1/charts/common-6.12.1.tgz b/stable/librespeed/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/librespeed/1.9.1/ci/ct-values.yaml b/stable/librespeed/1.9.1/ci/ct-values.yaml new file mode 100644 index 00000000000..a4c249088b9 --- /dev/null +++ b/stable/librespeed/1.9.1/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + PASSWORD: "ChangeMe" diff --git a/stable/librespeed/1.9.1/ix_values.yaml b/stable/librespeed/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..1dfd85ef4db --- /dev/null +++ b/stable/librespeed/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/librespeed + pullPolicy: IfNotPresent + tag: version-5.2.4 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/librespeed/1.9.1/questions.yaml b/stable/librespeed/1.9.1/questions.yaml new file mode 100644 index 00000000000..cbad9bdfc7e --- /dev/null +++ b/stable/librespeed/1.9.1/questions.yaml @@ -0,0 +1,1067 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36066 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/librespeed/1.9.1/templates/common.yaml b/stable/librespeed/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/librespeed/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/librespeed/1.9.1/test_values.yaml b/stable/librespeed/1.9.1/test_values.yaml new file mode 100644 index 00000000000..e9ffc075c7a --- /dev/null +++ b/stable/librespeed/1.9.1/test_values.yaml @@ -0,0 +1,49 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: linuxserver/librespeed + # -- image tag + tag: version-5.2.4 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://hub.docker.com/r/linuxserver/librespeed) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # PASSWORD: + # CUSTOM_RESULTS: + # DB_TYPE: + # DB_NAME: + # DB_HOSTNAME: + # DB_USERNAME: + # DB_PASSWORD: + # DB_PORT: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/librespeed/1.9.1/values.yaml b/stable/librespeed/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lidarr/6.11.1/CONFIG.md b/stable/lidarr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lidarr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lidarr/6.11.1/Chart.lock b/stable/lidarr/6.11.1/Chart.lock new file mode 100644 index 00000000000..22240e9193d --- /dev/null +++ b/stable/lidarr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:11.409784104Z" diff --git a/stable/lidarr/6.11.1/Chart.yaml b/stable/lidarr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..80ad5d1460e --- /dev/null +++ b/stable/lidarr/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Looks and smells like Sonarr but made for music +home: https://github.com/truecharts/apps/tree/master/charts/stable/lidarr +icon: https://avatars3.githubusercontent.com/u/28475832?s=400&v=4 +keywords: +- lidarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: lidarr +sources: +- https://github.com/Lidarr/Lidarr +type: application +version: 6.11.1 diff --git a/stable/lidarr/6.11.1/README.md b/stable/lidarr/6.11.1/README.md new file mode 100644 index 00000000000..2e714955c28 --- /dev/null +++ b/stable/lidarr/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Looks and smells like Sonarr but made for music + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lidarr/6.11.1/app-readme.md b/stable/lidarr/6.11.1/app-readme.md new file mode 100644 index 00000000000..d4875aa4c25 --- /dev/null +++ b/stable/lidarr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Looks and smells like Sonarr but made for music + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Looks and smells like Sonarr but made for music diff --git a/stable/lidarr/6.11.1/charts/common-6.12.1.tgz b/stable/lidarr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/lidarr/6.11.1/ix_values.yaml b/stable/lidarr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..b8d29de2788 --- /dev/null +++ b/stable/lidarr/6.11.1/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/lidarr + pullPolicy: IfNotPresent + tag: v1.0.0.2255 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lidarr/6.11.1/questions.yaml b/stable/lidarr/6.11.1/questions.yaml new file mode 100644 index 00000000000..4f51423914a --- /dev/null +++ b/stable/lidarr/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8686 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36012 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/lidarr/6.11.1/templates/common.yaml b/stable/lidarr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lidarr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lidarr/6.11.1/test_values.yaml b/stable/lidarr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..d92c801d3be --- /dev/null +++ b/stable/lidarr/6.11.1/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Lidarr. + +image: + repository: ghcr.io/k8s-at-home/lidarr + pullPolicy: IfNotPresent + tag: v1.0.0.2255 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8686 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lidarr/6.11.1/values.yaml b/stable/lidarr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/littlelink/1.5.1/CONFIG.md b/stable/littlelink/1.5.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/littlelink/1.5.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/littlelink/1.5.1/Chart.lock b/stable/littlelink/1.5.1/Chart.lock new file mode 100644 index 00000000000..4bb2ab64525 --- /dev/null +++ b/stable/littlelink/1.5.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:16.339338108Z" diff --git a/stable/littlelink/1.5.1/Chart.yaml b/stable/littlelink/1.5.1/Chart.yaml new file mode 100644 index 00000000000..03119bd6884 --- /dev/null +++ b/stable/littlelink/1.5.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Easy platform to combine all your social links +home: https://github.com/truecharts/apps/tree/master/charts/stable/littlelink +icon: https://littlelink.io/images/avatar@2x.png +keywords: +- littlelink +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: littlelink +sources: +- https://github.com/techno-tim/littlelink-server +- https://github.com/sethcottle/littlelink +type: application +version: 1.5.1 diff --git a/stable/littlelink/1.5.1/README.md b/stable/littlelink/1.5.1/README.md new file mode 100644 index 00000000000..691ad252423 --- /dev/null +++ b/stable/littlelink/1.5.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.2.7](https://img.shields.io/badge/Version-1.2.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Easy platform to combine all your social links + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/littlelink/1.5.1/app-readme.md b/stable/littlelink/1.5.1/app-readme.md new file mode 100644 index 00000000000..ca20fba99c5 --- /dev/null +++ b/stable/littlelink/1.5.1/app-readme.md @@ -0,0 +1,4 @@ +Easy platform to combine all your social links + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Easy platform to combine all your social links diff --git a/stable/littlelink/1.5.1/charts/common-6.12.1.tgz b/stable/littlelink/1.5.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/littlelink/1.5.1/ix_values.yaml b/stable/littlelink/1.5.1/ix_values.yaml new file mode 100644 index 00000000000..98df1b652a5 --- /dev/null +++ b/stable/littlelink/1.5.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest + +envFrom: + - configMapRef: + name: littlelinkconfig + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/littlelink/1.5.1/questions.yaml b/stable/littlelink/1.5.1/questions.yaml new file mode 100644 index 00000000000..7f9dc172c84 --- /dev/null +++ b/stable/littlelink/1.5.1/questions.yaml @@ -0,0 +1,1139 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: littlelink + label: "" + group: "App Configuration" + schema: + type: dict + attrs: + - variable: meta_title + label: "meta title" + schema: + type: string + default: "" + - variable: meta_description + label: "meta description" + schema: + type: string + default: "" + - variable: meta_author + label: "meta_author" + schema: + type: string + default: "" + - variable: theme + label: "theme" + schema: + type: string + default: "" + - variable: favicon_url + label: "favicon_url" + schema: + type: string + default: "" + - variable: avatar_url + label: "avatar_url" + schema: + type: string + default: "" + - variable: avatar_2x_url + label: "avatar_2x_url" + schema: + type: string + default: "" + - variable: avatar_alt + label: "avatar_alt" + schema: + type: string + default: "" + - variable: name + label: "name" + schema: + type: string + default: "" + - variable: bio + label: "bio" + schema: + type: string + default: "" + - variable: github + label: "github" + schema: + type: string + default: "" + - variable: twitter + label: "twitter" + schema: + type: string + default: "" + - variable: instagram + label: "instagram" + schema: + type: string + default: "" + - variable: youtube + label: "youtube" + schema: + type: string + default: "" + - variable: twitch + label: "twitch" + schema: + type: string + default: "" + - variable: discord + label: "discord" + schema: + type: string + default: "" + - variable: tiktok + label: "tiktok" + schema: + type: string + default: "" + - variable: kit + label: "kit" + schema: + type: string + default: "" + - variable: facebook + label: "facebook" + schema: + type: string + default: "" + - variable: facebook_messenger + label: "facebook_messenger" + schema: + type: string + default: "" + - variable: linked_in + label: "linked_in" + schema: + type: string + default: "" + - variable: product_hunt + label: "product_hunt" + schema: + type: string + default: "" + - variable: snapchat + label: "snapchat" + schema: + type: string + default: "" + - variable: spotify + label: "spotify" + schema: + type: string + default: "" + - variable: reddit + label: "reddit" + schema: + type: string + default: "" + - variable: medium + label: "medium" + schema: + type: string + default: "" + - variable: pinterest + label: "pinterest" + schema: + type: string + default: "" + - variable: email + label: "email" + schema: + type: string + default: "" + - variable: email_alt + label: "email_alt" + schema: + type: string + default: "" + - variable: sound_cloud + label: "sound_cloud" + schema: + type: string + default: "" + - variable: figma + label: "figma" + schema: + type: string + default: "" + - variable: telegram + label: "telegram" + schema: + type: string + default: "" + - variable: tumblr + label: "tumblr" + schema: + type: string + default: "" + - variable: steam + label: "steam" + schema: + type: string + default: "" + - variable: vimeo + label: "vimeo" + schema: + type: string + default: "" + - variable: wordpress + label: "wordpressp" + schema: + type: string + default: "" + - variable: goodreads + label: "goodreads" + schema: + type: string + default: "" + - variable: skoob + label: "skoob" + schema: + type: string + default: "" + - variable: footer + label: "footer" + schema: + type: string + default: "" + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36092 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/littlelink/1.5.1/templates/_configmap.tpl b/stable/littlelink/1.5.1/templates/_configmap.tpl new file mode 100644 index 00000000000..e04a16fd9ab --- /dev/null +++ b/stable/littlelink/1.5.1/templates/_configmap.tpl @@ -0,0 +1,127 @@ +{{/* Define the configmap */}} +{{- define "littlelink.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: littlelinkconfig +data: + {{- if .Values.littlelink.meta_title }} + META_TILE: {{ .Values.littlelink.meta_title | quote }} + {{- end }} + {{- if .Values.littlelink.meta_description }} + META_DESCRIPTION: {{ .Values.littlelink.meta_description | quote }} + {{- end }} + {{- if .Values.littlelink.meta_author }} + META_AUTHOR: {{ .Values.littlelink.meta_author | quote }} + {{- end }} + {{- if .Values.littlelink.theme }} + THEME: {{ .Values.littlelink.theme | quote }} + {{- end }} + {{- if .Values.littlelink.favicon_url }} + FAVICON_URL: {{ .Values.littlelink.favicon_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_url }} + AVATAR_URL: {{ .Values.littlelink.avatar_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_2x_url }} + AVATAR_2X_URL: {{ .Values.littlelink.avatar_2x_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_alt }} + AVATAR_ALT: {{ .Values.littlelink.avatar_alt | quote }} + {{- end }} + {{- if .Values.littlelink.name }} + NAME: {{ .Values.littlelink.name | quote }} + {{- end }} + {{- if .Values.littlelink.bio }} + BIO: {{ .Values.littlelink.bio | quote }} + {{- end }} + {{- if .Values.littlelink.github }} + GITHUB: {{ .Values.littlelink.github | quote }} + {{- end }} + {{- if .Values.littlelink.twitter }} + TWITTER: {{ .Values.littlelink.twitter | quote }} + {{- end }} + {{- if .Values.littlelink.instagram }} + INSTAGRAM: {{ .Values.littlelink.instagram | quote }} + {{- end }} + {{- if .Values.littlelink.youtube }} + YOUTUBE: {{ .Values.littlelink.youtube | quote }} + {{- end }} + {{- if .Values.littlelink.twitch }} + TWITCH: {{ .Values.littlelink.twitch | quote }} + {{- end }} + {{- if .Values.littlelink.discord }} + DISCORD: {{ .Values.littlelink.discord | quote }} + {{- end }} + {{- if .Values.littlelink.tiktok }} + TIKTOK: {{ .Values.littlelink.tiktok | quote }} + {{- end }} + {{- if .Values.littlelink.kit }} + KIT: {{ .Values.littlelink.kit | quote }} + {{- end }} + {{- if .Values.littlelink.facebook }} + FACEBOOK: {{ .Values.littlelink.facebook | quote }} + {{- end }} + {{- if .Values.littlelink.facebook_messenger }} + FACEBOOK_MESSENGER: {{ .Values.littlelink.facebook_messenger | quote }} + {{- end }} + {{- if .Values.littlelink.linked_in }} + LINKED_IN: {{ .Values.littlelink.linked_in | quote }} + {{- end }} + {{- if .Values.littlelink.product_hunt }} + PRODUCT_HUNT: {{ .Values.littlelink.product_hunt | quote }} + {{- end }} + {{- if .Values.littlelink.snapchat }} + SNAPCHAT: {{ .Values.littlelink.snapchat | quote }} + {{- end }} + {{- if .Values.littlelink.spotify }} + SPOTIFY: {{ .Values.littlelink.spotify | quote }} + {{- end }} + {{- if .Values.littlelink.reddit }} + REDDIT: {{ .Values.littlelink.reddit | quote }} + {{- end }} + {{- if .Values.littlelink.medium }} + MEDIUM: {{ .Values.littlelink.medium | quote }} + {{- end }} + {{- if .Values.littlelink.pinterest }} + PINTEREST: {{ .Values.littlelink.pinterest | quote }} + {{- end }} + {{- if .Values.littlelink.email }} + EMAIL: {{ .Values.littlelink.email | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt }} + EMAIL_ALT: {{ .Values.littlelink.email_alt | quote }} + {{- end }} + {{- if .Values.littlelink.sound_cloud }} + SOUND_CLOUD: {{ .Values.littlelink.sound_cloud | quote }} + {{- end }} + {{- if .Values.littlelink.figma }} + FIGMA: {{ .Values.littlelink.figma | quote }} + {{- end }} + {{- if .Values.littlelink.telegram }} + TELEGRAM: {{ .Values.littlelink.telegram | quote }} + {{- end }} + {{- if .Values.littlelink.tumblr }} + TUMBLR: {{ .Values.littlelink.tumblr | quote }} + {{- end }} + {{- if .Values.littlelink.steam }} + STEAM: {{ .Values.littlelink.steam | quote }} + {{- end }} + {{- if .Values.littlelink.vimeo }} + VIMEO: {{ .Values.littlelink.vimeo | quote }} + {{- end }} + {{- if .Values.littlelink.wordpress }} + WORDPRESS: {{ .Values.littlelink.wordpress | quote }} + {{- end }} + {{- if .Values.littlelink.goodreads }} + GOODREADS: {{ .Values.littlelink.goodreads | quote }} + {{- end }} + {{- if .Values.littlelink.skoob }} + SKOOB: {{ .Values.littlelink.skoob | quote }} + {{- end }} + {{- if .Values.littlelink.footer }} + FOOTER: {{ .Values.littlelink.footer | quote }} + {{- end }} + +{{- end -}} diff --git a/stable/littlelink/1.5.1/templates/common.yaml b/stable/littlelink/1.5.1/templates/common.yaml new file mode 100644 index 00000000000..d5c310d4859 --- /dev/null +++ b/stable/littlelink/1.5.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 configmap for littlelink */}} +{{- include "littlelink.configmap" . }} diff --git a/stable/littlelink/1.5.1/test_values.yaml b/stable/littlelink/1.5.1/test_values.yaml new file mode 100644 index 00000000000..3d5f3cac7a9 --- /dev/null +++ b/stable/littlelink/1.5.1/test_values.yaml @@ -0,0 +1,42 @@ +# Default values for Jackett. + +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 3000 + +envFrom: + - configMapRef: + name: littlelinkconfig + +littlelink: + meta_title: "techno tim" + meta_description: "techno tim link page" + meta_author: "techno tim" + theme: "dark" + favicon_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_2x_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_400x400.jpg" + avatar_alt: "techno tim profile pic" + name: "technotim" + bio: "hey! just a place where you can connect with me!" + github: "https://github.com/timothystewart6" + twitter: "https://twitter.com/technotimlive" + instagram: "https://www.instagram.com/techno.tim" + youtube: "https://www.youtube.com/channel/ucok-ghyjcwznj3br4oxwh0a" + twitch: "https://www.twitch.tv/technotim/" + discord: "https://discord.gg/djkexrj" + tiktok: "https://www.tiktok.com/@technotim" + kit: "https://kit.co/technotim" + footer: "thanks for stopping by!" diff --git a/stable/littlelink/1.5.1/values.yaml b/stable/littlelink/1.5.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/lychee/6.11.1/CONFIG.md b/stable/lychee/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/lychee/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/lychee/6.11.1/Chart.lock b/stable/lychee/6.11.1/Chart.lock new file mode 100644 index 00000000000..63330e55de0 --- /dev/null +++ b/stable/lychee/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:21.193972312Z" diff --git a/stable/lychee/6.11.1/Chart.yaml b/stable/lychee/6.11.1/Chart.yaml new file mode 100644 index 00000000000..f5fd52d7044 --- /dev/null +++ b/stable/lychee/6.11.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Lychee is a free photo-management tool, which runs on your server or + web-space +home: https://github.com/truecharts/apps/tree/master/charts/incubator/lychee +icon: https://github.com/LycheeOrg/Lychee/blob/master/Banner.png?raw=true +keywords: +- lychee +- photo +- pictures +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: lychee +sources: +- https://github.com/LycheeOrg/Lychee +- https://hub.docker.com/r/lycheeorg/lychee +type: application +version: 6.11.1 diff --git a/stable/lychee/6.11.1/README.md b/stable/lychee/6.11.1/README.md new file mode 100644 index 00000000000..24d0f7537eb --- /dev/null +++ b/stable/lychee/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Lychee is a free photo-management tool, which runs on your server or web-space + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lychee/6.11.1/app-readme.md b/stable/lychee/6.11.1/app-readme.md new file mode 100644 index 00000000000..6ae88fface0 --- /dev/null +++ b/stable/lychee/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Lychee is a free photo-management tool, which runs on your server or web-space + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Lychee is a free photo-management tool, which runs on your server or diff --git a/stable/lychee/6.11.1/charts/common-6.12.1.tgz b/stable/lychee/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/lychee/6.11.1/ix_values.yaml b/stable/lychee/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..0976cb09641 --- /dev/null +++ b/stable/lychee/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.4 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lychee/6.11.1/questions.yaml b/stable/lychee/6.11.1/questions.yaml new file mode 100644 index 00000000000..2db09420873 --- /dev/null +++ b/stable/lychee/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36034 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/lychee/6.11.1/templates/common.yaml b/stable/lychee/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/lychee/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/lychee/6.11.1/test_values.yaml b/stable/lychee/6.11.1/test_values.yaml new file mode 100644 index 00000000000..3ff0193ab47 --- /dev/null +++ b/stable/lychee/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Lychee. + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.3.4 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # PHP_TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/lychee/6.11.1/values.yaml b/stable/lychee/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mealie/1.11.1/CONFIG.md b/stable/mealie/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mealie/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mealie/1.11.1/Chart.lock b/stable/mealie/1.11.1/Chart.lock new file mode 100644 index 00000000000..f9a8f14b66f --- /dev/null +++ b/stable/mealie/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:26.060351177Z" diff --git a/stable/mealie/1.11.1/Chart.yaml b/stable/mealie/1.11.1/Chart.yaml new file mode 100644 index 00000000000..12bee6f869a --- /dev/null +++ b/stable/mealie/1.11.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Mealie is a self hosted recipe manager and meal planner with a RestAPI + backend and a reactive frontend application built in Vue for a pleasant user experience + for the whole family. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mealie +icon: https://raw.githubusercontent.com/hay-kot/mealie/gh-pages/assets/img/favicon.png +keywords: +- grocy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: mealie +sources: +- https://github.com/hay-kot/mealie +version: 1.11.1 diff --git a/stable/mealie/1.11.1/README.md b/stable/mealie/1.11.1/README.md new file mode 100644 index 00000000000..541c904d468 --- /dev/null +++ b/stable/mealie/1.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mealie/1.11.1/app-readme.md b/stable/mealie/1.11.1/app-readme.md new file mode 100644 index 00000000000..958559e47fb --- /dev/null +++ b/stable/mealie/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Mealie is a self hosted recipe manager and meal planner with a RestAPI diff --git a/stable/mealie/1.11.1/charts/common-6.12.1.tgz b/stable/mealie/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/mealie/1.11.1/ix_values.yaml b/stable/mealie/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..080d100b57f --- /dev/null +++ b/stable/mealie/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: hkotel/mealie + # -- image tag + tag: v0.5.2 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mealie/1.11.1/questions.yaml b/stable/mealie/1.11.1/questions.yaml new file mode 100644 index 00000000000..dcc85575113 --- /dev/null +++ b/stable/mealie/1.11.1/questions.yaml @@ -0,0 +1,1062 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: DB_TYPE + label: "DB_TYPE" + schema: + type: string + default: "sqlite" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36067 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/data/" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/mealie/1.11.1/templates/common.yaml b/stable/mealie/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/mealie/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/mealie/1.11.1/test_values.yaml b/stable/mealie/1.11.1/test_values.yaml new file mode 100644 index 00000000000..712d5724b72 --- /dev/null +++ b/stable/mealie/1.11.1/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: hkotel/mealie + # -- image tag + tag: v0.5.2 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://hay-kot.github.io/mealie/getting-started/install/#env-variables) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set the application database type + DB_TYPE: sqlite + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/data/ diff --git a/stable/mealie/1.11.1/values.yaml b/stable/mealie/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mosquitto/1.11.1/CONFIG.md b/stable/mosquitto/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mosquitto/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mosquitto/1.11.1/Chart.lock b/stable/mosquitto/1.11.1/Chart.lock new file mode 100644 index 00000000000..dc3475d7410 --- /dev/null +++ b/stable/mosquitto/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:30.9727327Z" diff --git a/stable/mosquitto/1.11.1/Chart.yaml b/stable/mosquitto/1.11.1/Chart.yaml new file mode 100644 index 00000000000..1b40f4fc730 --- /dev/null +++ b/stable/mosquitto/1.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Eclipse Mosquitto - An open source MQTT broker +home: https://github.com/truecharts/apps/tree/master/charts/incubator/mosquitto +icon: https://projects.eclipse.org/sites/default/files/mosquitto-200px.png +keywords: +- mosquitto +- MQTT +- eclipse-iot +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: mosquitto +sources: +- https://github.com/eclipse/mosquitto +type: application +version: 1.11.1 diff --git a/stable/mosquitto/1.11.1/README.md b/stable/mosquitto/1.11.1/README.md new file mode 100644 index 00000000000..220ce53dd4e --- /dev/null +++ b/stable/mosquitto/1.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Eclipse Mosquitto - An open source MQTT broker + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mosquitto/1.11.1/app-readme.md b/stable/mosquitto/1.11.1/app-readme.md new file mode 100644 index 00000000000..574c102b318 --- /dev/null +++ b/stable/mosquitto/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Eclipse Mosquitto - An open source MQTT broker + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Eclipse Mosquitto - An open source MQTT broker diff --git a/stable/mosquitto/1.11.1/charts/common-6.12.1.tgz b/stable/mosquitto/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/mosquitto/1.11.1/ix_values.yaml b/stable/mosquitto/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..b638fcf296e --- /dev/null +++ b/stable/mosquitto/1.11.1/ix_values.yaml @@ -0,0 +1,18 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: eclipse-mosquitto + # -- image tag + tag: 2.0.11 + # -- image pull policy + pullPolicy: IfNotPresent + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mosquitto/1.11.1/questions.yaml b/stable/mosquitto/1.11.1/questions.yaml new file mode 100644 index 00000000000..03556b9efbc --- /dev/null +++ b/stable/mosquitto/1.11.1/questions.yaml @@ -0,0 +1,1226 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: auth + group: "App Configuration" + label: "Authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + description: "By enabling this, `allow_anonymous` gets set to `false` in the mosquitto config." + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1883 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1883 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36068 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/mosquitto/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: configinc + label: "App config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/mosquitto/configinc" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/mosquitto/1.11.1/templates/common.yaml b/stable/mosquitto/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..15d4d961a1c --- /dev/null +++ b/stable/mosquitto/1.11.1/templates/common.yaml @@ -0,0 +1,17 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Append the configMap volume to the volumes */}} +{{- define "mosquitto.configVolume" -}} +enabled: "true" +mountPath: "/mosquitto/config/mosquitto.conf" +subPath: "mosquitto.conf" +type: "custom" +volumeSpec: + configMap: + name: {{ template "common.names.fullname" . }}-config +{{- end -}} +{{- $_ := set .Values.persistence "mosquitto-config" (include "mosquitto.configVolume" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/mosquitto/1.11.1/templates/configmap.yaml b/stable/mosquitto/1.11.1/templates/configmap.yaml new file mode 100644 index 00000000000..489d68b0ea5 --- /dev/null +++ b/stable/mosquitto/1.11.1/templates/configmap.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + mosquitto.conf: | + listener {{ .Values.service.main.ports.main.port }} + {{- if .Values.auth.enabled }} + allow_anonymous false + {{- else }} + allow_anonymous true + {{- end }} + {{- if .Values.persistence.data.enabled }} + persistence true + persistence_location {{ .Values.persistence.data.mountPath }} + autosave_interval 1800 + {{- end }} + {{- if .Values.persistence.configinc.enabled }} + include_dir {{ .Values.persistence.configinc.mountPath }} + {{- end }} diff --git a/stable/mosquitto/1.11.1/test_values.yaml b/stable/mosquitto/1.11.1/test_values.yaml new file mode 100644 index 00000000000..66920e7f539 --- /dev/null +++ b/stable/mosquitto/1.11.1/test_values.yaml @@ -0,0 +1,43 @@ +# Default values for Jackett. + +image: + # -- image repository + repository: eclipse-mosquitto + # -- image tag + tag: 2.0.11 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + protocol: TCP + enabled: true + port: 1883 + +auth: + # -- By enabling this, `allow_anonymous` gets set to `false` in the mosquitto config. + enabled: false + +persistence: + # -- Configure a persistent volume to place mosquitto data in. + # When enabled, this enables `persistence` and `persistence_location` in the mosquitto config. + # @default -- See values.yaml + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /mosquitto/data + # -- Configure a persistent volume to place *.conf mosquitto-config-files in. + # When enabled, this gets set as `include_dir` in the mosquitto config. + # @default -- See values.yaml + configinc: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /mosquitto/configinc diff --git a/stable/mosquitto/1.11.1/values.yaml b/stable/mosquitto/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/mylar/1.9.1/CONFIG.md b/stable/mylar/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/mylar/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/mylar/1.9.1/Chart.lock b/stable/mylar/1.9.1/Chart.lock new file mode 100644 index 00000000000..48a4e68f694 --- /dev/null +++ b/stable/mylar/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:00:35.88716994Z" diff --git a/stable/mylar/1.9.1/Chart.yaml b/stable/mylar/1.9.1/Chart.yaml new file mode 100644 index 00000000000..1d8997b104c --- /dev/null +++ b/stable/mylar/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Mylar is the automated Comic Book downloader (cbr/cbz) for use with various + download clients. +home: https://github.com/truechartsapps/tree/master/charts/incubator/mylar +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mylar-icon.png +keywords: +- mylar +kubeVersion: '>=1.16.0-0' +maintainers: +- name: truecharts + url: https://patricol.co/ +name: mylar +sources: +- https://github.com/mylar3/mylar3 +- https://github.com/linuxserver/docker-mylar3 +- https://github.com/truechartsapps/tree/master/charts/mylar +version: 1.9.1 diff --git a/stable/mylar/1.9.1/README.md b/stable/mylar/1.9.1/README.md new file mode 100644 index 00000000000..32426f39463 --- /dev/null +++ b/stable/mylar/1.9.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various download clients. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/mylar/1.9.1/app-readme.md b/stable/mylar/1.9.1/app-readme.md new file mode 100644 index 00000000000..7a37462ad4d --- /dev/null +++ b/stable/mylar/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various download clients. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Mylar is the automated Comic Book downloader (cbr/cbz) for use with various diff --git a/stable/mylar/1.9.1/charts/common-6.12.1.tgz b/stable/mylar/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/mylar/1.9.1/ix_values.yaml b/stable/mylar/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..75ed20a869d --- /dev/null +++ b/stable/mylar/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/mylar3 + pullPolicy: IfNotPresent + tag: version-v0.5.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/mylar/1.9.1/questions.yaml b/stable/mylar/1.9.1/questions.yaml new file mode 100644 index 00000000000..6efb740a025 --- /dev/null +++ b/stable/mylar/1.9.1/questions.yaml @@ -0,0 +1,1116 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8090 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8090 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36069 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/mylar/1.9.1/templates/common.yaml b/stable/mylar/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/mylar/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/mylar/1.9.1/test_values.yaml b/stable/mylar/1.9.1/test_values.yaml new file mode 100644 index 00000000000..509667209d3 --- /dev/null +++ b/stable/mylar/1.9.1/test_values.yaml @@ -0,0 +1,48 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/mylar3 + # -- image tag + tag: version-v0.5.3 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-mylar3#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1000" + # -- Specify the group ID the application will run as + PGID: "1000" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8090 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + comics: + enabled: false + mountPath: /comics + downloads: + enabled: false + mountPath: /downloads diff --git a/stable/mylar/1.9.1/values.yaml b/stable/mylar/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/navidrome/6.11.1/CONFIG.md b/stable/navidrome/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/navidrome/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/navidrome/6.11.1/Chart.lock b/stable/navidrome/6.11.1/Chart.lock new file mode 100644 index 00000000000..947a6a5dd89 --- /dev/null +++ b/stable/navidrome/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:40.771942522Z" diff --git a/stable/navidrome/6.11.1/Chart.yaml b/stable/navidrome/6.11.1/Chart.yaml new file mode 100644 index 00000000000..630cc1a23c9 --- /dev/null +++ b/stable/navidrome/6.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Navidrome is an open source web-based music collection server and streamer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/navidrome +icon: https://raw.githubusercontent.com/navidrome/navidrome/v0.42.0/ui/src/icons/android-icon-192x192.png +keywords: +- navidrome +- music +- streaming +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: navidrome +sources: +- https://github.com/deluan/navidrome +- https://hub.docker.com/r/deluan/navidrome +type: application +version: 6.11.1 diff --git a/stable/navidrome/6.11.1/README.md b/stable/navidrome/6.11.1/README.md new file mode 100644 index 00000000000..5526afc83a5 --- /dev/null +++ b/stable/navidrome/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Navidrome is an open source web-based music collection server and streamer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/navidrome/6.11.1/app-readme.md b/stable/navidrome/6.11.1/app-readme.md new file mode 100644 index 00000000000..24b39f33a88 --- /dev/null +++ b/stable/navidrome/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Navidrome is an open source web-based music collection server and streamer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Navidrome is an open source web-based music collection server and streamer diff --git a/stable/navidrome/6.11.1/charts/common-6.12.1.tgz b/stable/navidrome/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/navidrome/6.11.1/ix_values.yaml b/stable/navidrome/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..74cb301682d --- /dev/null +++ b/stable/navidrome/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.45.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/navidrome/6.11.1/questions.yaml b/stable/navidrome/6.11.1/questions.yaml new file mode 100644 index 00000000000..b3cc96fafd2 --- /dev/null +++ b/stable/navidrome/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 4533 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36027 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/navidrome/6.11.1/templates/common.yaml b/stable/navidrome/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/navidrome/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/navidrome/6.11.1/test_values.yaml b/stable/navidrome/6.11.1/test_values.yaml new file mode 100644 index 00000000000..a6e3ad15d0d --- /dev/null +++ b/stable/navidrome/6.11.1/test_values.yaml @@ -0,0 +1,30 @@ +# Default values for Navidrome. + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.45.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 4533 + +env: + ND_SCANINTERVAL: "15m" + ND_LOGLEVEL: "info" + ND_SESSIONTIMEOUT: "24h" + ND_ENABLETRANSCODINGCONFIG: "true" + ND_MUSICFOLDER: "/music" + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/navidrome/6.11.1/values.yaml b/stable/navidrome/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/node-red/6.11.1/CONFIG.md b/stable/node-red/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/node-red/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/node-red/6.11.1/Chart.lock b/stable/node-red/6.11.1/Chart.lock new file mode 100644 index 00000000000..28a72322ffb --- /dev/null +++ b/stable/node-red/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:45.660769772Z" diff --git a/stable/node-red/6.11.1/Chart.yaml b/stable/node-red/6.11.1/Chart.yaml new file mode 100644 index 00000000000..2011574160c --- /dev/null +++ b/stable/node-red/6.11.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Node-RED is low-code programming for event-driven applications +home: https://github.com/truecharts/apps/tree/master/charts/incubator/node-red +icon: https://nodered.org/about/resources/media/node-red-icon-2.png +keywords: +- node-red +- nodered +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: node-red +sources: +- https://github.com/node-red/node-red-docker +type: application +version: 6.11.1 diff --git a/stable/node-red/6.11.1/README.md b/stable/node-red/6.11.1/README.md new file mode 100644 index 00000000000..c29265111e7 --- /dev/null +++ b/stable/node-red/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Node-RED is low-code programming for event-driven applications + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/node-red/6.11.1/app-readme.md b/stable/node-red/6.11.1/app-readme.md new file mode 100644 index 00000000000..693726959b4 --- /dev/null +++ b/stable/node-red/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Node-RED is low-code programming for event-driven applications + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Node-RED is low-code programming for event-driven applications diff --git a/stable/node-red/6.11.1/charts/common-6.12.1.tgz b/stable/node-red/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/node-red/6.11.1/ix_values.yaml b/stable/node-red/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..6a16d2b0842 --- /dev/null +++ b/stable/node-red/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 2.0.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/node-red/6.11.1/questions.yaml b/stable/node-red/6.11.1/questions.yaml new file mode 100644 index 00000000000..00f96a0addd --- /dev/null +++ b/stable/node-red/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1880 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36028 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/node-red/6.11.1/templates/common.yaml b/stable/node-red/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/node-red/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/node-red/6.11.1/test_values.yaml b/stable/node-red/6.11.1/test_values.yaml new file mode 100644 index 00000000000..a99ce4e9b37 --- /dev/null +++ b/stable/node-red/6.11.1/test_values.yaml @@ -0,0 +1,32 @@ +# Default values for node-red. + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 2.0.5 + +strategy: + type: Recreate + +# See more environment varaibles in the node-red documentation +# https://nodered.org/docs/getting-started/docker +env: {} + # TZ: + # NODE_OPTIONS: + # NODE_RED_ENABLE_PROJECTS: + # NODE_RED_ENABLE_SAFE_MODE: + # FLOWS: + +service: + main: + ports: + main: + port: 1880 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/node-red/6.11.1/values.yaml b/stable/node-red/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nullserv/1.9.1/CONFIG.md b/stable/nullserv/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nullserv/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nullserv/1.9.1/Chart.lock b/stable/nullserv/1.9.1/Chart.lock new file mode 100644 index 00000000000..14d0ed1f408 --- /dev/null +++ b/stable/nullserv/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:00:50.599732989Z" diff --git a/stable/nullserv/1.9.1/Chart.yaml b/stable/nullserv/1.9.1/Chart.yaml new file mode 100644 index 00000000000..d9c12613139 --- /dev/null +++ b/stable/nullserv/1.9.1/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: A simple null file http and https server +home: https://github.com/truechartsapps/tree/master/charts/incubator/nullserv +icon: https://miro.medium.com/max/800/1*UL9RWkTUtJlyHW7kGm20hQ.png +keywords: +- nullserv +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: nullserv +sources: +- https://github.com/bmrzycki/nullserv +version: 1.9.1 diff --git a/stable/nullserv/1.9.1/README.md b/stable/nullserv/1.9.1/README.md new file mode 100644 index 00000000000..830420d6523 --- /dev/null +++ b/stable/nullserv/1.9.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A simple null file http and https server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nullserv/1.9.1/app-readme.md b/stable/nullserv/1.9.1/app-readme.md new file mode 100644 index 00000000000..b605351e1aa --- /dev/null +++ b/stable/nullserv/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +A simple null file http and https server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A simple null file http and https server diff --git a/stable/nullserv/1.9.1/charts/common-6.12.1.tgz b/stable/nullserv/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/nullserv/1.9.1/ix_values.yaml b/stable/nullserv/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..e1fd84e3472 --- /dev/null +++ b/stable/nullserv/1.9.1/ix_values.yaml @@ -0,0 +1,26 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nullserv + pullPolicy: IfNotPresent + tag: v1.3.0 + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + readiness: + enabled: true + custom: true + spec: + httpGet: + path: /welcome.txt + port: main + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nullserv/1.9.1/questions.yaml b/stable/nullserv/1.9.1/questions.yaml new file mode 100644 index 00000000000..713f150f055 --- /dev/null +++ b/stable/nullserv/1.9.1/questions.yaml @@ -0,0 +1,1207 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36069 + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: https + label: "https Service" + description: "The https service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: https + label: "https Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36070 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/nullserv/1.9.1/templates/common.yaml b/stable/nullserv/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nullserv/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nullserv/1.9.1/test_values.yaml b/stable/nullserv/1.9.1/test_values.yaml new file mode 100644 index 00000000000..23b208d565a --- /dev/null +++ b/stable/nullserv/1.9.1/test_values.yaml @@ -0,0 +1,49 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +controller: + # -- Number of pods to load balance between + replicas: 2 + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/nullserv + # -- image tag + tag: v1.3.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [nullserv documentation](https://github.com/bmrzycki/nullserv/blob/master/README.md). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + primary: true + type: NodePort + ports: + main: + port: 80 + https: + enabled: true + port: 443 + + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + readiness: + enabled: true + custom: true + spec: + httpGet: + path: /welcome.txt + port: main diff --git a/stable/nullserv/1.9.1/values.yaml b/stable/nullserv/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nzbget/6.11.1/CONFIG.md b/stable/nzbget/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nzbget/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nzbget/6.11.1/Chart.lock b/stable/nzbget/6.11.1/Chart.lock new file mode 100644 index 00000000000..9caa226f6be --- /dev/null +++ b/stable/nzbget/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:00:55.593065793Z" diff --git a/stable/nzbget/6.11.1/Chart.yaml b/stable/nzbget/6.11.1/Chart.yaml new file mode 100644 index 00000000000..688aa6b469f --- /dev/null +++ b/stable/nzbget/6.11.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: NZBGet is a Usenet downloader client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbget +icon: https://avatars1.githubusercontent.com/u/3368377?s=400&v=4 +keywords: +- nzbget +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: nzbget +sources: +- https://nzbget.net/ +type: application +version: 6.11.1 diff --git a/stable/nzbget/6.11.1/README.md b/stable/nzbget/6.11.1/README.md new file mode 100644 index 00000000000..11b109fd9c9 --- /dev/null +++ b/stable/nzbget/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +NZBGet is a Usenet downloader client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nzbget/6.11.1/app-readme.md b/stable/nzbget/6.11.1/app-readme.md new file mode 100644 index 00000000000..1e873b38914 --- /dev/null +++ b/stable/nzbget/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +NZBGet is a Usenet downloader client + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +NZBGet is a Usenet downloader client diff --git a/stable/nzbget/6.11.1/charts/common-6.12.1.tgz b/stable/nzbget/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/nzbget/6.11.1/ix_values.yaml b/stable/nzbget/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..ef8e5a4f233 --- /dev/null +++ b/stable/nzbget/6.11.1/ix_values.yaml @@ -0,0 +1,25 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nzbget + pullPolicy: IfNotPresent + tag: v21.1 + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nzbget/6.11.1/questions.yaml b/stable/nzbget/6.11.1/questions.yaml new file mode 100644 index 00000000000..1205446d661 --- /dev/null +++ b/stable/nzbget/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 6789 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36021 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/nzbget/6.11.1/templates/common.yaml b/stable/nzbget/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nzbget/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nzbget/6.11.1/test_values.yaml b/stable/nzbget/6.11.1/test_values.yaml new file mode 100644 index 00000000000..b7f901b3628 --- /dev/null +++ b/stable/nzbget/6.11.1/test_values.yaml @@ -0,0 +1,33 @@ +# Default values for nzbget. + +image: + repository: ghcr.io/k8s-at-home/nzbget + pullPolicy: IfNotPresent + tag: v21.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 6789 + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/nzbget/6.11.1/values.yaml b/stable/nzbget/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nzbhydra/6.11.1/CONFIG.md b/stable/nzbhydra/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/nzbhydra/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/nzbhydra/6.11.1/Chart.lock b/stable/nzbhydra/6.11.1/Chart.lock new file mode 100644 index 00000000000..6f3f06a1f62 --- /dev/null +++ b/stable/nzbhydra/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:00.520499104Z" diff --git a/stable/nzbhydra/6.11.1/Chart.yaml b/stable/nzbhydra/6.11.1/Chart.yaml new file mode 100644 index 00000000000..fed26dd3d4e --- /dev/null +++ b/stable/nzbhydra/6.11.1/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: true +description: Usenet meta search +home: https://github.com/truecharts/apps/tree/master/charts/incubator/nzbhydra +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png +keywords: +- nzbhydra +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: [] +name: nzbhydra +sources: +- https://github.com/theotherp/nzbhydra2 +type: application +version: 6.11.1 diff --git a/stable/nzbhydra/6.11.1/README.md b/stable/nzbhydra/6.11.1/README.md new file mode 100644 index 00000000000..8dff42b6759 --- /dev/null +++ b/stable/nzbhydra/6.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Usenet meta search + +> **:exclamation: This Helm Chart is deprecated!** + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/nzbhydra/6.11.1/app-readme.md b/stable/nzbhydra/6.11.1/app-readme.md new file mode 100644 index 00000000000..99a51139d29 --- /dev/null +++ b/stable/nzbhydra/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Usenet meta search + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Usenet meta search diff --git a/stable/nzbhydra/6.11.1/charts/common-6.12.1.tgz b/stable/nzbhydra/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/nzbhydra/6.11.1/ix_values.yaml b/stable/nzbhydra/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..40be4546529 --- /dev/null +++ b/stable/nzbhydra/6.11.1/ix_values.yaml @@ -0,0 +1,51 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.15.2 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/nzbhydra/6.11.1/questions.yaml b/stable/nzbhydra/6.11.1/questions.yaml new file mode 100644 index 00000000000..e60d251b48a --- /dev/null +++ b/stable/nzbhydra/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5076 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36041 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/nzbhydra/6.11.1/templates/common.yaml b/stable/nzbhydra/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/nzbhydra/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/nzbhydra/6.11.1/test_values.yaml b/stable/nzbhydra/6.11.1/test_values.yaml new file mode 100644 index 00000000000..ea18da3a84c --- /dev/null +++ b/stable/nzbhydra/6.11.1/test_values.yaml @@ -0,0 +1,64 @@ +# Default values for nzbhydra. + +image: + repository: ghcr.io/k8s-at-home/nzbhydra2 + pullPolicy: IfNotPresent + tag: v3.15.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 5076 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/livenessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + readiness: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + startup: + custom: true + enabled: true + spec: + failureThreshold: 5 + httpGet: + path: /actuator/health/readinessState + port: main + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/nzbhydra/6.11.1/values.yaml b/stable/nzbhydra/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/octoprint/1.9.1/CONFIG.md b/stable/octoprint/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/octoprint/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/octoprint/1.9.1/Chart.lock b/stable/octoprint/1.9.1/Chart.lock new file mode 100644 index 00000000000..eafdab90554 --- /dev/null +++ b/stable/octoprint/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:05.410139428Z" diff --git a/stable/octoprint/1.9.1/Chart.yaml b/stable/octoprint/1.9.1/Chart.yaml new file mode 100644 index 00000000000..0683b12a9f6 --- /dev/null +++ b/stable/octoprint/1.9.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: OctoPrint is the snappy web interface for your 3D printer +home: https://github.com/truechartsapps/tree/master/charts/incubator/octoprint +icon: https://avatars3.githubusercontent.com/u/5982294?s=400&v=4 +keywords: +- octoprint +- 3d +- printer +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: octoprint +sources: +- https://github.com/OctoPrint/OctoPrint +- https://hub.docker.com/r/octoprint/octoprint +version: 1.9.1 diff --git a/stable/octoprint/1.9.1/README.md b/stable/octoprint/1.9.1/README.md new file mode 100644 index 00000000000..3d2c38e4c6e --- /dev/null +++ b/stable/octoprint/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +OctoPrint is the snappy web interface for your 3D printer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/octoprint/1.9.1/app-readme.md b/stable/octoprint/1.9.1/app-readme.md new file mode 100644 index 00000000000..8b59483c2b2 --- /dev/null +++ b/stable/octoprint/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +OctoPrint is the snappy web interface for your 3D printer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +OctoPrint is the snappy web interface for your 3D printer diff --git a/stable/octoprint/1.9.1/charts/common-6.12.1.tgz b/stable/octoprint/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/octoprint/1.9.1/ix_values.yaml b/stable/octoprint/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..cbc8146b9d0 --- /dev/null +++ b/stable/octoprint/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: octoprint/octoprint + pullPolicy: IfNotPresent + tag: 1.6.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/octoprint/1.9.1/questions.yaml b/stable/octoprint/1.9.1/questions.yaml new file mode 100644 index 00000000000..1b776519c57 --- /dev/null +++ b/stable/octoprint/1.9.1/questions.yaml @@ -0,0 +1,1114 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: ENABLE_MJPG_STREAMER + label: "ENABLE_MJPG_STREAMER" + description: "Enable this to ensure camera streaming is enabled you add a video device" + schema: + type: string + default: "false" + - variable: MJPG_STREAMER_INPUT + label: "MJPG_STREAMER_INPUT" + description: "MJPG Streamer input parameters" + schema: + type: string + default: "" + - variable: CAMERA_DEV + label: "CAMERA_DEV" + description: "MJPG Streamer camera device" + schema: + type: string + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36071 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/octoprint" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/octoprint/1.9.1/templates/common.yaml b/stable/octoprint/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/octoprint/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/octoprint/1.9.1/test_values.yaml b/stable/octoprint/1.9.1/test_values.yaml new file mode 100644 index 00000000000..aa27f8594f7 --- /dev/null +++ b/stable/octoprint/1.9.1/test_values.yaml @@ -0,0 +1,56 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: octoprint/octoprint + # -- image tag + tag: 1.6.1 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Enable MJPG Streamer + # Enable this to ensure camera streaming is enabled you add a video device. + ENABLE_MJPG_STREAMER: "true" + # -- MJPG Streamer input parameters + MJPG_STREAMER_INPUT: # "-y -n -r 640x480" + # -- MJPG Streamer camera device + CAMERA_DEV: # /dev/video0 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + + +securityContext: + # -- (bool) Privileged securityContext may be required if USB devics are accessed directly through the host machine + privileged: true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /octoprint + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + printer: + enabled: false + type: hostPath + hostPath: /dev/ttyACM0 diff --git a/stable/octoprint/1.9.1/values.yaml b/stable/octoprint/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/omada-controller/1.9.1/CONFIG.md b/stable/omada-controller/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/omada-controller/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/omada-controller/1.9.1/Chart.lock b/stable/omada-controller/1.9.1/Chart.lock new file mode 100644 index 00000000000..b9ac6cd252d --- /dev/null +++ b/stable/omada-controller/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:10.31734164Z" diff --git a/stable/omada-controller/1.9.1/Chart.yaml b/stable/omada-controller/1.9.1/Chart.yaml new file mode 100644 index 00000000000..ad47f260fde --- /dev/null +++ b/stable/omada-controller/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Omada enables the network administrators to monitor and manage all the + Omada products in the network with a centralized management platform. +home: https://github.com/truechartsapps/tree/master/charts/incubator/omada-controller +icon: https://www.tp-link.com/assets/images/icon/logo-white.svg +keywords: +- omada-controller +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: omada-controller +sources: +- https://github.com/mbentley/docker-omada-controller +- https://github.com/truechartsapps/tree/master/charts/omada-controller +version: 1.9.1 diff --git a/stable/omada-controller/1.9.1/README.md b/stable/omada-controller/1.9.1/README.md new file mode 100644 index 00000000000..7afbffd544f --- /dev/null +++ b/stable/omada-controller/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/omada-controller/1.9.1/app-readme.md b/stable/omada-controller/1.9.1/app-readme.md new file mode 100644 index 00000000000..5a0c9bb4fe8 --- /dev/null +++ b/stable/omada-controller/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Omada enables the network administrators to monitor and manage all the diff --git a/stable/omada-controller/1.9.1/charts/common-6.12.1.tgz b/stable/omada-controller/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/omada-controller/1.9.1/ix_values.yaml b/stable/omada-controller/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..a81d81e6747 --- /dev/null +++ b/stable/omada-controller/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: mbentley/omada-controller + pullPolicy: IfNotPresent + tag: '4.4' + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/omada-controller/1.9.1/questions.yaml b/stable/omada-controller/1.9.1/questions.yaml new file mode 100644 index 00000000000..00297570a1b --- /dev/null +++ b/stable/omada-controller/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8043 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8043 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36072 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App data Storage" + description: "Stores the Application data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/omada-controller/1.9.1/templates/common.yaml b/stable/omada-controller/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/omada-controller/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/omada-controller/1.9.1/test_values.yaml b/stable/omada-controller/1.9.1/test_values.yaml new file mode 100644 index 00000000000..5cd36323121 --- /dev/null +++ b/stable/omada-controller/1.9.1/test_values.yaml @@ -0,0 +1,38 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: mbentley/omada-controller + # -- image tag + tag: '4.4' + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://github.com/mbentley/docker-omada-controller) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8043 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/omada-controller/1.9.1/values.yaml b/stable/omada-controller/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/ombi/6.11.1/CONFIG.md b/stable/ombi/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/ombi/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/ombi/6.11.1/Chart.lock b/stable/ombi/6.11.1/Chart.lock new file mode 100644 index 00000000000..3d87e61cdb8 --- /dev/null +++ b/stable/ombi/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:15.303821623Z" diff --git a/stable/ombi/6.11.1/Chart.yaml b/stable/ombi/6.11.1/Chart.yaml new file mode 100644 index 00000000000..b443b69ca7d --- /dev/null +++ b/stable/ombi/6.11.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Want a Movie or TV Show on Plex or Emby? Use Ombi! +home: https://github.com/truecharts/apps/tree/master/charts/stable/ombi +icon: https://raw.githubusercontent.com/Ombi-app/Ombi/gh-pages/img/android-chrome-512x512.png +keywords: +- ombi +- plex +- emby +- sonarr +- radarr +- couchpotato +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: ombi +sources: +- https://github.com/tidusjar/Ombi +type: application +version: 6.11.1 diff --git a/stable/ombi/6.11.1/README.md b/stable/ombi/6.11.1/README.md new file mode 100644 index 00000000000..30b276fc6d8 --- /dev/null +++ b/stable/ombi/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Want a Movie or TV Show on Plex or Emby? Use Ombi! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/ombi/6.11.1/app-readme.md b/stable/ombi/6.11.1/app-readme.md new file mode 100644 index 00000000000..7dd4dce71a0 --- /dev/null +++ b/stable/ombi/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Want a Movie or TV Show on Plex or Emby? Use Ombi! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Want a Movie or TV Show on Plex or Emby? Use Ombi! diff --git a/stable/ombi/6.11.1/charts/common-6.12.1.tgz b/stable/ombi/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/ombi/6.11.1/ix_values.yaml b/stable/ombi/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..b881db9d55b --- /dev/null +++ b/stable/ombi/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1468 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/ombi/6.11.1/questions.yaml b/stable/ombi/6.11.1/questions.yaml new file mode 100644 index 00000000000..97497310eda --- /dev/null +++ b/stable/ombi/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3579 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36013 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/ombi/6.11.1/templates/common.yaml b/stable/ombi/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/ombi/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ombi/6.11.1/test_values.yaml b/stable/ombi/6.11.1/test_values.yaml new file mode 100644 index 00000000000..77504662129 --- /dev/null +++ b/stable/ombi/6.11.1/test_values.yaml @@ -0,0 +1,42 @@ +# Default values for Ombi. + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1468 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 3579 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# Enabled mariadb +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb +mariadb: + enabled: false + architecture: standalone + auth: + database: ombi + username: ombi + password: ombi + primary: + persistence: + enabled: false diff --git a/stable/ombi/6.11.1/values.yaml b/stable/ombi/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/openldap/1.7.1/CONFIG.md b/stable/openldap/1.7.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/openldap/1.7.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/openldap/1.7.1/Chart.lock b/stable/openldap/1.7.1/Chart.lock new file mode 100644 index 00000000000..62a59d8411d --- /dev/null +++ b/stable/openldap/1.7.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:20.123340563Z" diff --git a/stable/openldap/1.7.1/Chart.yaml b/stable/openldap/1.7.1/Chart.yaml new file mode 100644 index 00000000000..470b16fcb7a --- /dev/null +++ b/stable/openldap/1.7.1/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Community developed LDAP software +home: https://www.openldap.org +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/7/71/Database-openldap.svg/640px-Database-openldap.svg.png +keywords: +- ldap +- openldap +- iam-stack +- high availability +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: openldap +sources: +- https://github.com/jp-gouin/helm-openldap +- https://github.com/osixia/docker-openldap +type: application +version: 1.7.1 diff --git a/stable/openldap/1.7.1/README.md b/stable/openldap/1.7.1/README.md new file mode 100644 index 00000000000..3995cfcbafc --- /dev/null +++ b/stable/openldap/1.7.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.4.7](https://img.shields.io/badge/Version-1.4.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Community developed LDAP software + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/openldap/1.7.1/app-readme.md b/stable/openldap/1.7.1/app-readme.md new file mode 100644 index 00000000000..406b045c6d1 --- /dev/null +++ b/stable/openldap/1.7.1/app-readme.md @@ -0,0 +1,4 @@ +Community developed LDAP software + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Community developed LDAP software diff --git a/stable/openldap/1.7.1/charts/common-6.12.1.tgz b/stable/openldap/1.7.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/openldap/1.7.1/ix_values.yaml b/stable/openldap/1.7.1/ix_values.yaml new file mode 100644 index 00000000000..bdc8ae302de --- /dev/null +++ b/stable/openldap/1.7.1/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## +image: + repository: osixia/openldap + pullPolicy: IfNotPresent + tag: 1.5.0 + +controller: + # -- Set the controller type. + # Valid options are deployment, daemonset or statefulset + type: statefulset + # -- Number of desired pods + replicas: 1 + # -- Set the controller upgrade strategy + # For Deployments, valid values are Recreate (default) and RollingUpdate. + # For StatefulSets, valid values are OnDelete and RollingUpdate (default). + # DaemonSets ignore this. + strategy: RollingUpdate + rollingUpdate: + # -- Set deployment RollingUpdate max unavailable + unavailable: 1 + # -- Set deployment RollingUpdate max surge + surge: + # -- Set statefulset RollingUpdate partition + partition: + # -- ReplicaSet revision history limit + revisionHistoryLimit: 3 + +envFrom: + - configMapRef: + name: openldapconfig + +replication: + enabled: false + # Enter the name of your cluster, defaults to "cluster.local" + clusterName: "cluster.local" + retry: 60 + timeout: 1 + interval: 00:00:00:10 + starttls: "critical" + tls_reqcert: "never" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/openldap/1.7.1/questions.yaml b/stable/openldap/1.7.1/questions.yaml new file mode 100644 index 00000000000..d4df13bf3d7 --- /dev/null +++ b/stable/openldap/1.7.1/questions.yaml @@ -0,0 +1,1062 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "Statefulset" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: LDAP_LOG_LEVEL + label: "LDAP_LOG_LEVEL" + schema: + type: string + required: true + default: "256" + - variable: LDAP_ORGANISATION + label: "LDAP_ORGANISATION" + schema: + type: string + required: true + default: "Example Company or Household" + - variable: LDAP_DOMAIN + label: "LDAP_DOMAIN" + schema: + type: string + required: true + default: "example.org" + - variable: LDAP_READONLY_USER + label: "LDAP_READONLY_USER" + schema: + type: string + required: true + default: "false" + - variable: LDAP_READONLY_USER_USERNAME + label: "LDAP_READONLY_USER_USERNAME" + schema: + type: string + required: true + default: "readonly" + - variable: LDAP_READONLY_USER_PASSWORD + label: "LDAP_READONLY_USER_PASSWORD" + schema: + type: string + required: true + default: "readonly" + - variable: LDAP_RFC2307BIS_SCHEMA + label: "LDAP_RFC2307BIS_SCHEMA" + schema: + type: string + required: true + default: "false" + - variable: LDAP_BACKEND + label: "LDAP_BACKEND" + schema: + type: string + required: true + default: "mdb" + - variable: LDAP_TLS + label: "LDAP_TLS" + schema: + type: string + required: true + default: "true" + - variable: LDAP_TLS_ENFORCE + label: "LDAP_TLS_ENFORCE" + schema: + type: string + required: true + default: "false" + - variable: LDAP_TLS_VERIFY_CLIENT + label: "LDAP_TLS_VERIFY_CLIENT" + schema: + type: string + required: true + default: "never" + - variable: LDAP_TLS_PROTOCOL_MIN + label: "LDAP_TLS_PROTOCOL_MIN" + schema: + type: string + required: true + default: "3.0" + - variable: LDAP_TLS_CIPHER_SUITE + label: "LDAP_TLS_CIPHER_SUITE" + schema: + type: string + required: true + default: "NORMAL" + - variable: LDAP_TLS_REQCERT + label: "LDAP_TLS_REQCERT" + schema: + type: string + required: true + default: "never" + - variable: CONTAINER_LOG_LEVEL + label: "CONTAINER_LOG_LEVEL" + schema: + type: string + required: true + default: "4" + - variable: KEEP_EXISTING_CONFIG + label: "KEEP_EXISTING_CONFIG" + schema: + type: string + required: true + default: "false" + - variable: LDAP_REMOVE_CONFIG_AFTER_SETUP + label: "LDAP_REMOVE_CONFIG_AFTER_SETUP" + schema: + type: string + required: true + default: "true" + - variable: LDAP_SSL_HELPER_PREFIX + label: "LDAP_SSL_HELPER_PREFIX" + schema: + type: string + required: true + default: "ldap" + - variable: LDAP_ADMIN_PASSWORD + label: "LDAP_ADMIN_PASSWORD" + schema: + type: string + required: true + default: "" + - variable: LDAP_CONFIG_PASSWORD + label: "LDAP_CONFIG_PASSWORD" + schema: + type: string + required: true + default: "" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 389 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 389 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36094 + - variable: ldaps + label: "ldaps Service" + description: "The ldaps service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 636 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 636 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36095 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: volumeClaimTemplates + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/ldap" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: slapd + label: "slapd Storage" + description: "Stores the Application slapd." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/etc/ldap/slapd.d" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/openldap/1.7.1/templates/_configmap.tpl b/stable/openldap/1.7.1/templates/_configmap.tpl new file mode 100644 index 00000000000..4a3c5474509 --- /dev/null +++ b/stable/openldap/1.7.1/templates/_configmap.tpl @@ -0,0 +1,21 @@ +{{/* Define the configmap */}} +{{- define "openldap.configmap" -}} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: openldapconfig +data: + LDAP_TLS_CRT_FILENAME: "tls.crt" + LDAP_TLS_KEY_FILENAME: "tls.key" + LDAP_TLS_DH_PARAM_FILENAME: "dhparam.pem" + LDAP_TLS_CA_CRT_FILENAME: "ca.crt" +{{- if .Values.replication.enabled }} + LDAP_REPLICATION: "true" + LDAP_REPLICATION_CONFIG_SYNCPROV: "binddn=\"cn=admin,cn=config\" bindmethod=simple credentials=$LDAP_CONFIG_PASSWORD searchbase=\"cn=config\" type=refreshAndPersist retry=\"{{.Values.replication.retry }} +\" timeout={{.Values.replication.timeout }} starttls={{.Values.replication.starttls }} tls_reqcert={{.Values.replication.tls_reqcert }}" + LDAP_REPLICATION_DB_SYNCPROV: "binddn=\"cn=admin,$LDAP_BASE_DN\" bindmethod=simple credentials=$LDAP_ADMIN_PASSWORD searchbase=\"$LDAP_BASE_DN\" type=refreshAndPersist interval={{.Values.replication.interval }} retry=\"{{.Values.replication.retry }} +\" timeout={{.Values.replication.timeout }} starttls={{.Values.replication.starttls }} tls_reqcert={{.Values.replication.tls_reqcert }}" + LDAP_REPLICATION_HOSTS: "#PYTHON2BASH:[{{ template "replicalist" . }}]" +{{- end }} + +{{- end -}} diff --git a/stable/openldap/1.7.1/templates/common.yaml b/stable/openldap/1.7.1/templates/common.yaml new file mode 100644 index 00000000000..c9df40ff35f --- /dev/null +++ b/stable/openldap/1.7.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 configmap for openldap */}} +{{- include "openldap.configmap" . }} diff --git a/stable/openldap/1.7.1/test_values.yaml b/stable/openldap/1.7.1/test_values.yaml new file mode 100644 index 00000000000..77005dbe343 --- /dev/null +++ b/stable/openldap/1.7.1/test_values.yaml @@ -0,0 +1,88 @@ +# Default values for Bitwarden. + +image: + repository: osixia/openldap + pullPolicy: IfNotPresent + tag: 1.5.0 + +controller: + # -- Set the controller type. + # Valid options are deployment, daemonset or statefulset + type: statefulset + # -- Number of desired pods + replicas: 1 + # -- Set the controller upgrade strategy + # For Deployments, valid values are Recreate (default) and RollingUpdate. + # For StatefulSets, valid values are OnDelete and RollingUpdate (default). + # DaemonSets ignore this. + strategy: RollingUpdate + rollingUpdate: + # -- Set deployment RollingUpdate max unavailable + unavailable: 1 + # -- Set deployment RollingUpdate max surge + surge: + # -- Set statefulset RollingUpdate partition + partition: + # -- ReplicaSet revision history limit + revisionHistoryLimit: 3 + +service: + main: + ports: + main: + port: 389 + https: + ports: + https: + port: 636 + +# Default configuration for openldap as environment variables. These get injected directly in the container. +# Use the env variables from https://github.com/osixia/docker-openldap#beginner-guide +env: + LDAP_LOG_LEVEL: "256" + LDAP_ORGANISATION: "Example Inc." + LDAP_DOMAIN: "example.org" + LDAP_READONLY_USER: "false" + LDAP_READONLY_USER_USERNAME: "readonly" + LDAP_READONLY_USER_PASSWORD: "readonly" + LDAP_RFC2307BIS_SCHEMA: "false" + LDAP_BACKEND: "mdb" + LDAP_TLS: "true" + LDAP_TLS_ENFORCE: "false" + LDAP_TLS_VERIFY_CLIENT: "never" + LDAP_TLS_PROTOCOL_MIN: "3.0" + LDAP_TLS_CIPHER_SUITE: "NORMAL" + LDAP_TLS_REQCERT: "never" + CONTAINER_LOG_LEVEL: "4" + KEEP_EXISTING_CONFIG: "false" + LDAP_REMOVE_CONFIG_AFTER_SETUP: "true" + LDAP_SSL_HELPER_PREFIX: "ldap" + LDAP_ADMIN_PASSWORD: "ldapadmin" + LDAP_CONFIG_PASSWORD: "changeme" + +replication: + enabled: false + # Enter the name of your cluster, defaults to "cluster.local" + clusterName: "cluster.local" + retry: 60 + timeout: 1 + interval: 00:00:00:10 + starttls: "critical" + tls_reqcert: "never" + +envFrom: + - configMapRef: + name: openldapconfig + +# -- Used in conjunction with `controller.type: statefulset` to create individual disks for each instance. +volumeClaimTemplates: + data: + enabled: true + mountPath: "/var/lib/ldap" + accessMode: ReadWriteOnce + size: "100Gi" + slapd: + enabled: true + mountPath: "/etc/ldap/slapd.d" + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/openldap/1.7.1/values.yaml b/stable/openldap/1.7.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/organizr/6.11.1/CONFIG.md b/stable/organizr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/organizr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/organizr/6.11.1/Chart.lock b/stable/organizr/6.11.1/Chart.lock new file mode 100644 index 00000000000..91db0bdacb3 --- /dev/null +++ b/stable/organizr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:25.083123249Z" diff --git a/stable/organizr/6.11.1/Chart.yaml b/stable/organizr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..72360a67f49 --- /dev/null +++ b/stable/organizr/6.11.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: latest +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: HTPC/Homelab Services Organizer +home: https://github.com/truecharts/apps/tree/master/charts/incubator/organizr +icon: https://github.com/causefx/Organizr/blob/v2-master/plugins/images/organizr/logo.png?raw=true +keywords: +- organizr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: organizr +sources: +- https://github.com/causefx/Organizr +- https://hub.docker.com/r/organizr/organizr +type: application +version: 6.11.1 diff --git a/stable/organizr/6.11.1/README.md b/stable/organizr/6.11.1/README.md new file mode 100644 index 00000000000..8cd8236413d --- /dev/null +++ b/stable/organizr/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +HTPC/Homelab Services Organizer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/organizr/6.11.1/app-readme.md b/stable/organizr/6.11.1/app-readme.md new file mode 100644 index 00000000000..fd5d55ab79e --- /dev/null +++ b/stable/organizr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +HTPC/Homelab Services Organizer + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +HTPC/Homelab Services Organizer diff --git a/stable/organizr/6.11.1/charts/common-6.12.1.tgz b/stable/organizr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/organizr/6.11.1/ix_values.yaml b/stable/organizr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..19a9fa1ee99 --- /dev/null +++ b/stable/organizr/6.11.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/organizr/6.11.1/questions.yaml b/stable/organizr/6.11.1/questions.yaml new file mode 100644 index 00000000000..4cb19de40f5 --- /dev/null +++ b/stable/organizr/6.11.1/questions.yaml @@ -0,0 +1,1176 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36046 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/organizr/6.11.1/templates/common.yaml b/stable/organizr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/organizr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/organizr/6.11.1/test_values.yaml b/stable/organizr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..cf066965d16 --- /dev/null +++ b/stable/organizr/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Organizr. + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/organizr/6.11.1/values.yaml b/stable/organizr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/overseerr/1.9.1/CONFIG.md b/stable/overseerr/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/overseerr/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/overseerr/1.9.1/Chart.lock b/stable/overseerr/1.9.1/Chart.lock new file mode 100644 index 00000000000..69cb2d1b0e0 --- /dev/null +++ b/stable/overseerr/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:29.983433869Z" diff --git a/stable/overseerr/1.9.1/Chart.yaml b/stable/overseerr/1.9.1/Chart.yaml new file mode 100644 index 00000000000..638de880e30 --- /dev/null +++ b/stable/overseerr/1.9.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Overseerr is a free and open source software application for managing + requests for your media library. It integrates with your existing services such + as Sonarr, Radarr and Plex! +home: https://github.com/truechartsapps/tree/master/charts/incubator/overseerr +icon: https://i.imgur.com/TMoEG7g.png +keywords: +- overseerr +- plex +- sonarr +- radarr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: overseerr +sources: +- https://github.com/sct/overseerr +- https://hub.docker.com/r/sctx/overseerr +version: 1.9.1 diff --git a/stable/overseerr/1.9.1/README.md b/stable/overseerr/1.9.1/README.md new file mode 100644 index 00000000000..33f94c84193 --- /dev/null +++ b/stable/overseerr/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services such as Sonarr, Radarr and Plex! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/overseerr/1.9.1/app-readme.md b/stable/overseerr/1.9.1/app-readme.md new file mode 100644 index 00000000000..ee304f25811 --- /dev/null +++ b/stable/overseerr/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services such as Sonarr, Radarr and Plex! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Overseerr is a free and open source software application for managing diff --git a/stable/overseerr/1.9.1/charts/common-6.12.1.tgz b/stable/overseerr/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/overseerr/1.9.1/ix_values.yaml b/stable/overseerr/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..ccd9749b2c5 --- /dev/null +++ b/stable/overseerr/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/sct/overseerr + pullPolicy: IfNotPresent + tag: 1.25.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/overseerr/1.9.1/questions.yaml b/stable/overseerr/1.9.1/questions.yaml new file mode 100644 index 00000000000..35830c70dd4 --- /dev/null +++ b/stable/overseerr/1.9.1/questions.yaml @@ -0,0 +1,1110 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: LOG_LEVEL + label: "LOG_LEVEL" + description: "Set the application log level" + schema: + type: string + default: "info" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5055 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5055 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36073 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/overseerr/1.9.1/templates/common.yaml b/stable/overseerr/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/overseerr/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/overseerr/1.9.1/test_values.yaml b/stable/overseerr/1.9.1/test_values.yaml new file mode 100644 index 00000000000..d9f82d1c237 --- /dev/null +++ b/stable/overseerr/1.9.1/test_values.yaml @@ -0,0 +1,41 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/sct/overseerr + # -- image tag + tag: 1.25.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Set the application log level + LOG_LEVEL: info + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 5055 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/config diff --git a/stable/overseerr/1.9.1/values.yaml b/stable/overseerr/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/owncast/1.9.1/CONFIG.md b/stable/owncast/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/owncast/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/owncast/1.9.1/Chart.lock b/stable/owncast/1.9.1/Chart.lock new file mode 100644 index 00000000000..96e9a56df18 --- /dev/null +++ b/stable/owncast/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:34.872831528Z" diff --git a/stable/owncast/1.9.1/Chart.yaml b/stable/owncast/1.9.1/Chart.yaml new file mode 100644 index 00000000000..4b6096f029b --- /dev/null +++ b/stable/owncast/1.9.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Take control over your live stream video by running it yourself. Streaming + + chat out of the box. +home: https://github.com/truechartsapps/tree/master/charts/incubator/owncast +icon: https://owncast.online/images/owncast-logo-1000x1000.png +keywords: +- owncast +- stream +- open source +- chat +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: owncast +sources: +- https://owncast.online/ +- https://github.com/owncast/owncast +version: 1.9.1 diff --git a/stable/owncast/1.9.1/README.md b/stable/owncast/1.9.1/README.md new file mode 100644 index 00000000000..ae6bb72ee29 --- /dev/null +++ b/stable/owncast/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Take control over your live stream video by running it yourself. Streaming + chat out of the box. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/owncast/1.9.1/app-readme.md b/stable/owncast/1.9.1/app-readme.md new file mode 100644 index 00000000000..317ffddbe25 --- /dev/null +++ b/stable/owncast/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Take control over your live stream video by running it yourself. Streaming + chat out of the box. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Take control over your live stream video by running it yourself. Streaming diff --git a/stable/owncast/1.9.1/charts/common-6.12.1.tgz b/stable/owncast/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/owncast/1.9.1/ix_values.yaml b/stable/owncast/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..754d0aacc8e --- /dev/null +++ b/stable/owncast/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: gabekangas/owncast + pullPolicy: IfNotPresent + tag: 0.0.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/owncast/1.9.1/questions.yaml b/stable/owncast/1.9.1/questions.yaml new file mode 100644 index 00000000000..160c9f5af24 --- /dev/null +++ b/stable/owncast/1.9.1/questions.yaml @@ -0,0 +1,1201 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36074 + - variable: rtmp + label: "rtmp Service" + description: "The rtmp service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: rtmp + label: "rtmp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1935 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 1935 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36075 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/owncast/1.9.1/templates/common.yaml b/stable/owncast/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/owncast/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/owncast/1.9.1/test_values.yaml b/stable/owncast/1.9.1/test_values.yaml new file mode 100644 index 00000000000..f72ef354e54 --- /dev/null +++ b/stable/owncast/1.9.1/test_values.yaml @@ -0,0 +1,44 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: +# -- image repository + repository: gabekangas/owncast + # -- image tag + tag: 0.0.8 + # -- image pull policy + pullPolicy: IfNotPresent + + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + rtmp: + enabled: true + type: NodePort + externalTrafficPolicy: Local + ports: + rtmp: + enabled: true + port: 1935 + protocol: TCP + targetPort: 1935 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /app/data diff --git a/stable/owncast/1.9.1/values.yaml b/stable/owncast/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/owncloud-ocis/1.9.1/CONFIG.md b/stable/owncloud-ocis/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/owncloud-ocis/1.9.1/Chart.lock b/stable/owncloud-ocis/1.9.1/Chart.lock new file mode 100644 index 00000000000..d08cc29c571 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:39.794559783Z" diff --git a/stable/owncloud-ocis/1.9.1/Chart.yaml b/stable/owncloud-ocis/1.9.1/Chart.yaml new file mode 100644 index 00000000000..68942c9c1f0 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: ownCloud Infinite Scale is a self-hosted file sync and share server. +home: https://github.com/truechartsapps/tree/master/charts/incubator/owncloud-ocis +icon: https://avatars.githubusercontent.com/u/1645051?s=200&v=4 +keywords: +- owncloud +- ocis +- infinite +- scale +- self-hosted +- sync +- share +- server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: owncloud-ocis +sources: +- https://hub.docker.com/r/owncloud/ocis +- https://owncloud.dev/ocis/ +version: 1.9.1 diff --git a/stable/owncloud-ocis/1.9.1/README.md b/stable/owncloud-ocis/1.9.1/README.md new file mode 100644 index 00000000000..33755837a98 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.8](https://img.shields.io/badge/Version-1.6.8-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ownCloud Infinite Scale is a self-hosted file sync and share server. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/owncloud-ocis/1.9.1/app-readme.md b/stable/owncloud-ocis/1.9.1/app-readme.md new file mode 100644 index 00000000000..35e2f816a81 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +ownCloud Infinite Scale is a self-hosted file sync and share server. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +ownCloud Infinite Scale is a self-hosted file sync and share server. diff --git a/stable/owncloud-ocis/1.9.1/charts/common-6.12.1.tgz b/stable/owncloud-ocis/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/owncloud-ocis/1.9.1/ix_values.yaml b/stable/owncloud-ocis/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..6fbcacb8108 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: owncloud/ocis + pullPolicy: IfNotPresent + tag: 1.11.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/owncloud-ocis/1.9.1/questions.yaml b/stable/owncloud-ocis/1.9.1/questions.yaml new file mode 100644 index 00000000000..ae6e6bcb076 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9200 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9200 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36076 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/owncloud-ocis/1.9.1/templates/common.yaml b/stable/owncloud-ocis/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/owncloud-ocis/1.9.1/test_values.yaml b/stable/owncloud-ocis/1.9.1/test_values.yaml new file mode 100644 index 00000000000..fe1da3e1543 --- /dev/null +++ b/stable/owncloud-ocis/1.9.1/test_values.yaml @@ -0,0 +1,42 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: owncloud/ocis + # -- image tag + tag: 1.11.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [owncloud-ocis documentation](https://owncloud.dev/ocis/configuration/#environment-variables). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9200 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + ocis: + enabled: false + mountPath: /var/tmp/ocis diff --git a/stable/owncloud-ocis/1.9.1/values.yaml b/stable/owncloud-ocis/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pgadmin/1.8.1/CONFIG.md b/stable/pgadmin/1.8.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pgadmin/1.8.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pgadmin/1.8.1/Chart.lock b/stable/pgadmin/1.8.1/Chart.lock new file mode 100644 index 00000000000..e3cd1fbc65e --- /dev/null +++ b/stable/pgadmin/1.8.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:44.657888117Z" diff --git a/stable/pgadmin/1.8.1/Chart.yaml b/stable/pgadmin/1.8.1/Chart.yaml new file mode 100644 index 00000000000..3f6def8e4f9 --- /dev/null +++ b/stable/pgadmin/1.8.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Web-Based postgresql database management utility +home: https://github.com/truecharts/apps/tree/master/charts/stable/pgadmin +icon: https://www.postgresql.org/message-id/attachment/1139/pgAdmin.svg +keywords: +- pgadmin +- db +- database +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: pgadmin +sources: +- https://www.pgadmin.org/ +type: application +version: 1.8.1 diff --git a/stable/pgadmin/1.8.1/README.md b/stable/pgadmin/1.8.1/README.md new file mode 100644 index 00000000000..832d66c9f08 --- /dev/null +++ b/stable/pgadmin/1.8.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.5.7](https://img.shields.io/badge/Version-1.5.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Web-Based postgresql database management utility + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pgadmin/1.8.1/app-readme.md b/stable/pgadmin/1.8.1/app-readme.md new file mode 100644 index 00000000000..65e9f45aba4 --- /dev/null +++ b/stable/pgadmin/1.8.1/app-readme.md @@ -0,0 +1,4 @@ +Web-Based postgresql database management utility + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Web-Based postgresql database management utility diff --git a/stable/pgadmin/1.8.1/charts/common-6.12.1.tgz b/stable/pgadmin/1.8.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pgadmin/1.8.1/ix_values.yaml b/stable/pgadmin/1.8.1/ix_values.yaml new file mode 100644 index 00000000000..1afaaefeb90 --- /dev/null +++ b/stable/pgadmin/1.8.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: dpage/pgadmin4 + pullPolicy: IfNotPresent + tag: "5.6" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pgadmin/1.8.1/questions.yaml b/stable/pgadmin/1.8.1/questions.yaml new file mode 100644 index 00000000000..c4eaac222b7 --- /dev/null +++ b/stable/pgadmin/1.8.1/questions.yaml @@ -0,0 +1,1113 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 5050 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 5050 + - variable: PGADMIN_DEFAULT_EMAIL + label: "PGADMIN_DEFAULT_EMAIL" + schema: + type: string + required: true + default: "" + - variable: PGADMIN_DEFAULT_PASSWORD + label: "PGADMIN_DEFAULT_PASSWORD" + schema: + type: string + required: true + default: "" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/pgadmin" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 5050 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/pgadmin/1.8.1/templates/common.yaml b/stable/pgadmin/1.8.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pgadmin/1.8.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pgadmin/1.8.1/test_values.yaml b/stable/pgadmin/1.8.1/test_values.yaml new file mode 100644 index 00000000000..bf1b9d135ae --- /dev/null +++ b/stable/pgadmin/1.8.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Jackett. + +image: + repository: dpage/pgadmin4 + pullPolicy: IfNotPresent + tag: "5.6" + +strategy: + type: Recreate + +service: + main: + enabled: true + ports: + main: + port: 80 + +env: + PGADMIN_DEFAULT_EMAIL: "replace@this.now" + PGADMIN_DEFAULT_PASSWORD: "changeme" + +persistence: + config: + enabled: true + mountPath: "/var/lib/pgadmin" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/pgadmin/1.8.1/values.yaml b/stable/pgadmin/1.8.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/photoprism/1.9.1/CONFIG.md b/stable/photoprism/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/photoprism/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/photoprism/1.9.1/Chart.lock b/stable/photoprism/1.9.1/Chart.lock new file mode 100644 index 00000000000..7fcc028a545 --- /dev/null +++ b/stable/photoprism/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:49.475534754Z" diff --git a/stable/photoprism/1.9.1/Chart.yaml b/stable/photoprism/1.9.1/Chart.yaml new file mode 100644 index 00000000000..8543399d474 --- /dev/null +++ b/stable/photoprism/1.9.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: "PhotoPrism\xC2\xAE is a server-based application for browsing, organizing\ + \ and sharing your personal photo collection" +home: https://github.com/truechartsapps/tree/master/charts/incubator/photoprism +icon: https://demo.photoprism.org/static/img/logo-avatar.svg +keywords: +- photos +- photoprism +- pictures +- sharing +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: photoprism +sources: +- https://github.com/photoprism/photoprism +- https://hub.docker.com/r/photoprism/photoprism +version: 1.9.1 diff --git a/stable/photoprism/1.9.1/README.md b/stable/photoprism/1.9.1/README.md new file mode 100644 index 00000000000..6a8ab4d1e0b --- /dev/null +++ b/stable/photoprism/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/photoprism/1.9.1/app-readme.md b/stable/photoprism/1.9.1/app-readme.md new file mode 100644 index 00000000000..8895178de5c --- /dev/null +++ b/stable/photoprism/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"PhotoPrism\xC2\xAE is a server-based application for browsing, organizing\ diff --git a/stable/photoprism/1.9.1/charts/common-6.12.1.tgz b/stable/photoprism/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/photoprism/1.9.1/ix_values.yaml b/stable/photoprism/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..53f7564cc33 --- /dev/null +++ b/stable/photoprism/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: photoprism/photoprism + pullPolicy: IfNotPresent + tag: "20210523" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/photoprism/1.9.1/questions.yaml b/stable/photoprism/1.9.1/questions.yaml new file mode 100644 index 00000000000..4e583ff5b4b --- /dev/null +++ b/stable/photoprism/1.9.1/questions.yaml @@ -0,0 +1,1141 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PHOTOPRISM_STORAGE_PATH + label: "PHOTOPRISM_STORAGE_PATH" + description: "Photoprism storage path" + schema: + type: string + default: "/photoprism/storage" + - variable: PHOTOPRISM_ORIGINALS_PATH + label: "PHOTOPRISM_ORIGINALS_PATH" + description: "Photoprism originals path" + schema: + type: string + default: "/photoprism/originals" + - variable: PHOTOPRISM_ADMIN_PASSWORD + label: "PHOTOPRISM_ADMIN_PASSWORD" + description: "Initial admin password. **BE SURE TO CHANGE THIS!**" + schema: + type: string + required: true + default: "" + - variable: PHOTOPRISM_PUBLIC + label: "PHOTOPRISM_PUBLIC" + description: "Disable authentication / password protection" + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 2342 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 2342 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36077 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/photoprism/storage" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/photoprism/1.9.1/templates/common.yaml b/stable/photoprism/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/photoprism/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/photoprism/1.9.1/test_values.yaml b/stable/photoprism/1.9.1/test_values.yaml new file mode 100644 index 00000000000..19ee5d69ef0 --- /dev/null +++ b/stable/photoprism/1.9.1/test_values.yaml @@ -0,0 +1,57 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: photoprism/photoprism + # -- image tag + tag: "20210523" + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.photoprism.org/getting-started/config-options/) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Photoprism storage path + PHOTOPRISM_STORAGE_PATH: /photoprism/storage + # -- Photoprism originals path + PHOTOPRISM_ORIGINALS_PATH: /photoprism/originals + # -- Initial admin password. **BE SURE TO CHANGE THIS!** + PHOTOPRISM_ADMIN_PASSWORD: "please-change" + # -- Disable authentication / password protection + PHOTOPRISM_PUBLIC: "false" + # -- Sets UID Photoprism runs under. + UID: # 1000 + # -- Sets GID Photoprism runs under. + GID: # 1000 + # -- Sets UMASK. + UMASK: # 0000 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 2342 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /photoprism/storage + + originals: + enabled: false + mountPath: "/photoprism/originals" diff --git a/stable/photoprism/1.9.1/values.yaml b/stable/photoprism/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/phpldapadmin/1.8.1/CONFIG.md b/stable/phpldapadmin/1.8.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/phpldapadmin/1.8.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/phpldapadmin/1.8.1/Chart.lock b/stable/phpldapadmin/1.8.1/Chart.lock new file mode 100644 index 00000000000..878dbde19f4 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:01:54.349717267Z" diff --git a/stable/phpldapadmin/1.8.1/Chart.yaml b/stable/phpldapadmin/1.8.1/Chart.yaml new file mode 100644 index 00000000000..a32c088f0fc --- /dev/null +++ b/stable/phpldapadmin/1.8.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Web-based LDAP browser to manage your LDAP server +home: https://github.com/truecharts/apps/tree/master/charts/stable/phpldapadmin +icon: https://repository-images.githubusercontent.com/3665191/dd213f80-766c-11e9-8117-6b639095ef99 +keywords: +- phpldapadmin +- openldap +- userrights +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: phpldapadmin +sources: +- https://gitlab.v2.rancher.geohub.space/g3s/i3s/i3s-helm-catalog +type: application +version: 1.8.1 diff --git a/stable/phpldapadmin/1.8.1/README.md b/stable/phpldapadmin/1.8.1/README.md new file mode 100644 index 00000000000..de01f286c08 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.5.7](https://img.shields.io/badge/Version-1.5.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Web-based LDAP browser to manage your LDAP server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/phpldapadmin/1.8.1/app-readme.md b/stable/phpldapadmin/1.8.1/app-readme.md new file mode 100644 index 00000000000..48ee3d8cdf1 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/app-readme.md @@ -0,0 +1,4 @@ +Web-based LDAP browser to manage your LDAP server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Web-based LDAP browser to manage your LDAP server diff --git a/stable/phpldapadmin/1.8.1/charts/common-6.12.1.tgz b/stable/phpldapadmin/1.8.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 zcmV)TK(W6ciwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvJciXnID2(rauRaAflipgn7A3#L$43fH z4S+y%xwt^8q2K@Qa3|b32uFj__q{p9DSomm?jF=n^R#Y8K}b&kfe ziM^$4&q27e8}9Tv^}iVZOPDNB`I!_z^Z4I?yubUz9{*2v5AMhRT|CnyyMW2K2fza` z7=Tkm08Bx)L`8vP#0EH-A&?hnf5`2CD0APcZzh!^wwA`M8F}V5UX^ipLhFIs5!0v6MdJBM=b zfrhLL1~zh?1e&Tq)O=}bneJq{6^sE@BjqTL0R%r~1^$DwGXW=A42~8gD=_BH(4p>37k}k1Cb6-K60+cRsk)=%0FJXbHe3v0O6HJm4Pg{6; zof7y#T43Ye18~#_Xa6$>@6L`X1Nt1>voZMo<_3gsQG#HJ!q=4PpFVxxdjO7A5jLy= z9Z<_3ifpca0}zH`52Z`if(O*<6EyMW3yx9|m=xJub!NE@&<8lrDbF5&Ul^xA!6}gP zMQy-&w$062UYO$NFu@g05^#Zdp#hBNIHh!)<%weE+4EN?FOSZizyJB@<-6x&5ICC2 zYf_2w(az}JqH10c(PtDr%dXNZSj6Dy44rH$m(1$!L(IC&_0bL6hb6%FV@@GmK>j>G_*KeLZfB*XE z)$_5i@+KH1@mn;Jzr~vqNM>U;4#G5x5#>U!Cwo<@^e9Uwc=`(FtUj+TSHbklU=H(v z(Dnl{-fBhpYgKFjju$1#<{&R{R$y`sq6C(F{*3Wtf(k0qgz5+;+!xnezeF<>FR0F! z^^R$^*9--C0LtrJndv1r6o6Er~)}ZP8KCW#SgeB2^}&&@w(?d4T#eD4AC>Lw3z-0^y&e?69YFcc}1q) z0uLrvEvn1Io+6ZSPp>X*uUwcF&t9KOzLeWSo)(4F`e~ezQm8C2hu5G$WtJ=vNXsP4 zE*Ck#Wl2Y6mNN4K{6h^j3U!f}jFw{tmg^({bQMS+X|ph7N|OnrCD@VE%X6kmhr+mE zTfx|j*Hm=#N^hJXFFK$G8o+iFk_QIF1UIGxguDODPpz9kICDC4RfchC!K21{ftNTzQ{7f85RBiX$@SYTBR}8-@u6OQhjav<$coRY*$27P zl(*DHVuB|qx{ea$qfHgi4P!pW>BJ6jipjAoT>@$Wgy8?u`CLp$fX><|1~`?IKDAw8 zIiSlzv$noC&`@YLc(gXA3WyWmNs(P3HToFa_=gVC%BM0}mrqcNQ0;w!mncPLIiMYh z*ean!ibLa(1va231pzPq60u;y{bkj0!C;&(rv?cHJ%Egr!V0+xa zG5uVIqk@~7=k(J#RfSYdU*U2_--?NVzAHd>l`7yT3O1j7DghR-OGFhk^Z3!mk?R~$ zb3bJ^D4!+N#8nY$wmCREJ_*=+?mas@KB*AAn9#-4+1ZJ}fJ*>W1;qh61o zVvbX2IO0tsmvt>9;A(~=?gE=&Ix;ftjcN9NUjhv*n4_|UQ{`g;R|O^nrJ+Q}jl?D! zu|RA=A0h4I0Ooi|S2aln;{jdREs6-0Lux-RcZLs?={?x#|JDPN3g)p;`r<_z(?t*h zv+SySLn|sZ4$^!L(96 zX8Q~{t<7a6V7{@E|E;ybF{M>?U%^Z17H6{$o>MZVpMGm0mW+IbwN0lZ=8Yv$7>0dK zIWzAzogwCYTN9>WM}pbbd{xYUo~6lk^_kUz#U-N4QAq*^Eq>IfHa6C{^K3Dh;13+U zoZEQU;nHA)71dx(?$s6rokO+BR5+<#@F~?D7vR}N_wJ($%qK;*q;2tR_i-&ehu2iN z3iPi9F1S8&Zo4?P_SYn9tqp#ElLV-S)@Z>26(r}V7oIARX9WS8w_6O)wrQPKs~F_M z#r;zqkZ5{LW^Etyl7Dh8k{xt0_V6_DR>lv zVR14LDT^(s>SP5OTV+pZxxC0o7G+7OeLG#`42HJJcTO$i^KJhBQ~Jl*@rjuG-#t4y z*Q;|Qntl@IbPlgl0I5x0ZGxsTm?Bc?Dx4BjP*HmK_9gquG+X6G)>_XA9y91xlazC? zQe|vonKji~ukfuDL+`Ox^WC=@0-76{eF@FpJ+DBY(;h3u4sr9c;$cRZ zZl&Y2BnZYJn`n4w>GPbSV7(F29u`}vltZx?dU7MSGHjXE(AGbDOLzCWqMs%yAqi=n597lnQ|q5KZu<{^jy%$smF&z_#zjzUEwFM`=7*lwt~-;14K% zRaKQU{(z1foDMEvi6f2G+W7fXa9snZ4BM~N4wri0)bnzHut!bvjLi~L{2xe3a|y9+8s=11NYb!qxvm|Yd>L&6G|$QPGhA#lwMC~w+UtCaQF8+4 zOWnYpWJRP-hve)85G7IL=r1@)*d)j-==55h(ksMLiW~M6&TAE{uHgT|R(mAlYKw1} zX31iXr0s5QW=X#3QJm+)|D@!+&nEB5487;o|8~ADii*feTJrnB_d=PLI;M*SF@>MM ze?=+c2pMraP8d7@BA`p_5aCe46CG@|!^Wzkn1vq<=#rH~mC<~)jq(*2r5s=Ln)H-p z1)L&qtRjqse`)b#Y>celDCRCs$PGQGPfIw!InlwpNS?1oi37O z8>E>5iCHIXJD+WEpO9om(Ha&f_|NkJALTt$|{sR&jzwA~R4 z=Y5sw=YXZ&BbMmCs=Py)u<)4K#7~^evlyu%R5?&DL@0~sKHje}D*h^fuH@L{FoqR{ z15RNnty0Hzoc9 zjls^3Sb^p%%#2yITpp>4bMMnqgBUGa`d`wf+b7g|W6Dq1 zgtSb3ZV#0^L`Y1GmW@`9(5D@392H1Ld3Y|-oV$#Z`Smj$^{IZ=M^-$$&Y7u7m3uTp z(WQ*SBE_|^l}t({O_ZmaTPe<>1+|XF`Xei()oHSWJ3fNIYcVlqtY9xmCw^VJMEGDO zTi%rrD>#_T!=(*Up_$14#x|?g-p^;bK4bP4w=H>3{479HbBglq7L%$R^L+B;zi0yt zceFaFH&(BJG}-t}yT3cqKJiuJ{CXfyU{xn+J(iM|1%%6owlqA~{53d@@e;=in9!cO z=+T3FODK^ofYRWiNHxAux=GfPL2{{09%fn*uOv z6C}7K+8K4K#}|1Gi}qSsZ)Ao}`QIzx-~AEuUxsNM%@E87;@yC46$q}srY0IU+$h7N zEGm)ihhs&Iu*aPlTKWsO8_Tq z1OHm12^5QDjRS36NR!wGFpUQ=C3qm;^n3Cz$8jve$Rb%Hf+@-k(8gdgIx4useosT9 zxz*m4e1bemFf5TeQ!jJ@N=bqF+aV&+kb8dzU=H(~s=F5_a@&9xl7~b$a%d37@jwtT zAQ|H|BGG`+FrXuw{W*Y~@?pQHwL={P#`zcoJO8m8?i@S~cfy^~h)cVol#kc}2&4lz z%I1N5cXf3Y8t;3CEh$4srBz>oAu1>(t=b~x z?d9y8WJ!`;;dIKuCv+HZ0~r6lC<)(zh9yW5Rb#NY=2;91G|!fD{wk7da8a;5TR0)8 z0N+>a{+|0;dH2Wz< zNl5Zdrh#k8|G4}3@vfEsZGY!r=RW`2T|758!$&=l%!3ryc}AzP%1KFuLuGqpDkTIj z2tSKapfpAW^C>LoUkP8pNJ#=0kQ#C_xej;j$jnw@@6qtnr{2xYfXC+{5O8E6Op*W$ zK2eoQzYZUPSE!hZBeGcp6R|}kBPY{XCzXGTrM>@XsDZ+1lq}*3lc0p1)DJ)iJ~7{y zK>GIu=1Enw1~o#0t35Au)VY#81H3VQ@lujxGCmPK>7Aq>CqnH5n zFIQQ18Z4+bTmo6kO`2XX1Rp_))0is$QH6|oi(3)Ot(-P|Rk_=s)0PSWXvSz1ZNzDS znLwO?t-Qb~nSkJRMgSDq+-zdDzAO8IkJP^2X|l8HJzt}m8S|(NXE}6G?XDxltaEu0 zQ9#Q(D_By`cK$0dcc7;wT+po6d)pi4SwUdpCCF2YueeY#$7M+ z3VL%yAa~bDf0AR+@`bF-;ie{2vBU43gZXz;H}31onXRK7T3o~w7?T6ZShf@|EUG2g zPd(1UV`^wcLV5bpNoEs~dbEc|ho4T3N_lYEolf)S#)Z#SmIIcKAl?&mNTS(Gt!tV( zCzN$xI{NB>gO_qGz-t0yhqW}IbFn<6Y%oziH9Otly_xE=D(L0A1x!hZ7M)^%Sc64R zZ8B_%Us|Hvh1eRo`Z;$Op_-KBS?uUU4c?d5mw&d$G5;(3ep3cO%lyB$|Kzbf|37|m zpa1<%o^|H`D!cPW4FGci+F}7z3EA&WfPa4zpvuPXtI5AtWIU89&B6FkIn@K1c-^_U zRy8Ug&V>1owo;_QtAO-tU-X3Jfw55cFaA|^w)CGE$>W75K%wZ@_-y8Gm;2&3HyT+T z#L>w4ZaF^$5757wTDp}LAY}R4L8#?@S1fQOl{ab9DpmOB@WVSTi9GB420Oxp$f?m` zow9uL?NF>2Cb#d6(R*X`8!|@g_Mbd8w7ET?R{L+S=KmSp-~V+t54HcmTeg$K?Y$S` zK({pQ4H^AU1YzeiSM7MLvb%k9flCY8%NpWu_UiK!*Au0AW6`fbuPmCp{FW z;{))p-`A)W^uDJwQc^6+107Ewa13f1+Gvyk4g_yl|8jT%*otvPK%lzM#MifA`@G^+ zbzou^-AUExhi&kXBw82PEF^Umk0&5hCjs@3qFp*SD99}!4YBW*gYT9B2uQ*k6{8Qp z? z57#!rv>)1^J)x_}qDX5;HSDYxTz$3ascQIDs^_859WRuYqALu_m^IYXU^V?zbxn;3 zKE^`>qP{;?+ZcXWppq_%#)lvXy3k(7X;IIV-VB!iK-X2pK(er3wN7@1)jC1Yp{1`{ zTOy8n%ldk~3g#ucE*(wy2qw5Fi37L^V4%s`*SlM{`KNCG<;&=9<9~K`NA~@X`#Vn_ z-`jt8@i70NZvUNBr%QJr)+@HU{%$)M@}qi{a$wV_m)K$8YO8ik4Oy zb_@Nh%0e74a@cnsYQbLgg(=6X>4))byXT>XSF<50aRb{zWDslR{bq%w|Ld6SX`Y)7 zZliCN*JW1@G`TutJM|S-88_`j20jP4C zcl7_s3|X25C|_CYYbm^*^|kn{*=`b!%m1gRoG|P*>!MP&nr-qC8fd%w2xVis`UuU| zwfYFxa}lZzHqmu86RYa0dVYGE=f_SYFY@-Z2xXJE=TwSho3p1u7Hwxwi!j!lJ&K0U zh#lw)&MQz zfB#^A$F~2UJihn;-pR8@{O73)GT9{iPIb=m_zbY{B1vtZ|EX00 zAHlyCnI7s5s%$Mfc0DUf^@#jXV>f9mBcV;y$P6 z27{npnX23%V4Ws10LFtwz#q&+Spf*&q6EPbg)C1kuQ`yJ0E7sb z(5sd^V!HexPwtwy-rRK=VC1nF=mwsg2qa#dPHVnZrqX9Qd@WRZ zyIEk=DbPjR!ZJFw0FPrsS-|LEY!z5oAC zo|WeR=Rzcal8G)8Kfhz*$9FH<=X_UMB{^uV#UW?H65-P)_EIfIBF8bVR%0K=$cMh<5{O^o*c53^7k4N|Z|2uhB8vig!YUcwt;rXwfAJca2 zskObTF@K|-^^Ph(M6jD#nDG`*w&-dyG@q*E>iU=%%vyv9%~(25tU*ejyAmO_9npd!9Z4WaUs zu#63ku@}J{Uf={1TnTz8E0~#3AKG^di#R1I>($LimdoGD71~OZq-QhOt7VW1s1qGC@7gDGXLrn3 z?1_1|PMEjye|`(r`-y1g`U*I`43|pEApm{)c5b{-TBwb4F2Qxd(mmt#8r`_$5I_yS zYOif)yK%dU(6)fs?jOl1w;uYo$!f>u zDe)CdM`8s1j^_H_)}WrDfN{!5Nf6)<5h_UF#^h46EJ;Ik$Fz?a)>y5aYPN5a+!r4X z_$4r7Gt_zMVDvy-axSs6d&C^0WGS3&VInrSgI+8Ku!oqVH ze#~@p=c=fMoI9zgLTc12WfrD&dUT4ks_eI6PIk#wF%UPnOP;fP#+)LqOSRGf*7xcT z_nVta=kfd80}h;BtmXh)qYUsX^wQYAn!Sw(?``q=RAik?F&e=xZMWY7kS^vIsNmHZ zduw&;hKxng>vsHQC0MPfT&YLy5AgmeAHV<4&XK>qBe2E)|9Edy^Z)Pf@80|W?&4V^ z{?`@^@OySqU5mR&d*Vh*o+(URV9U(J77w7~S_bF-zn=ZUaMk>tU97q9KP|FFPU}5B zcxs=8l4w!7te?K)6%Rp-ryw}_@x`-1zH?Q(v2rxjK}^aY>CYOJJd01MeUHiYah4MF z!8#lzFZ^WJP}-;1fa5S2zd_TJQ=^v6g4yS+ii)@pKTBlDLXANwcbLgZdyBvM2uOCy z4qb!3gj6$0Zp>41Rueg7(GGta4ELV54Q$}p8oGcanpFYk|D9d9m!H+rcmNk98|1nG zE1A6Qy0pHGoS|eMmb2k3%Pxa4$O|+OgKeAsy~w8pj8VPp;0odCj09s440c9=qd?4p zrU!YJ;OIIS1NO39L=i$UinrO%3B(DCxA|Bfuvcsc0B5OM+%*N;>cNo(qDq*YFnnY1 z8ZA*FK2^6>kF`Y;=Y5F?zg1Odxn{QDISXQhNsd!A-V67%ZQ^dGRx&vK%m%kQwjdAN_9QE zC0JaakBENQT*7#$DvS^L-N2qShm>cktZM~m7jm3mb|XIIH`=>knu&>;-%|Vvrt51~ zSOkh2+s&8iQgjoB{9Yd&+_&WdY&A$;03V1<(?OR-rw4Pcs78NiNo2_1ePKF(kUaU3MSFwVB7i{^K{R-NE_q{e#_F{Kww@ zef-CrJl?gKyjX7_@3GStVCCup*; z^lr3NwdRHiedD@WRPB{a3wwt{$_IUYmM5mF7mYszTa{m)7JBI2Uts0kFsyH`X-q3^ za@#W#xv5;I+mN8z=a4Q4L$!IS`=lL&Y>Bbvfurq$ z(k}t1AHlU5jVB;QLMm*T(04-&Li9$9YiIos#CJXEAfg2S%GEN=?OusVHf= zF|q<|>EQXckyHV}PiJQ*0gEhXE^}H7VK8;cp{MeSQe8zq7|DF#-vIYr5-=$?zeL1SHfR3phgJE1dxr$j}2ZKS+ovB5s7>D1B z1FT$Ht^ki!yjew-Bx3zsz%)Ke@)>-+n1jdqmZ2m;_LJDiGQ?4B^>WS{8;-fT`DK1n zPKBKNU9@kDBB^bpkB7tWmgDc1Y#UvXz>#wB4@IYFpxlD=CD$?y_W#E6fVbHHdwV-} z{_n>Jd-wPM-O00Z{CAZf{O9UC{%45>SE<8q+@ad`hQ&>nSnV5kq_%fUsTQkkIw1^y z#KU|Ut+xMkvyss5n<{Z0%M;=%84QBH*)mCNJ(yX3X+&u=p=yl^*3Akd?#06DE>=OK z^AewjoFZpWS?5 z&%j@|;`FaxNVWxAE+ZC5s~z%Tt}5-Mfz~@NC;YNZf6NScPtGP#Ra% z3hT=tO{O27yu>^0I#nrC~o51<>i7bihW$(I?7{|*zFMyP0}%a(7gqU3}5 z&LG}ZyvYKTjXf*iWP&3e{be%9_~hi2qjD2YoyJqPI(Q4ysXYAV`#Sawa33_Uh!4!J zYU>PNGfKpQ-Hs+KA%$qS_0nLMvqCda?)`Ow=AV3Aal`4t60b&4c|lG}Q$SvvteWz+ z*6e(7k>GOnIwNlpjIWR4SX>>+-NK%)26vl57|7X#H+EjnppF6=Q>Z~QeP!;z4lJj3 zsBfY1Y)R&kkFa{FC*!iSUMg&^%^qXtsd3B6v)APOdUkxG?L$>Q{rQp1YMB2AOz{$>mJg`2U&mhU*KgrEVG6PB3NEQeLqm<) zw{IDGwC(CGj(FvJxA=rM0$T}6O<0XL3h-HidCeq&l)cg=_0QnD@}I$919j?}?={#n z>PmNisj0_kaMP_{tcHH&m$0zD@O@vL@cYZYHuTi=e}XTD5h}>=J^lA|6PE$E=>Of( z6Z`(3C%ZfM_kZ5WuwAnImc-P^5lc64@jtEf}M^-dA|lqE4L%m4=I$M+SsZnQL% zg+^U1sneixiK{|BBv#af%!1-AuIEH?Id{5|XVSJFR%4$+;lJs0sb>XRUANOWcN$jX zZomlSji_4VNF(FgR}o(A+SUOTOSptM;Th&0f<6dHu@I8L>q^T0nSNLPGYvp67!26j za^9;LShinvDcv7 z?v2K;`ElESGe`|UEsp1N`u|4nZNsL7`BZzSlxg#u{Z|EuNyc=BYlb3gv?;$h?eC`qy_@Q=j> z5k`xw{}$*ZUO?>BQ$1o&0y z#qKT4%{)!|U&MLc+5_08|3`KI-{al;`+x7`(d|ERUST!UPwsut!6(nZGWlt`L6&|O z_j`D^QylSyx|#`(DUk3e&!v86yF9sdkYTA^KvJ*bJ5pGOGlwahqIht@w^r0C$uir`-? z#1?Q|tMhK0V3fo>%rL=oOi)bMb!3K1uyt|Gy7<}aQ(6|MQC(cbI@HoFsIKxF{)|C4h{0L2a|hR6#UtkuBP<*io4 zk~!JBcDduHXk>M}o)@1%wv}CfO<;z5UyBD-eJ=uI4b#Ai02P$D%hV8-%f@lpP z?E9dmW>TS==&Ezi;*X#!Ag{wj^DgB@mZKuM1`(t}A%#TFnORDTEJ;wo&ULm4h$?+{ zojV*UlI*IS$Q&7?Jjt%-YAe=q1wE^MzA;Y+`vF5V&(ack;Igl$Xl1Y^fdow!2?Okc zd@2gKU=JEX=?Q>f2@@Ox8|T({Wk2vyaNXL1mHB* zT9l}8RN2brm{fKjuW6^jo71+(RqgqrB#a-_M!G66K{i!7Is=r73<^O|1z1aJ3`{Ql z(_?Ukj{qwO@+>~8wiI9DlJGO}=6iJ&$PLfhtABfjBccvdRi(romes{lHX03J73|~y z&8JV^)mo+Mh^eFrrfJ4_%Npj!?8M-rMD?dx-e9%B+4u03yV4An@>ex(^4Fahsm(A+ z1>eU@4RB{RCh(%p#Tr^0d;<@)${>)AT$7Cnyl`@{s_7I`=Vz0<&LXRF8g>y~Kc;T1 zuj;!6*-cLq-mZNDJ@Rc*)Y3t=wA){N-ST;4-wA)!e&{+9oX8rLienTQXa%qN`Nc}7 zROw?YKC`r?Jf*DQFdxXMsPpuue&sYKXzodO%W%~F0Au}ZPJ&Cq7MWY}N@wHFy}q4x zfT9b{>#6i5dj0!NJ)3~8;zTROEq$yp&I7E9hcTinvo`j%Fi8W_!XIApE9X!pGLGp} zOIfUdInI1l^JP`R)bgm1QVo1k?Y2am-wk!rU8aq>&I!0t6LIc$nhqMEchf^;&aMir zq4YGtoHSVNCK{YHGsbzR0}Gk5aP_g~@7tO+WPjRhk9L?=IA>d}C@0J{y3okuXOnA8 zHMP!bnN~!xXpqkc{TvLFW zG^QwQbexLkw?~vH?9`O?Z>x+cNwX$lb%2}FjvmOH(~JUvODlSCub~k&Bwe(jlz&ST z8m~9gV;j?cb$A=md;+XP>(vpirtvDs&K?o{@tkG(VCTAUf~F`2rMUJw64zc|%}}Zv zi&*T=XnN4tk1#IH4mH3v2e!kA^lJwjGE0>rKnJc!MXiw~Tp~~|@;pIvloFV*JHJan zGQjqHW<1}4I=!T;_;Qhp(&IyrXf&F)d)c>zhYoZupoi8`I+jfvaJ4a-5*)+tRLEhcJK#&Y_y z^kwzQ>*ibBAN{jG?)_io@f^MvF+iwTe;>Fd{`1M+$U6VEJKDRC|G%4u4(j0}a5h6= z4si-pcgsk;7^urU)V{={p$eF=4+>R2cna=VLgQP&1JDwtuICS9`UlVD6-`y>)R=`% z$(0r@5EdxUN=&liT8rGQMf;m|2%PrK0|4y($s$R#eDh|VTz#xmD!*Gq+nt6|ZHphq z&0&`~jbG5|l}$6Mo#IBU(3m)k>x&z2P;kr_^6?I9CX%yG&b65$+`B^4-f=PCf&$5++2vBuiffosC(0I$ih z%i>4ra%}k?F46V2NEe~oXeeE3*LQ2<_@T)Dz=f36WA8~WF9cvowzW~_a7wh|W`F%q zWb`cGsznA2ZtvM`6pzfr=BrCdcUINi z5~5-xZ{xKH*Wb4hu9sbvaHDQJ;nq9Rtsmvcs>apRT6IGz1*J=7;hRFD`O0LU zQ&lWWi}uQ2x|_@pC!@GSvMmS}59+E>#4H9UJgC0RQG_Sg4B?Q2m}CVVinz#9x-?dP zpP)&Bx>W>9mwF{Ru;{Sj32huJ7rLmpv_7ao_;6`{(IyGZGGCc&GFL?E^2ET^JaNSs z^H*dOFo(IiZV^E31cS_YZ)NWI^BZoSb)1N5tJ_FtZ`EdZxJ8OFh(F$xu%W>K)tFov7v{nI!^Vg z%L;I6{DDW`n^;=)yeT+Nws^w(Df!*n+tI|YA+IG5sMZw1TM>#A5SkG0S~gQX1wjRc z-zoYkTckQLA-MWSb;D6*1Fl1KkzJq`s)vtyfQR9hY_WA#EYRztQ^0O^1yhuw0umGh z=0Q#;8E+&lDSJlUcFTr-4;UWO>ZA0h1?)r^^M2KQ&(*CWtf=NJ)&MD2Q}wD&3ae<` z!>c;zp;c-HyZhb|wYjI&|C49&ZBGES_<#2H5A6G2pX}`3-~VwZ5BLA{&Soqyn!9r_ zT|zeaf5KiT2T-2H^*dN~cgo2kNq7owrUUGEjjQpxo4kHRtzi~&oo5R@%WlU;7DLzF zDdF?!n`jE0F@W+ya9XbRvb(pSjAkfaB&d+Ej2GSE%(9Za=BasT3GL@gR64CkCt1UUEftyXAo#6_V$;G!hIU^4rOm$Zx|PleW&$7xwzq^N$ZC@uWz zlT*1_nTo`Am3eA^?%+V07BE65sK89RvovOvv=Tqo3Uu#psza3Tmk(~^&5G@hjEXJh zmgRT$KsG(1am;icOiZE`k$D2PB&B`h*0{!@-EM^1_NRDT@u$Mmd7vF77>dg$wV$_F zP-zw;mC@$Yr=I@%_RyhrHL3jj_E1TdprVRF(|)c9`_F1~cCi0$eG5Qa{;wzdwfo;5 z@7(8qxs!)2J^7tl%HWfE4h(~@gSp4n=5`c^3P~DRUR-zhM>YMsuWs|)1ZQ3W2i&n1 z`~soC$|#`9?|ALOs$M0YIskp3wTA^tV^r`%w!-771JwE zHnYY&RFNMxpUnML%~`7X!u894w`!Yx)kkf~ZyvaRvncop;1a|c^8uENoNw?<3H}?;rgHT zvAFq}uKkm2ilc5?UpP0_MFrx5NSPN=Tv=c%`2n} zY4ya_31(q2Z`AGd=8H?k?H=0goQ^cUt`_kPnKH2H=-2PI5DmyK5W6dzHk+v%m3~~z z3arR$F&)ysjni1XV|Bg93)N;<3!RQlehvc7LLPxyMd4>)!em612$a#HBx)1Itjco5 zyY{Abefz5B7Oy1&M#m3o+e{TnEK$tBv8^X=D%VN{NAJ$w1hv8r&gs}IRqw)LrNr_; zWV3!VxyGItsGY2^T2|fNuW;0^<~P3tpzonGm=Tiyh{!l_^_pE;nh`mRdttW*@|MvT zuFxSLfHImPYUxxU7_nXmUT(8CkSIURqRZx1G_us_bImSsU{gF`c8q9%vvO-|R)?Oq z!*z+0gvxxwFnNX&c&(g5S~t>R96AbtX0}T3)Ye=S=xkP?a+W1=9kyMfBVdB(C|eLO z$>#TtKy%YKX2Uc-yCHU5N4Wpo%>3VK|LOaoYg&OV_TTQ_$h!Y!cW3nY{{G)PdDs&5 zXYO@u@BsL42JmgG+spm#C&q8Id%^iBnT!E7ERH#S!$K>^ht=|Q$Oa+9)VCc9=wBe1 zWhJW=RAItFzKjBaNY4!Cz$6b}NGP79l=>z&D_=oq0A0Uz-Xx#dISiaM-L_Jsg9rve zpF086J07oA6=4voNH>0r$skFix?EgTmBf#+5eDp-Ff14ag7KR)xt4(d{MV{bcms+o zhg0UeR)t=aI+LJFD$qY5{mY^>qBSMi6kK+X5`I*$VhDa|XqT=z4u8}sz zG9tCpMMf=Gfx0BIfyIheHP+PT2WQ6Jw9$-OIB*zp4oLc ze1hj64FAP4dMyu#wuLP|tXUQ&sUL7ja5`m*-c)n!rmZV@U4pzo6I1}00<$=t05XH@ z0DOsv$~a+@dDw)qCFl0=5qLvpsJOx<0-Ow%6dr+-pO3kZ-a>1)Fm+`kx8|2E=0xyS zVx~&nFQc_@%gU79rB}T8`t^A1)ZSOBIR`dDkY$MaaN7)?WCiysHWAcX!)27JsZ>=a zKUZc6ciKhtPZc7hFxDb#>>lQ}5t`@Z`WY_F@g?7?@YA}btb>}P7%ys`!fG>5feU!a zz+pW%V<_<-=p~+GdsokiL=|@7VLxTrvDI9MM{~a`C#$szs~~^!PRgZGRUNTVs}i;= zM@>@$sQTQ<7g>sV(?m&1&bWU5ueM|5Z3%b$8WJH-H|T}=^l{2P!LCRQ*RdLBD)1T! zW-jphjL^;FvT^6jSMUh?FPx!dj;Co>pv~iGvHwPo_w4(BcMtCKf8WjX0GvQVP?564 zE?fe5#+r)-PGX!+K@Ou!I7MaHdjQU6)HLB+{v{}9C`rIH$pK9wvfVDg9Fk~;)9E%S zPyz{FBBrCX_b`on4?v2<8h(q~K==cSxfc3sKLpHEkfp39C5et>kl+-Bz3|!T`%{t? zsP{nLR`>JqDTr}V_QEM9L-sExzZYKoQ4HC?^2KaAr2ojDmM@G~rMwkW}iXV1%Cm>1daC?dTO#|RF2@gn=Z z7cR>vi_!4kK}(47|MvOOvscf`wC#|Jz1{{QZ1=idK&C(i?s*T2{M>#sk{ zyApT8y>Rr~){Kz691n+hJ`KwmyG$y?+3*6!Q#2HX2dwM>r<1IhLmou?|1ZgPf(|DM zB!lu_3s|5&`0KA{%#29zMFETJ7T~n(Koo6--Ru3ZNJZQNufhV5&WZ(MDIm&T@6n^5 zvN_7(6pbG}0{vdOoMN$Vc$5NWjP5M=%%+27v!h{=wc?SincX{$oJjawBezQc7%fjn^2Q z|Lt%m+&KtGgV8xF%1s!G`XA^Td<0_K^O;!l(!a{6z&T^b$KFRq0smM2&-jb|>U{(! zKfZVdJ_4Ll80U`o1n2Wk?lqiHapESl)|YN57c_4+d~SW5;fLXf{)@(P+I=xQ$yieHWGul7n9c+IVn(yQqn|ZEq96mg%&L6(4c<|c$Ic& z1Wrvbd*PFCzp& z1*tzw_`~%9iD9n+J7MNj7l;)b~{K-%*ElW7mbuGyG$Zh9dY$M_u6O(Yj~D<8m>5B$!h#q{tq}Y8HAl2p1phd+zGF)BLpLzrLS;-rVCiax9xr# zkWT48#nhvhWU4yPN7wyL9vrm` zg<8wi%@^%LOI5x)*6W%A*!kP4u;UP{XU=X=mNLRpd7J3(ZyvY<_)9}8nncdB( zZZ&?b1JlkjUBtmSqw66?-~QkhNeH6|mF26<2K*Mm_?H3`^d^n8^{xX#TlYGuRN+Nt z=kU*s*h>6|Md{9uxVgq9&KD_8O9GRm6P4u*7AOw2y*%eYbyZn`7ov)f7yPre z`;Drd*=N-1z`O$G367xtQTrw{ZF#hSopsk+OgL1OnZOT@J7=qUVPTuKm2X#X9ep$1 zJTc9F7kx?Oa;|hK+3ri};yH1_@8lk_uDtKgU+WHk-#~O-sqe8)N>V_Arq>R_-)2dI z)9JfBhD5V8^!y!8v2jLKJ4*HjD?PoV1<9(kdlPEZ^P8{dh`<;U2o@!!{nr^v=7Ttk zO0e7sAM4v@+U`=C6<1jn|2|ZuhXrE!V9Oz|*8f7A#VY={B;`<@v42m0htq5`IGXo= z_jdP2_WtkV-Tj^W{olKIL~w`N1;%rx*|u1eRY1i6r_-R<`(HuRW+{^%D%*<`lYrON z%9o@-B$^ehAf8+g%LOJV==FO&rU}%_=M0tPlzyYCVG$84*wd#ev_djE?9=O7O&ps&%@mWb^fFvr_A2*Pj} zhC}^jU!#xTH^4R6GsG@XN+XQQtv;n|I0U~SkRlWVGQ%a9$USS4flC}+f^0HjVYn17 zhqw(g8L3OF2h)sw48T>Eeow$th)K!Mo&4#pymlS3YZ6ers@6!!Mhc2)Tlr_%)STYrLaRas)Y3528UaCm{!VL1yv zIe=EBRVf1r`}h)4eOk;2F0BPUq_c#a$r(T?De_`F{#&S~R{ z$pWuIyIggp>WqQ~@9L8NmSwcrVq7K>&wO2OQ~vgis(8X`|Mif5vcOhU`~Y$CI=k9J zMG-zPimce`n_!G%*8o%w!&flH6U5WO>-5R@W%wf^Tfwu+!?+EC`XDyRIVww3FuNms zossABoLq0!QJOWYGzIw*el$|uPO)q@OXxkxIpQa2Z0c(`;CHbTpNvW(Cb^udSVF?K@S?6ycv$ zFVnVtHl_SLU9PW_y(;;6y0n0FP|fD!R@BeaWlc~216?zwDNXGJQ|U#NE<^tJA^Z3~ zo4iNqQdgx6O|1bpGF#zT=QB_HaMk?Lx#v01jAr7wW%fSyJPw z2lYjkC5OzZ)&=(kha89sF61v#M~`}tz~d3-v-v__dmRS^D0!=*o5ptptoqk|Dc-mkg4S~i+LWl4(+I**Q970 z1Qu>u#KNFA{>8lB<~EMMe)H`4``1UWo^PZz3R(-L(mNWv#(JI7b4uy6|NENt(LZng zc>}_?++!KCnD>8v`sb$sjORE#??9vgL`l?UbY9;i^A-NUNHnK|8hJHMz5>15waU#h z*EKU+GfPD|Bmwa3woj>Z@x&HC2HV;_I(V(zb8 z<6v85jbrzA`nO}JQ(MVnrc>!`w9;wawT<-W>9V7ZUfG_nV9pK1OSDxR#dV|CZ?Hd4 zmmTbNbrWDmi=D;66#^H(6Hg*}1#<@;QAy_C;Prpysk(o&je2Kox_*)2cfhl50leeh zZ-eYoM^oL9_uK!EesVWTHH=?R$D73kq)FWe{Z90IJG~3)t~gqjSFd3HtLTN_z@fsp z!8O$Lbh&LJ+~f+1_Q37-AN-3c5n9e4YJS%iTf77l;Vug;*TRZ}7z1Y3Z#y85K@jMc z5^XX6>bA4_)qK*JIDLNn_W4<5+3>HGfhp0GV&TKC>-cYMcI4dZI5Ub)+16)?ijg&P zRVg869cB?Vg_?AAoJu^CQX{Od(pdO%)&d=S_H=3*4Qxs=VA=it*EKr6Zaz>vYxlcb zQCG6MU2AmJM)M-m`Yg0D<<4TvZmHV6UNQ>YR@?S>-eD=Jf0U739i3}#f0`s=41zhN z>nP*P7>u@S2**4-yFMEnvuH`Sq%o%$eL~<-V-$VRXU+wGCVa&121nbe3o? zNq-zZ9X%cCJ`Am?;tZhOSX!e~d*vsVoqW7fdu2f0A*<^q?-o6wQ+Dc`n!hMz@1C9b zcDPz8qjhgh7zgrASrA{zl&ROeyBU+I@P_%4UmfLz<8Pvg;n&e`Efqa8o|NKkPy;9^ zH0HQ9kqG(sBawqlL)74S;J2C_g3%g=gN4|5?`h_(%?b+J-}X)<+`@>cj@;-cww2xx z7Q^@uoGT>SF`cn3*Xj;W{SmVxUqqQTU^GLkQ~)aPo;-hK!b>2Y|ANVkPy4S_?&cLy zXi1-k{Je$3e8$OOG2g+^}EF_>SoKO90R@=OQw zYk?^+3eB>TXVLpQ>ClT zsz&CvgHAQ=`|Nd%Qr*2KX0k(ek)eOn$793S=@1jS$7q&M>n2lY_aH~-;z&nIoNq4* z1TSk}KD93ZzVr#IfA6Pu{*NbU+2{elmi*8AJ5LVm^MCt~@9+P(lc($XKVTi{`y59A zMQ)(aa0bwVTss5^%tL&CwsU~I`P~l!+U#!RDc=87K zc6>!0@Glt6-5K}ZjDf4RH(#L{13iJ2zFc?)(L75}QNzJM<94ybm{lnCz4_JX(CX`r zRn)mROKN23&DkJ7PQ~46r@pWSn-Kl7we=`5A=q1HwNpucQq=O;M}-+YVG!|E?{{d{ zojJO?czf9r4i!b+*eeiO6sgC81D|cdIPbJfG)~>gj#_iQICqC6P@%E4A5IA>CNM%b zpKkOqA{37ytnytor1`-MYk8a?g0>j0ZQyKGzqXFM)P#-^**!|c%g{@kc^#bhU)uV) ze+>J7mKFF9x|C1e=UMz7E=X2J@Yc(Lmir$@yH9rP`~M#AJ-)a9@8bDd?EjyX=$&No zkrKR3F9zDsd`l|>4==hc6IvNrUo*7xp8hEuP7?72EYZ(ub5=WwE$UM$ji{tgw_SKt zk9P^;X^DF=a>nv`)uH=#!f^Ul=5o^?R{+{8_@S|^d%5F2TIGGH4Px4w&0LVics1Ya z8)v+$R;QwpgB6J}ZF1fjRxtCni}_=)v+ZK^80@*5#+MVPh|rN!uHHg%vRP{=Fr=L4 zg*z04i?xVVW?s>MxL^BNHRAAT(BCK@6**2$?t3`-^qW0y)oqOuczUCGU&~z3`E=DP zVdit^E|{~9XVZYo%eHE_zCFeW;st8q#Oq_!1kjCE8!MYYSIM;pT~*-r5mpVo(jiEy z+eG{dkpf3wY9?-Q|H)*g=Bm0j;cKj5?xvA_7!D6c zJ|(N#Ft!?T6GZtU7=wdR{UoZ^s8?v771y7+T@6SMpRCigIRhAs!4qHWj^0 zx9^<0X|?RoZP3hs`gVUH*iST30uu|`Jgyjq5@8lHYzlDEEmebe#-&6j?<_bNZVTb z`uDEG&-NJpKXFaPX0!jc`v0EnJhAit?mxND|9dyj*W&*Z7tU2nPw570dwbLQL&52Dl{3@r;)r~8f4u^bf zn$|}PkGMC>;{YpF!h>cCbt&VW7}&HJk@Sm%;5_lK&^FEUl3f=9i|eKuZJaV0Wt=93 zWG0h}eR(-DZw0GEIPW4#p1fh~Wl^z!Ujk4Cr9he^S;!WX(E)3Dw9h#354W)@HKO3 zm1gs^0BS^wlg!Ph06yKy?_CocH)yZ>+ik~E!sQKBw~t@-8ngmMlhrDUu=Cxw-pOq- zDY>KGtxPpi?G4ig>r&KOXQFZ>pI{PO-H3Jgbku4c+`^RDfHBIAE_+JrQeU>7PAi9b zC5^WL#gee>?C$M%n_%}^4y7Bc`ali5P7ANzJQGc^Eu4RIO>%Xm0X) zG-Y5|CpqhyWNgy;(oNRx&whQij}iZoqhgNBl6Lp|-?NKN#euZMe;gbfJhtLL4jzy0 z^FQ3l^R>i(oK&Ls-`T~c!$3UHzolpplLg&^LVRqi$A)+r%upAoL}`RR!!39Jon2H* z>&-2T|2w;ATo(U=$;?hYxANjc%P;y8mxNB^%=gRF(RC`%(h|r#j~(l@Epr@IRHm!L z;R?i+NEf_V=!-}hOMEPh1~0Tbz~Y;MnySL*>~*^cJ9@C zg}xDm-cecGw1|!r-W{!|Kh-JE5LpKO@D#x!s&ad_r9E8G z_sRpm1x*&yPgB-&W9nr^URAR~t%gk0T8)aT_dMPwlOXGsZPoG1b*|WMpvIdf*3)h$ zU9v+v5x2I(QSqRTdVMdZ6KK~<+x=#e8_q4Qq~mNphiTk)8n`lNI@%zs*d8m`9IM+J ztJxT<*cRPwidAfh6>NyrZHHBDhOV~4EslhH4QnBp{sKqEw888ajslGtKV*fp#l zGr`-Ek_gfoZS~;=PKV`;&f$Zon@L3*)Ce=0WmhQ}yanUO2T#HGqQAapc7pYZ%JuiH zw;=mDB@egcS$vA3MS;onah4MF!M|{+pWJrXo;7eGOp@&Cq`*s@pecG@MlfMVQRTg5 z1`y9V?LSwCm_6}B`D2kS@=ddS!oeOM931?+@c7{1z{g|$X>A^#OtC){rVE2nx(rW# zeDUlXWas^|?e3RtpKn1Gaj|SzNQn}D5U`jwEyU>Ot}8BS1GKETWU-YOP@*l3OBD&+ zTBRIIMt$A|ib7*xz1>NWSiZ4%00%2N#|1R9(HS4m%y|0eYdF6}jDX((&@FskJ&v0IH1|fx4PpBPoq^1X zm~~trC@v~IT}&qUgZIYnHniKoRfHPLZF|t? z%~E6AjIIvCayDcuqx$90#sJw1cfyg{7rWiu=->O&deGeuwJM_H*wavDm0;U$p=xd= z-pQF=wQ}qa>g5e{h5nkyFW({par*fi1TOgUd7yf2qJTQ2y~V$kK+fY68S7uPZyE_J+iUL-PZ6t--$ZhR%wQx&N2N zo6i0Im)8Biz1=6f_WkesqsM#q`+s-wd^P)jS-kPhJ`LnIwX>JS9k=mx208ZZ4F1tS z_20Mo1J4X?oV4lOO@sjUC-j27YyM+bJy>HC!ukNPq zX#Q(g%&(c)u#U2&rte$@eY5Rofsy&pe;J$KqgopgED;SNS6OlS6$}dYG>(iEC(f~P zRxFq&)Gq!+#%2{&D!P5!H?Z&-V7h>b7E|KH7Rw$y ze4V9ET;lz`I{4G710@5uQwB$Ij45d_IaXoiw+%mOIDIBiH0p;_0tt>Zo0$gRZ z>8CuJN4V(Ca;vIhpNr?ib=y3XAqqPOamyIiVi#TzG_S_*Qk^+IS75bWud&G-7|pC# zOgi|c9k*NS9?a_;jRB&{@EI;_W>4^R6@W1$a8&}(2h3LPZ2x4;K(IeeQdor7fE~(R zuZ0{!?IVx;rxtu2ENfAAm0rOjK00~fETY$)iu`+rL{){t$bO0U9(1O0;^ zW|v`tT!?~CUsNTVdimd4B`>SI9;@hMl`N$x{7t3kXy%2-JY!52cy1ZurtHO~E87IC z!e$69$%#bloH}aN#ThWO;m*CN=F}$s*~}o&#?+cOcOA=Ao7I>`r&iRuQ`^c@kvXm0 zZcdtCJ7y&M#yHooDiZyS0E?@xm4H!%%JNl4zrRH={-wYKy@Kg=UHb4JXbg6Kbd#u` za=0CpC2Q%X2))JBRG*yqcst9eCZmcr zotN<wDS^6qQ?xEDSg54-854q7{l1LQG9USXB9OmkM_aE|6#ajiSh6mIdUBL(VX=TlxL z1)kGM66)d3k9c(|d8Mzzv-ZEM!Emq4-APO;B`%8oI{K~I6=yBG+}E9$OGYt8xvNHT%d@=`ggrm zs3T$TdUKgf7Fhc%Ka4>zB=dZyz9v+83271L*=i#33X|D@;ry(0?$+s)CC(V2;2ADZ zM5ronZ;^oZjX5q|*`Vu5qE(09J23AZnD-9M&+EW6&JpvzZ=N}pjtaWw9k4Mv2H%Tg z&)*v~>Rz<(l^g9%8d>GI5AFM%(T~{rU>xZ;k=$y6%QvwN^ERs{?S-)suu`B~|DJqmKx~JaGF$e^AwWZ0C)_;M~f7beiE?q`H z;=rAZL0+9I;D0p>oV!!?Rc~}u^?LuV83~ezeM0t|kPdrhPK3d5%z?wF<26Ueoo6dvdVyFIL*5=~hc8SN)yts@`~) zB`{RClnFnxm{4dHn(qkpx4@I3Q32l8snRbCb+)jc6SB^5rk1}nt5;cQI){Q87SE4r zmtleawO|TG>fL64Yd3z`)6>5V?<~Sw`PeayOT|6c+qHez-Oqm+=l{fg`OXmPZ+q<0wtTC#79&Q);VeL5BS1 z9aT+)gd$0DNs1U+b-}N_9{# zTI-3bceneI)g-*}8(S z#M+0X8bYg_c=JzTCq+iGC`)cRi+Lw73BPMHb@yB&p^QOrc6?$*I_3$EFrn`~2St7A zC>Kxb__t4rDW mK5Zt2rdgMLX@|%CbN}2w_s{*qp8qcZ0RR7i@Hg53rUC${-@b(a literal 0 HcmV?d00001 diff --git a/stable/phpldapadmin/1.8.1/ix_values.yaml b/stable/phpldapadmin/1.8.1/ix_values.yaml new file mode 100644 index 00000000000..40bc13dfe12 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/ix_values.yaml @@ -0,0 +1,16 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: osixia/phpldapadmin + pullPolicy: IfNotPresent + tag: "0.9.0" + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/phpldapadmin/1.8.1/questions.yaml b/stable/phpldapadmin/1.8.1/questions.yaml new file mode 100644 index 00000000000..35dd3be31cb --- /dev/null +++ b/stable/phpldapadmin/1.8.1/questions.yaml @@ -0,0 +1,1000 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: PHPLDAPADMIN_HTTPS + label: "PHPLDAPADMIN_HTTPS" + schema: + type: string + required: true + default: "false" + - variable: PHPLDAPADMIN_TRUST_PROXY_SSL + label: "PHPLDAPADMIN_TRUST_PROXY_SSL" + schema: + type: string + required: true + default: "true" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36093 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/phpldapadmin/1.8.1/templates/common.yaml b/stable/phpldapadmin/1.8.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/phpldapadmin/1.8.1/test_values.yaml b/stable/phpldapadmin/1.8.1/test_values.yaml new file mode 100644 index 00000000000..99345a76f15 --- /dev/null +++ b/stable/phpldapadmin/1.8.1/test_values.yaml @@ -0,0 +1,21 @@ +# Default values for Jackett. + +image: + repository: osixia/phpldapadmin + pullPolicy: IfNotPresent + tag: "0.9.0" + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 80 + +env: + PHPLDAPADMIN_HTTPS: "false" + PHPLDAPADMIN_TRUST_PROXY_SSL: "true" diff --git a/stable/phpldapadmin/1.8.1/values.yaml b/stable/phpldapadmin/1.8.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/piaware/1.9.1/CONFIG.md b/stable/piaware/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/piaware/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/piaware/1.9.1/Chart.lock b/stable/piaware/1.9.1/Chart.lock new file mode 100644 index 00000000000..e1b695c3a5d --- /dev/null +++ b/stable/piaware/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:01:59.276569912Z" diff --git a/stable/piaware/1.9.1/Chart.yaml b/stable/piaware/1.9.1/Chart.yaml new file mode 100644 index 00000000000..daabb47cb2e --- /dev/null +++ b/stable/piaware/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Program for forwarding ADS-B data to FlightAware +home: https://github.com/truechartsapps/tree/master/charts/incubator/piaware +icon: https://pbs.twimg.com/profile_images/964269455483088897/mr2UgvfG_400x400.jpg +keywords: +- piaware +- flight-aware +- flight-tracker +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: piaware +sources: +- https://github.com/flightaware/piaware +version: 1.9.1 diff --git a/stable/piaware/1.9.1/README.md b/stable/piaware/1.9.1/README.md new file mode 100644 index 00000000000..0096a3c68f4 --- /dev/null +++ b/stable/piaware/1.9.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Program for forwarding ADS-B data to FlightAware + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/piaware/1.9.1/app-readme.md b/stable/piaware/1.9.1/app-readme.md new file mode 100644 index 00000000000..37ccf6c1fb5 --- /dev/null +++ b/stable/piaware/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Program for forwarding ADS-B data to FlightAware + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Program for forwarding ADS-B data to FlightAware diff --git a/stable/piaware/1.9.1/charts/common-6.12.1.tgz b/stable/piaware/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/piaware/1.9.1/ci/ct-values.yaml b/stable/piaware/1.9.1/ci/ct-values.yaml new file mode 100644 index 00000000000..3d1d3eb62f5 --- /dev/null +++ b/stable/piaware/1.9.1/ci/ct-values.yaml @@ -0,0 +1,3 @@ +env: + LAT: "29.9792" + LONG: "31.1342" diff --git a/stable/piaware/1.9.1/ix_values.yaml b/stable/piaware/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..be2e353346b --- /dev/null +++ b/stable/piaware/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: mikenye/piaware + pullPolicy: IfNotPresent + tag: v5.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/piaware/1.9.1/questions.yaml b/stable/piaware/1.9.1/questions.yaml new file mode 100644 index 00000000000..2ca94f6038e --- /dev/null +++ b/stable/piaware/1.9.1/questions.yaml @@ -0,0 +1,1144 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36078 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/piaware/1.9.1/templates/common.yaml b/stable/piaware/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/piaware/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/piaware/1.9.1/test_values.yaml b/stable/piaware/1.9.1/test_values.yaml new file mode 100644 index 00000000000..4b05cb70de5 --- /dev/null +++ b/stable/piaware/1.9.1/test_values.yaml @@ -0,0 +1,55 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: mikenye/piaware + # -- image tag + tag: v5.0 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [application docs](https://flightaware.com/adsb/piaware/advanced_configuration) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + + +securityContext: + # -- (bool) Privileged securityContext may be required if USB device is accessed directly through the host machine + privileged: true + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + usb: + enabled: false + type: hostPath + hostPath: /dev/bus/usb/001/004 + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - piaware diff --git a/stable/piaware/1.9.1/values.yaml b/stable/piaware/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/plex/5.11.1/CONFIG.md b/stable/plex/5.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/plex/5.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/plex/5.11.1/Chart.lock b/stable/plex/5.11.1/Chart.lock new file mode 100644 index 00000000000..f321d16a9b4 --- /dev/null +++ b/stable/plex/5.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:04.211762262Z" diff --git a/stable/plex/5.11.1/Chart.yaml b/stable/plex/5.11.1/Chart.yaml new file mode 100644 index 00000000000..26a12245f61 --- /dev/null +++ b/stable/plex/5.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/plex +icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png +keywords: +- plex +- plex-media-server +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: plex +sources: null +type: application +version: 5.11.1 diff --git a/stable/plex/5.11.1/README.md b/stable/plex/5.11.1/README.md new file mode 100644 index 00000000000..968a6711f52 --- /dev/null +++ b/stable/plex/5.11.1/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 5.8.7](https://img.shields.io/badge/Version-5.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/plex/5.11.1/app-readme.md b/stable/plex/5.11.1/app-readme.md new file mode 100644 index 00000000000..f23536e413c --- /dev/null +++ b/stable/plex/5.11.1/app-readme.md @@ -0,0 +1,4 @@ +Plex Media Server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Plex Media Server diff --git a/stable/plex/5.11.1/charts/common-6.12.1.tgz b/stable/plex/5.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/plex/5.11.1/ix_values.yaml b/stable/plex/5.11.1/ix_values.yaml new file mode 100644 index 00000000000..f5d37e31294 --- /dev/null +++ b/stable/plex/5.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.24.1.4931-1a38e63c6 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/plex/5.11.1/questions.yaml b/stable/plex/5.11.1/questions.yaml new file mode 100644 index 00000000000..72f5527cabd --- /dev/null +++ b/stable/plex/5.11.1/questions.yaml @@ -0,0 +1,1132 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/web" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: ADVERTISE_IP + label: "Advertise IP" + description: "IP to advertise to Plex" + schema: + type: string + default: "" + - variable: ALLOWED_NETWORKS + label: "Allowed Networks" + description: "Networks allowed to connect to plex. Add your local network IP to this list" + schema: + type: string + default: "172.16.0.0/16,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" + - variable: PLEX_CLAIM + label: "Plex Claim Token" + description: "Claim token to use to register the plex server (Max. 4 minutes old!)" + schema: + type: string + default: "" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 32400 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 32400 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/plex/5.11.1/templates/common.yaml b/stable/plex/5.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/plex/5.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/plex/5.11.1/test_values.yaml b/stable/plex/5.11.1/test_values.yaml new file mode 100644 index 00000000000..fec95290dd5 --- /dev/null +++ b/stable/plex/5.11.1/test_values.yaml @@ -0,0 +1,34 @@ +# Default values for Plex. + +image: + repository: ghcr.io/k8s-at-home/plex + pullPolicy: IfNotPresent + tag: v1.24.1.4931-1a38e63c6 + +strategy: + type: Recreate + +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] + +service: + main: + ports: + main: + port: 32400 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +env: + ALLOWED_NETWORKS: "172.16.0.0/16" diff --git a/stable/plex/5.11.1/values.yaml b/stable/plex/5.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/podgrab/4.11.1/CONFIG.md b/stable/podgrab/4.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/podgrab/4.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/podgrab/4.11.1/Chart.lock b/stable/podgrab/4.11.1/Chart.lock new file mode 100644 index 00000000000..811b204df12 --- /dev/null +++ b/stable/podgrab/4.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:09.099214769Z" diff --git a/stable/podgrab/4.11.1/Chart.yaml b/stable/podgrab/4.11.1/Chart.yaml new file mode 100644 index 00000000000..62fb5f97a11 --- /dev/null +++ b/stable/podgrab/4.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A self-hosted podcast manager to download episodes as soon as they become + live. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/podgrab +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Podcasts_%28iOS%29.svg/1024px-Podcasts_%28iOS%29.svg.png +keywords: +- podgrab +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 20650065+warllo54@users.noreply.github.com + name: warllo54 + url: truecharts.org +name: podgrab +sources: +- https://github.com/akhilrex/podgrab +- https://hub.docker.com/r/akhilrex/podgrab +type: application +version: 4.11.1 diff --git a/stable/podgrab/4.11.1/README.md b/stable/podgrab/4.11.1/README.md new file mode 100644 index 00000000000..926b4d52fa3 --- /dev/null +++ b/stable/podgrab/4.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 4.8.7](https://img.shields.io/badge/Version-4.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A self-hosted podcast manager to download episodes as soon as they become live. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/podgrab/4.11.1/app-readme.md b/stable/podgrab/4.11.1/app-readme.md new file mode 100644 index 00000000000..83198f07f8d --- /dev/null +++ b/stable/podgrab/4.11.1/app-readme.md @@ -0,0 +1,4 @@ +A self-hosted podcast manager to download episodes as soon as they become live. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A self-hosted podcast manager to download episodes as soon as they become diff --git a/stable/podgrab/4.11.1/charts/common-6.12.1.tgz b/stable/podgrab/4.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/podgrab/4.11.1/ix_values.yaml b/stable/podgrab/4.11.1/ix_values.yaml new file mode 100644 index 00000000000..30b72ab29c1 --- /dev/null +++ b/stable/podgrab/4.11.1/ix_values.yaml @@ -0,0 +1,26 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: akhilrex/podgrab + pullPolicy: Always + tag: 1.0.0 + + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/podgrab/4.11.1/questions.yaml b/stable/podgrab/4.11.1/questions.yaml new file mode 100644 index 00000000000..32fec4c93ed --- /dev/null +++ b/stable/podgrab/4.11.1/questions.yaml @@ -0,0 +1,1113 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PASSWORD + label: "Password" + description: "Desired Password" + schema: + type: string + default: "" + required: false + - variable: CHECK_FREQUENCY + label: "Update Frequency" + description: "Interval to check for new podcasts" + schema: + type: int + default: 240 + required: true + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36047 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/podgrab/4.11.1/templates/common.yaml b/stable/podgrab/4.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/podgrab/4.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/podgrab/4.11.1/test_values.yaml b/stable/podgrab/4.11.1/test_values.yaml new file mode 100644 index 00000000000..41b324a9612 --- /dev/null +++ b/stable/podgrab/4.11.1/test_values.yaml @@ -0,0 +1,61 @@ +# Default values for podgrab. + +image: + repository: akhilrex/podgrab + pullPolicy: Always + tag: 1.0.0 + +strategy: + type: Recreate + +# Configure the Security Context for the Pod +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + +service: + main: + ports: + main: + port: 8080 + tcp: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP + +env: + PASSWORD: secretpasswordgoeshere + CHECK_FREQUENCY: 240 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +hostPathMounts: + - name: assets + enabled: true + mountPath: "/assets" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +probes: + liveness: + enabled: false + + readiness: + enabled: false + + startup: + enabled: false diff --git a/stable/podgrab/4.11.1/values.yaml b/stable/podgrab/4.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/postgresql/1.5.1/CONFIG.md b/stable/postgresql/1.5.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/postgresql/1.5.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/postgresql/1.5.1/Chart.lock b/stable/postgresql/1.5.1/Chart.lock new file mode 100644 index 00000000000..9b4f7828091 --- /dev/null +++ b/stable/postgresql/1.5.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:14.013170097Z" diff --git a/stable/postgresql/1.5.1/Chart.yaml b/stable/postgresql/1.5.1/Chart.yaml new file mode 100644 index 00000000000..4510d755e8f --- /dev/null +++ b/stable/postgresql/1.5.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: PostgresSQL +home: https://github.com/truecharts/apps/tree/master/stable/postgres +icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png +keywords: +- postgres +- postgressql +- dtabase +- sql +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: postgresql +sources: +- https://www.postgresql.org/ +type: application +version: 1.5.1 diff --git a/stable/postgresql/1.5.1/README.md b/stable/postgresql/1.5.1/README.md new file mode 100644 index 00000000000..a31511f2901 --- /dev/null +++ b/stable/postgresql/1.5.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.2.7](https://img.shields.io/badge/Version-1.2.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +PostgresSQL + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/1.5.1/app-readme.md b/stable/postgresql/1.5.1/app-readme.md new file mode 100644 index 00000000000..8a0f12eb322 --- /dev/null +++ b/stable/postgresql/1.5.1/app-readme.md @@ -0,0 +1,4 @@ +PostgresSQL + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +PostgresSQL diff --git a/stable/postgresql/1.5.1/charts/common-6.12.1.tgz b/stable/postgresql/1.5.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/postgresql/1.5.1/ix_values.yaml b/stable/postgresql/1.5.1/ix_values.yaml new file mode 100644 index 00000000000..d0916814ae0 --- /dev/null +++ b/stable/postgresql/1.5.1/ix_values.yaml @@ -0,0 +1,28 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: postgres + pullPolicy: IfNotPresent + tag: "13.4" + + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: '{{ .Values.existingSecret | default ( include "common.names.fullname" . ) }}' + key: "postgresql-password" + +envTpl: + POSTGRES_USER: "{{ .Values.postgresqlUsername }}" + POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" +# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" +# POSTGRESQL_PASSWORD: "{{ .Values.password }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/postgresql/1.5.1/questions.yaml b/stable/postgresql/1.5.1/questions.yaml new file mode 100644 index 00000000000..7c8968f3f44 --- /dev/null +++ b/stable/postgresql/1.5.1/questions.yaml @@ -0,0 +1,1067 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: false + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: postgresqlDatabase + group: "App Configuration" + label: "Database Name" + schema: + type: string + default: "mydatabase" + required: true + - variable: postgresqlUsername + group: "App Configuration" + label: "Database User" + schema: + type: string + default: "mydatabaseuser" + required: true + - variable: postgresqlPassword + group: "App Configuration" + label: "Database Password" + schema: + type: string + default: "" + required: true + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5432 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5432 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36009 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: db + label: "App db Storage" + description: "Stores the Application Database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/postgresql/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: dbbackups + label: "App backup Storage" + description: "Stores the Application backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/dbbackups" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/postgresql/1.5.1/templates/backup-postgres-config.yaml b/stable/postgresql/1.5.1/templates/backup-postgres-config.yaml new file mode 100644 index 00000000000..e52eb2ed5a1 --- /dev/null +++ b/stable/postgresql/1.5.1/templates/backup-postgres-config.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "postgres-backup-hook-config-map" + annotations: + rollme: {{ randAlphaNum 5 | quote }} +data: + entrypoint.sh: |- + #!/bin/sh + cmd="/docker-entrypoint.sh postgres" + eval "${cmd}" & disown; + until pg_isready; do + sleep 5; + done; + pg_dump -U {{ .Values.postgresqlUser }} -d {{ .Values.postgresqlDatabase }} > /dbbackups/$BACKUP_NAME; diff --git a/stable/postgresql/1.5.1/templates/common.yaml b/stable/postgresql/1.5.1/templates/common.yaml new file mode 100644 index 00000000000..9705d4f5fa6 --- /dev/null +++ b/stable/postgresql/1.5.1/templates/common.yaml @@ -0,0 +1,2 @@ + +{{ include "common.all" . }} diff --git a/stable/postgresql/1.5.1/templates/secret.yaml b/stable/postgresql/1.5.1/templates/secret.yaml new file mode 100644 index 00000000000..be7022c005f --- /dev/null +++ b/stable/postgresql/1.5.1/templates/secret.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.names.fullname" . }} + labels: + {{- include "common.labels" . | nindent 4 }} + annotations: + {{- with .Values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +type: Opaque +data: + postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/stable/postgresql/1.5.1/templates/upgrade-backup-postgres-hook.yaml b/stable/postgresql/1.5.1/templates/upgrade-backup-postgres-hook.yaml new file mode 100644 index 00000000000..516ee5180a6 --- /dev/null +++ b/stable/postgresql/1.5.1/templates/upgrade-backup-postgres-hook.yaml @@ -0,0 +1,56 @@ +{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} +{{- if .Values.ixChartContext.isUpgrade -}} +{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} +{{ $values := (. | mustDeepCopy) }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: "pre-upgrade-hook2" + annotations: + "helm.sh/hook": pre-upgrade + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded + rollme: {{ randAlphaNum 5 | quote }} +spec: + template: + metadata: + name: "pre-upgrade-hook2" + spec: + restartPolicy: Never + containers: + - name: {{ .Chart.Name }}-postgres-backup + image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + - name: BACKUP_NAME + value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} + - name: POSTGRES_USER + value: {{ .Values.postgresqlUsername | quote }} + - name: POSTGRES_DB + value: {{ .Values.postgresqlDatabase | quote }} + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} + key: "postgresql-password" + command: + - "/bin/backup_entrypoint.sh" + volumeMounts: + - name: backup-script-configmap + mountPath: /bin/backup_entrypoint.sh + readOnly: true + subPath: entrypoint.sh + {{- with (include "common.controller.volumeMounts" . | trim) }} + {{ nindent 4 . }} + {{- end }} + volumes: + - name: backup-script-configmap + configMap: + defaultMode: 0700 + name: "postgres-backup-hook-config-map" + {{- with (include "common.controller.volumes" . | trim) }} + {{- nindent 2 . }} + {{- end }} +{{- end -}} +{{- end -}} diff --git a/stable/postgresql/1.5.1/test_values.yaml b/stable/postgresql/1.5.1/test_values.yaml new file mode 100644 index 00000000000..d4da044db4c --- /dev/null +++ b/stable/postgresql/1.5.1/test_values.yaml @@ -0,0 +1,50 @@ +image: + repository: postgres + pullPolicy: IfNotPresent + tag: "13.4" + +strategy: + type: Recreate + + +service: + main: + enabled: true + ports: + main: + port: 5432 + +## TODO: Fix the backup-on-upgrade system +enableUpgradeBackup: false + +persistence: + db: + enabled: true + mountPath: "/var/lib/postgresql/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + dbbackups: + enabled: true + mountPath: "/dbbackups" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +postgresqlPassword: "testpass" +postgresqlUsername: "test" +postgresqlDatabase: "test" +existingSecret: "" + + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: '{{ ( tpl .Values.existingSecret $ ) | default ( include "common.names.fullname" . ) }}' + key: "postgresql-password" + +envTpl: + POSTGRES_USER: "{{ .Values.postgresqlUsername }}" + POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" +# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" +# POSTGRESQL_PASSWORD: "{{ .Values.password }}" diff --git a/stable/postgresql/1.5.1/values.yaml b/stable/postgresql/1.5.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pretend-youre-xyzzy/1.9.1/CONFIG.md b/stable/pretend-youre-xyzzy/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pretend-youre-xyzzy/1.9.1/Chart.lock b/stable/pretend-youre-xyzzy/1.9.1/Chart.lock new file mode 100644 index 00000000000..41453f9e8c8 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:02:18.860753482Z" diff --git a/stable/pretend-youre-xyzzy/1.9.1/Chart.yaml b/stable/pretend-youre-xyzzy/1.9.1/Chart.yaml new file mode 100644 index 00000000000..06eddb4f796 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: pretend-youre-xyzzy, a cards against humanity clone +home: https://github.com/truechartsapps/tree/master/charts/incubator/pretend-youre-xyzzy +icon: https://apk-google.com/wp-content/uploads/2020/12/Client-for-Pretend-Youre-Xyzzy-open-source-5.0.1.png +keywords: +- pretend-youre-xyzzy +- cards +- against +- humanity +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: pretend-youre-xyzzy +sources: +- https://github.com/ajanata/PretendYoureXyzzy +- https://github.com/emcniece/DockerYourXyzzy +version: 1.9.1 diff --git a/stable/pretend-youre-xyzzy/1.9.1/README.md b/stable/pretend-youre-xyzzy/1.9.1/README.md new file mode 100644 index 00000000000..7f57a8118a5 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +pretend-youre-xyzzy, a cards against humanity clone + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pretend-youre-xyzzy/1.9.1/app-readme.md b/stable/pretend-youre-xyzzy/1.9.1/app-readme.md new file mode 100644 index 00000000000..5422ff0e917 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +pretend-youre-xyzzy, a cards against humanity clone + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +pretend-youre-xyzzy, a cards against humanity clone diff --git a/stable/pretend-youre-xyzzy/1.9.1/charts/common-6.12.1.tgz b/stable/pretend-youre-xyzzy/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pretend-youre-xyzzy/1.9.1/ix_values.yaml b/stable/pretend-youre-xyzzy/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..bb58fc2f436 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: emcniece/dockeryourxyzzy + pullPolicy: IfNotPresent + tag: "4" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pretend-youre-xyzzy/1.9.1/questions.yaml b/stable/pretend-youre-xyzzy/1.9.1/questions.yaml new file mode 100644 index 00000000000..b58b0e7b747 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/questions.yaml @@ -0,0 +1,987 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36079 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/pretend-youre-xyzzy/1.9.1/templates/common.yaml b/stable/pretend-youre-xyzzy/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pretend-youre-xyzzy/1.9.1/test_values.yaml b/stable/pretend-youre-xyzzy/1.9.1/test_values.yaml new file mode 100644 index 00000000000..2d19c5fed92 --- /dev/null +++ b/stable/pretend-youre-xyzzy/1.9.1/test_values.yaml @@ -0,0 +1,22 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: emcniece/dockeryourxyzzy + # -- image tag + tag: "4" + # -- image pull policy + pullPolicy: IfNotPresent + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 diff --git a/stable/pretend-youre-xyzzy/1.9.1/values.yaml b/stable/pretend-youre-xyzzy/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/protonmail-bridge/1.9.1/CONFIG.md b/stable/protonmail-bridge/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/protonmail-bridge/1.9.1/Chart.lock b/stable/protonmail-bridge/1.9.1/Chart.lock new file mode 100644 index 00000000000..82f676b9fb0 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:02:23.82067286Z" diff --git a/stable/protonmail-bridge/1.9.1/Chart.yaml b/stable/protonmail-bridge/1.9.1/Chart.yaml new file mode 100644 index 00000000000..491aa802fb3 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Container for protonmail bridge to work on the network. +home: https://github.com/truechartsapps/tree/master/charts/incubator/protonmail-bridge +icon: https://raw.githubusercontent.com/ProtonMail/proton-bridge/master/icon.iconset/icon_256x256.png +keywords: +- protonmail +- protonmail-bridge +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: protonmail-bridge +sources: +- https://github.com/shenxn/protonmail-bridge-docker +- https://hub.docker.com/r/shenxn/protonmail-bridge +version: 1.9.1 diff --git a/stable/protonmail-bridge/1.9.1/README.md b/stable/protonmail-bridge/1.9.1/README.md new file mode 100644 index 00000000000..98a0c5b456a --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Container for protonmail bridge to work on the network. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/protonmail-bridge/1.9.1/app-readme.md b/stable/protonmail-bridge/1.9.1/app-readme.md new file mode 100644 index 00000000000..981006447c1 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Container for protonmail bridge to work on the network. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Container for protonmail bridge to work on the network. diff --git a/stable/protonmail-bridge/1.9.1/charts/common-6.12.1.tgz b/stable/protonmail-bridge/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/protonmail-bridge/1.9.1/ix_values.yaml b/stable/protonmail-bridge/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..01362256313 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/ix_values.yaml @@ -0,0 +1,21 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: shenxn/protonmail-bridge + pullPolicy: IfNotPresent + tag: 1.8.7-1 + +service: + main: + ports: + main: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/protonmail-bridge/1.9.1/questions.yaml b/stable/protonmail-bridge/1.9.1/questions.yaml new file mode 100644 index 00000000000..65ec03d2a99 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/questions.yaml @@ -0,0 +1,1116 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "main Service" + description: "The main service" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: false + hidden: true + - variable: smtp + label: "smtp Service" + description: "The smtp service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: smtp + label: "smtp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 25 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 25 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/protonmail-bridge/1.9.1/templates/common.yaml b/stable/protonmail-bridge/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/protonmail-bridge/1.9.1/test_values.yaml b/stable/protonmail-bridge/1.9.1/test_values.yaml new file mode 100644 index 00000000000..5ecf3d90d8e --- /dev/null +++ b/stable/protonmail-bridge/1.9.1/test_values.yaml @@ -0,0 +1,43 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: shenxn/protonmail-bridge + # -- image tag + tag: 1.8.7-1 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + enabled: false + smtp: + enabled: true + protocol: TCP + port: 25 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: /root + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/protonmail-bridge/1.9.1/values.yaml b/stable/protonmail-bridge/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/prowlarr/1.11.1/CONFIG.md b/stable/prowlarr/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/prowlarr/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/prowlarr/1.11.1/Chart.lock b/stable/prowlarr/1.11.1/Chart.lock new file mode 100644 index 00000000000..fc1574da11b --- /dev/null +++ b/stable/prowlarr/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:28.684471601Z" diff --git a/stable/prowlarr/1.11.1/Chart.yaml b/stable/prowlarr/1.11.1/Chart.yaml new file mode 100644 index 00000000000..38a197504d6 --- /dev/null +++ b/stable/prowlarr/1.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Indexer manager/proxy built on the popular arr net base stack to integrate + with your various PVR apps. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/prowlarr +icon: https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/400.png +keywords: +- prowlarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: prowlarr +sources: +- https://github.com/Prowlarr/Prowlarr +- https://github.com/k8s-at-home/container-images +version: 1.11.1 diff --git a/stable/prowlarr/1.11.1/README.md b/stable/prowlarr/1.11.1/README.md new file mode 100644 index 00000000000..21c86132be6 --- /dev/null +++ b/stable/prowlarr/1.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.8.8](https://img.shields.io/badge/Version-1.8.8-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Indexer manager/proxy built on the popular arr net base stack to integrate with your various PVR apps. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/prowlarr/1.11.1/app-readme.md b/stable/prowlarr/1.11.1/app-readme.md new file mode 100644 index 00000000000..4fc956fbab1 --- /dev/null +++ b/stable/prowlarr/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Indexer manager/proxy built on the popular arr net base stack to integrate with your various PVR apps. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Indexer manager/proxy built on the popular arr net base stack to integrate diff --git a/stable/prowlarr/1.11.1/charts/common-6.12.1.tgz b/stable/prowlarr/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/prowlarr/1.11.1/ix_values.yaml b/stable/prowlarr/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..4dee41c41de --- /dev/null +++ b/stable/prowlarr/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/prowlarr + # -- image tag + tag: v0.1.1.885 + # -- image pull policy + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/prowlarr/1.11.1/questions.yaml b/stable/prowlarr/1.11.1/questions.yaml new file mode 100644 index 00000000000..56f0fa0e634 --- /dev/null +++ b/stable/prowlarr/1.11.1/questions.yaml @@ -0,0 +1,1106 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9696 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9696 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36081 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/prowlarr/1.11.1/templates/common.yaml b/stable/prowlarr/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/prowlarr/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/prowlarr/1.11.1/test_values.yaml b/stable/prowlarr/1.11.1/test_values.yaml new file mode 100644 index 00000000000..5138b35093a --- /dev/null +++ b/stable/prowlarr/1.11.1/test_values.yaml @@ -0,0 +1,48 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/prowlarr + # -- image tag + tag: v0.1.1.885 + # -- image pull policy + pullPolicy: IfNotPresent + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9696 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/prowlarr/1.11.1/values.yaml b/stable/prowlarr/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/pyload/1.9.1/CONFIG.md b/stable/pyload/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/pyload/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/pyload/1.9.1/Chart.lock b/stable/pyload/1.9.1/Chart.lock new file mode 100644 index 00000000000..af02a2653a0 --- /dev/null +++ b/stable/pyload/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:02:33.529390603Z" diff --git a/stable/pyload/1.9.1/Chart.yaml b/stable/pyload/1.9.1/Chart.yaml new file mode 100644 index 00000000000..f9f1b6cffe4 --- /dev/null +++ b/stable/pyload/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: pyLoad is a Free and Open Source download manager written in Python and + designed to be extremely lightweight, easily extensible and fully manageable via + web. +home: https://github.com/truechartsapps/tree/master/charts/incubator/pyload +icon: https://avatars.githubusercontent.com/u/3521496?s=200&v=4 +keywords: +- pyload +- download +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: pyload +sources: +- https://github.com/pyload/pyload +- https://hub.docker.com/r/linuxserver/pyload +version: 1.9.1 diff --git a/stable/pyload/1.9.1/README.md b/stable/pyload/1.9.1/README.md new file mode 100644 index 00000000000..688279fe2da --- /dev/null +++ b/stable/pyload/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/pyload/1.9.1/app-readme.md b/stable/pyload/1.9.1/app-readme.md new file mode 100644 index 00000000000..9257e28618f --- /dev/null +++ b/stable/pyload/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +pyLoad is a Free and Open Source download manager written in Python and diff --git a/stable/pyload/1.9.1/charts/common-6.12.1.tgz b/stable/pyload/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/pyload/1.9.1/ix_values.yaml b/stable/pyload/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..997d5e1d399 --- /dev/null +++ b/stable/pyload/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/pyload + pullPolicy: IfNotPresent + tag: version-5de90278 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/pyload/1.9.1/questions.yaml b/stable/pyload/1.9.1/questions.yaml new file mode 100644 index 00000000000..2fc05f70634 --- /dev/null +++ b/stable/pyload/1.9.1/questions.yaml @@ -0,0 +1,1116 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36082 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/pyload/1.9.1/templates/common.yaml b/stable/pyload/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/pyload/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/pyload/1.9.1/test_values.yaml b/stable/pyload/1.9.1/test_values.yaml new file mode 100644 index 00000000000..f78d6ae1750 --- /dev/null +++ b/stable/pyload/1.9.1/test_values.yaml @@ -0,0 +1,44 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/pyload + # -- image tag + tag: version-5de90278 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-pyload#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8000 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + downloads: + enabled: false + mountPath: /downloads diff --git a/stable/pyload/1.9.1/values.yaml b/stable/pyload/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/qbittorrent/6.11.1/CONFIG.md b/stable/qbittorrent/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/qbittorrent/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/qbittorrent/6.11.1/Chart.lock b/stable/qbittorrent/6.11.1/Chart.lock new file mode 100644 index 00000000000..25415234cb6 --- /dev/null +++ b/stable/qbittorrent/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:38.416322628Z" diff --git a/stable/qbittorrent/6.11.1/Chart.yaml b/stable/qbittorrent/6.11.1/Chart.yaml new file mode 100644 index 00000000000..39929431297 --- /dev/null +++ b/stable/qbittorrent/6.11.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: qBittorrent is a cross-platform free and open-source BitTorrent client +home: https://github.com/truecharts/apps/tree/master/charts/incubator/qbittorrent +icon: https://cloud.githubusercontent.com/assets/14862437/23586868/89ef2922-01c4-11e7-869c-52aafcece17f.png +keywords: +- qbittorrent +- torrrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: qbittorrent +sources: null +type: application +version: 6.11.1 diff --git a/stable/qbittorrent/6.11.1/README.md b/stable/qbittorrent/6.11.1/README.md new file mode 100644 index 00000000000..ea0b613ac80 --- /dev/null +++ b/stable/qbittorrent/6.11.1/README.md @@ -0,0 +1,38 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +qBittorrent is a cross-platform free and open-source BitTorrent client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/qbittorrent/6.11.1/app-readme.md b/stable/qbittorrent/6.11.1/app-readme.md new file mode 100644 index 00000000000..808f09ea068 --- /dev/null +++ b/stable/qbittorrent/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +qBittorrent is a cross-platform free and open-source BitTorrent client + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +qBittorrent is a cross-platform free and open-source BitTorrent client diff --git a/stable/qbittorrent/6.11.1/charts/common-6.12.1.tgz b/stable/qbittorrent/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/qbittorrent/6.11.1/ix_values.yaml b/stable/qbittorrent/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..5d593f0e21d --- /dev/null +++ b/stable/qbittorrent/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/qbittorrent + pullPolicy: IfNotPresent + tag: v4.3.7 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/qbittorrent/6.11.1/questions.yaml b/stable/qbittorrent/6.11.1/questions.yaml new file mode 100644 index 00000000000..b9ca25a0a83 --- /dev/null +++ b/stable/qbittorrent/6.11.1/questions.yaml @@ -0,0 +1,1250 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36039 + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/qbittorrent/6.11.1/templates/_configmap.tpl b/stable/qbittorrent/6.11.1/templates/_configmap.tpl new file mode 100644 index 00000000000..d52c601514c --- /dev/null +++ b/stable/qbittorrent/6.11.1/templates/_configmap.tpl @@ -0,0 +1,32 @@ +{{/* Define the configmap */}} +{{- define "qbittorrent.configmap" -}} + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-scripts + labels: + {{- include "common.labels" . | nindent 4 }} +data: + {{- $bittorrentPort := "" -}} + {{- $bittorrentPort = .Values.service.torrent.ports.tcp.port -}} + {{- if $bittorrentPort }} + 31-update-port: |- + #!/bin/bash + QBITTORRENT_CONFIGFILE="/config/qBittorrent/qBittorrent.conf" + INCOMING_PORT={{- $bittorrentPort }} + + incoming_port_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin='${INCOMING_PORT}) + if [[ -z "${incoming_port_exist}" ]]; then + incoming_exist=$(cat ${QBITTORRENT_CONFIGFILE} | grep -m 1 'Connection\\PortRangeMin') + if [[ ! -z "${incoming_exist}" ]]; then + # Get line number of Incoming + LINE_NUM=$(grep -Fn -m 1 'Connection\PortRangeMin' ${QBITTORRENT_CONFIGFILE} | cut -d: -f 1) + sed -i "${LINE_NUM}s@.*@Connection\\\PortRangeMin=${INCOMING_PORT}@" ${QBITTORRENT_CONFIGFILE} + else + echo "Connection\\PortRangeMin=${INCOMING_PORT}" >> ${QBITTORRENT_CONFIGFILE} + fi + fi + {{- end }} +{{- end -}} diff --git a/stable/qbittorrent/6.11.1/templates/common.yaml b/stable/qbittorrent/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..bcb4715aa18 --- /dev/null +++ b/stable/qbittorrent/6.11.1/templates/common.yaml @@ -0,0 +1,6 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} + + +{{/* Render the configmap */}} +{{ include "qbittorrent.configmap" . }} diff --git a/stable/qbittorrent/6.11.1/test_values.yaml b/stable/qbittorrent/6.11.1/test_values.yaml new file mode 100644 index 00000000000..a33e523251a --- /dev/null +++ b/stable/qbittorrent/6.11.1/test_values.yaml @@ -0,0 +1,54 @@ +# Default values for qbittorrent. + +image: + repository: ghcr.io/k8s-at-home/qbittorrent + pullPolicy: IfNotPresent + tag: v4.3.7 + +strategy: + type: Recreate + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + # UMASK: 022 + +service: + main: + ports: + main: + port: 8080 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 6881 + protocol: TCP + udp: + enabled: true + port: 6881 + protocol: UDP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +additionalVolumes: + - name: qbittorrent-scripts + emptyDir: {} + ## When you want to enable automatic port configuration at startup, adjust this to: + # configMap: + # name: -scripts + # defaultMode: 511 + +additionalVolumeMounts: + - mountPath: /config/custom-cont-init.d + name: qbittorrent-scripts diff --git a/stable/qbittorrent/6.11.1/values.yaml b/stable/qbittorrent/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/radarr/6.11.1/CONFIG.md b/stable/radarr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/radarr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/radarr/6.11.1/Chart.lock b/stable/radarr/6.11.1/Chart.lock new file mode 100644 index 00000000000..0f44d2a3b44 --- /dev/null +++ b/stable/radarr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:43.326167147Z" diff --git a/stable/radarr/6.11.1/Chart.yaml b/stable/radarr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..5232a060177 --- /dev/null +++ b/stable/radarr/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: "A fork of Sonarr to work with movies \xE0 la Couchpotato" +home: https://github.com/truecharts/apps/tree/master/charts/stable/radarr +icon: https://nzbusenet.com/wp-content/uploads/2017/10/radarr-logo.png +keywords: +- radarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: radarr +sources: +- https://github.com/Radarr/Radarr +type: application +version: 6.11.1 diff --git a/stable/radarr/6.11.1/README.md b/stable/radarr/6.11.1/README.md new file mode 100644 index 00000000000..e93c0fe58eb --- /dev/null +++ b/stable/radarr/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Sonarr to work with movies à la Couchpotato + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/radarr/6.11.1/app-readme.md b/stable/radarr/6.11.1/app-readme.md new file mode 100644 index 00000000000..47308820016 --- /dev/null +++ b/stable/radarr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +A fork of Sonarr to work with movies à la Couchpotato + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +"A fork of Sonarr to work with movies \xE0 la Couchpotato" diff --git a/stable/radarr/6.11.1/charts/common-6.12.1.tgz b/stable/radarr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/radarr/6.11.1/ix_values.yaml b/stable/radarr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..095e494f526 --- /dev/null +++ b/stable/radarr/6.11.1/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/radarr + pullPolicy: IfNotPresent + tag: v3.2.2.5080 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:7878/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/radarr/6.11.1/questions.yaml b/stable/radarr/6.11.1/questions.yaml new file mode 100644 index 00000000000..1a4eabcdc33 --- /dev/null +++ b/stable/radarr/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 7878 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36016 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/radarr/6.11.1/templates/common.yaml b/stable/radarr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/radarr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/radarr/6.11.1/test_values.yaml b/stable/radarr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..68a42ce833b --- /dev/null +++ b/stable/radarr/6.11.1/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/k8s-at-home/radarr + pullPolicy: IfNotPresent + tag: v3.2.2.5080 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 7878 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:7878/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/radarr/6.11.1/values.yaml b/stable/radarr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/readarr/6.11.1/CONFIG.md b/stable/readarr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/readarr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/readarr/6.11.1/Chart.lock b/stable/readarr/6.11.1/Chart.lock new file mode 100644 index 00000000000..24c4cf4baad --- /dev/null +++ b/stable/readarr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:48.231698875Z" diff --git a/stable/readarr/6.11.1/Chart.yaml b/stable/readarr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..4e8af434bd9 --- /dev/null +++ b/stable/readarr/6.11.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A fork of Radarr to work with Books & AudioBooks +home: https://github.com/truecharts/apps/tree/master/charts/incubator/readarr +icon: https://github.com/Readarr/Readarr/blob/develop/Logo/1024.png?raw=true +keywords: +- readarr +- torrent +- usenet +- AudioBooks +- ebooks +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: readarr +sources: +- https://github.com/Readarr/Readarr +- https://readarr.com +type: application +version: 6.11.1 diff --git a/stable/readarr/6.11.1/README.md b/stable/readarr/6.11.1/README.md new file mode 100644 index 00000000000..64bcc5a8d55 --- /dev/null +++ b/stable/readarr/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Radarr to work with Books & AudioBooks + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/readarr/6.11.1/app-readme.md b/stable/readarr/6.11.1/app-readme.md new file mode 100644 index 00000000000..d38457d5c3c --- /dev/null +++ b/stable/readarr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +A fork of Radarr to work with Books & AudioBooks + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A fork of Radarr to work with Books & AudioBooks diff --git a/stable/readarr/6.11.1/charts/common-6.12.1.tgz b/stable/readarr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/readarr/6.11.1/ix_values.yaml b/stable/readarr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..297cee9e7f3 --- /dev/null +++ b/stable/readarr/6.11.1/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.944 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/readarr/6.11.1/questions.yaml b/stable/readarr/6.11.1/questions.yaml new file mode 100644 index 00000000000..da6f4580dbd --- /dev/null +++ b/stable/readarr/6.11.1/questions.yaml @@ -0,0 +1,1105 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8787 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36038 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/readarr/6.11.1/templates/common.yaml b/stable/readarr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/readarr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/readarr/6.11.1/test_values.yaml b/stable/readarr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..28d1d9f897c --- /dev/null +++ b/stable/readarr/6.11.1/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Radarr. + +image: + repository: ghcr.io/k8s-at-home/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.944 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8787 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/readarr/6.11.1/values.yaml b/stable/readarr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/reg/1.11.1/CONFIG.md b/stable/reg/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/reg/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/reg/1.11.1/Chart.lock b/stable/reg/1.11.1/Chart.lock new file mode 100644 index 00000000000..7519f64ee13 --- /dev/null +++ b/stable/reg/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:02:53.115380965Z" diff --git a/stable/reg/1.11.1/Chart.yaml b/stable/reg/1.11.1/Chart.yaml new file mode 100644 index 00000000000..c09f7bf0144 --- /dev/null +++ b/stable/reg/1.11.1/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: Docker registry v2 command line client and repo listing generator with + security checks. +home: https://github.com/truecharts/apps/tree/master/charts/incubator/reg +icon: https://avatars.githubusercontent.com/u/37218338 +keywords: +- reg +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: reg +sources: +- https://github.com/genuinetools/reg +- https://github.com/k8s-at-home/container-images/ +version: 1.11.1 diff --git a/stable/reg/1.11.1/README.md b/stable/reg/1.11.1/README.md new file mode 100644 index 00000000000..3d6be1538f8 --- /dev/null +++ b/stable/reg/1.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Docker registry v2 command line client and repo listing generator with security checks. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/reg/1.11.1/app-readme.md b/stable/reg/1.11.1/app-readme.md new file mode 100644 index 00000000000..911c539f018 --- /dev/null +++ b/stable/reg/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +Docker registry v2 command line client and repo listing generator with security checks. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Docker registry v2 command line client and repo listing generator with diff --git a/stable/reg/1.11.1/charts/common-6.12.1.tgz b/stable/reg/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/reg/1.11.1/ci/ct-values.yaml b/stable/reg/1.11.1/ci/ct-values.yaml new file mode 100644 index 00000000000..7ec97337b23 --- /dev/null +++ b/stable/reg/1.11.1/ci/ct-values.yaml @@ -0,0 +1,2 @@ +env: + EXTRA_ARGS: "server --registry r.j3ss.co" diff --git a/stable/reg/1.11.1/ix_values.yaml b/stable/reg/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..6ad228ab223 --- /dev/null +++ b/stable/reg/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/reg + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.16.1 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/reg/1.11.1/questions.yaml b/stable/reg/1.11.1/questions.yaml new file mode 100644 index 00000000000..1fd104806ab --- /dev/null +++ b/stable/reg/1.11.1/questions.yaml @@ -0,0 +1,1100 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36083 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/reg/1.11.1/templates/common.yaml b/stable/reg/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/reg/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/reg/1.11.1/test_values.yaml b/stable/reg/1.11.1/test_values.yaml new file mode 100644 index 00000000000..93668d4a17f --- /dev/null +++ b/stable/reg/1.11.1/test_values.yaml @@ -0,0 +1,40 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/reg + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v0.16.1 + +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + +# -- environment variables. See more environment variables in the [reg documentation](https://github.com/genuinetools/reg). +env: + # -- Set the container timezone + TZ: UTC + # -- Set the server registry + # EXTRA_ARGS: "server --registry r.j3ss.co" + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false diff --git a/stable/reg/1.11.1/values.yaml b/stable/reg/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/resilio-sync/1.9.1/CONFIG.md b/stable/resilio-sync/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/resilio-sync/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/resilio-sync/1.9.1/Chart.lock b/stable/resilio-sync/1.9.1/Chart.lock new file mode 100644 index 00000000000..9f718b010aa --- /dev/null +++ b/stable/resilio-sync/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:02:58.123320732Z" diff --git a/stable/resilio-sync/1.9.1/Chart.yaml b/stable/resilio-sync/1.9.1/Chart.yaml new file mode 100644 index 00000000000..e4f68d77d21 --- /dev/null +++ b/stable/resilio-sync/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Resilio Sync is a fast, reliable, and simple file sync and share solution, + powered by P2P technology +home: https://github.com/truechartsapps/tree/master/charts/incubator/resio-sync +icon: https://blog.resilio.com/wp-content/uploads/2016/06/SyncSymbol-260x260px.png +keywords: +- resilio +- sync +- btsync +- bittorrent +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: resilio-sync +sources: +- https://github.com/orgs/linuxserver/packages/container/package/resilio-sync +version: 1.9.1 diff --git a/stable/resilio-sync/1.9.1/README.md b/stable/resilio-sync/1.9.1/README.md new file mode 100644 index 00000000000..bb7f0dbd01d --- /dev/null +++ b/stable/resilio-sync/1.9.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.6.8](https://img.shields.io/badge/Version-1.6.8-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/resilio-sync/1.9.1/app-readme.md b/stable/resilio-sync/1.9.1/app-readme.md new file mode 100644 index 00000000000..1d2798897c2 --- /dev/null +++ b/stable/resilio-sync/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Resilio Sync is a fast, reliable, and simple file sync and share solution, diff --git a/stable/resilio-sync/1.9.1/charts/common-6.12.1.tgz b/stable/resilio-sync/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/resilio-sync/1.9.1/ix_values.yaml b/stable/resilio-sync/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..72df9483018 --- /dev/null +++ b/stable/resilio-sync/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/linuxserver/resilio-sync + pullPolicy: IfNotPresent + tag: version-2.7.2.1375 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/resilio-sync/1.9.1/questions.yaml b/stable/resilio-sync/1.9.1/questions.yaml new file mode 100644 index 00000000000..94787e3a957 --- /dev/null +++ b/stable/resilio-sync/1.9.1/questions.yaml @@ -0,0 +1,1293 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the userID inside the container" + schema: + type: string + default: "568" + - variable: PGID + label: "PGID" + description: "Sets the GroupID inside the container" + schema: + type: string + default: "568" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8888 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8888 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36088 + - variable: bt-udp + label: "bt-udp Service" + description: "The bt-udp service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: bt-udp + label: "bt-udp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36089 + - variable: bt-tcp + label: "bt-tcp Service" + description: "The bt-tcp service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: bt-tcp + label: "bt-tcp Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 55555 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 55555 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36090 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/resilio-sync/1.9.1/templates/common.yaml b/stable/resilio-sync/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/resilio-sync/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/resilio-sync/1.9.1/test_values.yaml b/stable/resilio-sync/1.9.1/test_values.yaml new file mode 100644 index 00000000000..a11783eba6d --- /dev/null +++ b/stable/resilio-sync/1.9.1/test_values.yaml @@ -0,0 +1,75 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/linuxserver/resilio-sync + # -- image tag + tag: version-2.7.2.1375 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-resilio-sync#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "1001" + # -- Specify the group ID the application will run as + PGID: "1001" + # -- Sets default UMASK + UMASK: # 022 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8888 + bt-tcp: + enabled: false + type: ClusterIP + ports: + bt-tcp: + enabled: true + port: 55555 + protocol: TCP + targetPort: 55555 + bt-udp: + enabled: false + type: ClusterIP + ports: + bt-udp: + enabled: true + port: 55555 + protocol: UDP + targetPort: 55555 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /config + + media: + enabled: false + mountPath: /media + + downloads: + enabled: false + mountPath: /downloads + + sync: + enabled: false + mountPath: /sync diff --git a/stable/resilio-sync/1.9.1/values.yaml b/stable/resilio-sync/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sabnzbd/6.11.1/CONFIG.md b/stable/sabnzbd/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/sabnzbd/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/sabnzbd/6.11.1/Chart.lock b/stable/sabnzbd/6.11.1/Chart.lock new file mode 100644 index 00000000000..8aa28c69264 --- /dev/null +++ b/stable/sabnzbd/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:03.131315532Z" diff --git a/stable/sabnzbd/6.11.1/Chart.yaml b/stable/sabnzbd/6.11.1/Chart.yaml new file mode 100644 index 00000000000..f1bf6daf072 --- /dev/null +++ b/stable/sabnzbd/6.11.1/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Free and easy binary newsreader +home: https://github.com/truecharts/apps/tree/master/charts/incubator/sabnzbd +icon: https://avatars1.githubusercontent.com/u/960698?s=400&v=4 +keywords: +- sabnzbd +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: sabnzbd +sources: +- https://sabnzbd.org/ +type: application +version: 6.11.1 diff --git a/stable/sabnzbd/6.11.1/README.md b/stable/sabnzbd/6.11.1/README.md new file mode 100644 index 00000000000..9fedbe091ca --- /dev/null +++ b/stable/sabnzbd/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Free and easy binary newsreader + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/sabnzbd/6.11.1/app-readme.md b/stable/sabnzbd/6.11.1/app-readme.md new file mode 100644 index 00000000000..aee67ae1e57 --- /dev/null +++ b/stable/sabnzbd/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Free and easy binary newsreader + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Free and easy binary newsreader diff --git a/stable/sabnzbd/6.11.1/charts/common-6.12.1.tgz b/stable/sabnzbd/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/sabnzbd/6.11.1/ix_values.yaml b/stable/sabnzbd/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..30d7a90daa6 --- /dev/null +++ b/stable/sabnzbd/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/sabnzbd + pullPolicy: IfNotPresent + tag: v3.3.1 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/sabnzbd/6.11.1/questions.yaml b/stable/sabnzbd/6.11.1/questions.yaml new file mode 100644 index 00000000000..ab58524e3bb --- /dev/null +++ b/stable/sabnzbd/6.11.1/questions.yaml @@ -0,0 +1,1112 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: HOST_WHITELIST_ENTRIES + label: "HostName Whitelist" + description: "If you use a reverse proxy, you might need to enter your hostname's here (comma seperated)" + schema: + type: string + default: "" + required: false + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36045 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/sabnzbd/6.11.1/templates/common.yaml b/stable/sabnzbd/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/sabnzbd/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sabnzbd/6.11.1/test_values.yaml b/stable/sabnzbd/6.11.1/test_values.yaml new file mode 100644 index 00000000000..87bbd6f6169 --- /dev/null +++ b/stable/sabnzbd/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Sabnzbd. + +image: + repository: ghcr.io/k8s-at-home/sabnzbd + pullPolicy: IfNotPresent + tag: v3.3.1 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/sabnzbd/6.11.1/values.yaml b/stable/sabnzbd/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/ser2sock/1.9.1/CONFIG.md b/stable/ser2sock/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/ser2sock/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/ser2sock/1.9.1/Chart.lock b/stable/ser2sock/1.9.1/Chart.lock new file mode 100644 index 00000000000..920086318b0 --- /dev/null +++ b/stable/ser2sock/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:03:08.148320001Z" diff --git a/stable/ser2sock/1.9.1/Chart.yaml b/stable/ser2sock/1.9.1/Chart.yaml new file mode 100644 index 00000000000..f767f1d91e1 --- /dev/null +++ b/stable/ser2sock/1.9.1/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: Serial to Socket Redirector +home: https://github.com/truechartsapps/tree/master/charts/incubator/ser2sock +icon: https://i.imgur.com/GfZ7McO.png +keywords: +- ser2sock +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: ser2sock +sources: +- https://github.com/nutechsoftware/ser2sock +- https://github.com/tenstartups/ser2sock +version: 1.9.1 diff --git a/stable/ser2sock/1.9.1/README.md b/stable/ser2sock/1.9.1/README.md new file mode 100644 index 00000000000..b9a50757c7e --- /dev/null +++ b/stable/ser2sock/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Serial to Socket Redirector + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/ser2sock/1.9.1/app-readme.md b/stable/ser2sock/1.9.1/app-readme.md new file mode 100644 index 00000000000..275a6b7f550 --- /dev/null +++ b/stable/ser2sock/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +Serial to Socket Redirector + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Serial to Socket Redirector diff --git a/stable/ser2sock/1.9.1/charts/common-6.12.1.tgz b/stable/ser2sock/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/ser2sock/1.9.1/ix_values.yaml b/stable/ser2sock/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..3aab2b9436f --- /dev/null +++ b/stable/ser2sock/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: tenstartups/ser2sock + pullPolicy: IfNotPresent + tag: latest + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/ser2sock/1.9.1/questions.yaml b/stable/ser2sock/1.9.1/questions.yaml new file mode 100644 index 00000000000..1abbb9b4993 --- /dev/null +++ b/stable/ser2sock/1.9.1/questions.yaml @@ -0,0 +1,1165 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: BAUD_RATE + label: "BAUD_RATE" + description: "Serial device baud rate" + schema: + type: string + default: "115200" + - variable: SERIAL_DEVICE + label: "SERIAL_DEVICE" + description: "Path to the serial device" + schema: + type: string + required: true + default: "" + - variable: LISTENER_PORT + label: "LISTENER_PORT" + description: "Port where ser2sock listens" + schema: + type: string + hidden: true + default: "{{ .Values.service.main.ports.main.port }}" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 10000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36084 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/ser2sock/1.9.1/templates/common.yaml b/stable/ser2sock/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/ser2sock/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/ser2sock/1.9.1/test_values.yaml b/stable/ser2sock/1.9.1/test_values.yaml new file mode 100644 index 00000000000..9359ad10eb8 --- /dev/null +++ b/stable/ser2sock/1.9.1/test_values.yaml @@ -0,0 +1,63 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: tenstartups/ser2sock + # -- image tag + tag: latest + # -- image pull policy + pullPolicy: Always + +# -- environment variables. See [image docs](https://github.com/tenstartups/ser2sock) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- Port where ser2sock listens + LISTENER_PORT: "{{ .Values.service.main.ports.main.port }}" + # -- Path to the serial device + SERIAL_DEVICE: "{{ .Values.persistence.usb.mountPath }}" + # -- Serial device baud rate + BAUD_RATE: 115200 + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + enabled: true + protocol: TCP + port: 10000 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + # -- Configure a hostPathMount to mount a USB device in the container. + # @default -- See values.yaml + usb: + enabled: false + type: hostPath + mountPath: /dev/ttyUSB0 + +securityContext: + # -- (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine + privileged: # true + +# -- Affinity constraint rules to place the Pod on a specific node. +# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) +affinity: {} +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - ser2sock-controller diff --git a/stable/ser2sock/1.9.1/values.yaml b/stable/ser2sock/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sonarr/6.11.1/CONFIG.md b/stable/sonarr/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/sonarr/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/sonarr/6.11.1/Chart.lock b/stable/sonarr/6.11.1/Chart.lock new file mode 100644 index 00000000000..435b69b2d75 --- /dev/null +++ b/stable/sonarr/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:13.130970873Z" diff --git a/stable/sonarr/6.11.1/Chart.yaml b/stable/sonarr/6.11.1/Chart.yaml new file mode 100644 index 00000000000..cf4aa63dbaa --- /dev/null +++ b/stable/sonarr/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Smart PVR for newsgroup and bittorrent users +home: https://github.com/truecharts/apps/tree/master/charts/stable/sonarr +icon: https://github.com/Sonarr/Sonarr/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- sonarr +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: sonarr +sources: +- https://github.com/Sonarr/Sonarr +type: application +version: 6.11.1 diff --git a/stable/sonarr/6.11.1/README.md b/stable/sonarr/6.11.1/README.md new file mode 100644 index 00000000000..1168cb7a322 --- /dev/null +++ b/stable/sonarr/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Smart PVR for newsgroup and bittorrent users + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/sonarr/6.11.1/app-readme.md b/stable/sonarr/6.11.1/app-readme.md new file mode 100644 index 00000000000..b8333e42789 --- /dev/null +++ b/stable/sonarr/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Smart PVR for newsgroup and bittorrent users + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Smart PVR for newsgroup and bittorrent users diff --git a/stable/sonarr/6.11.1/charts/common-6.12.1.tgz b/stable/sonarr/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/sonarr/6.11.1/ix_values.yaml b/stable/sonarr/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..9d410bd464d --- /dev/null +++ b/stable/sonarr/6.11.1/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/sonarr + pullPolicy: IfNotPresent + tag: v3.0.6.1265 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8989/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/sonarr/6.11.1/questions.yaml b/stable/sonarr/6.11.1/questions.yaml new file mode 100644 index 00000000000..bcb6f5d2bdf --- /dev/null +++ b/stable/sonarr/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8989 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36017 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/sonarr/6.11.1/templates/common.yaml b/stable/sonarr/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/sonarr/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/sonarr/6.11.1/test_values.yaml b/stable/sonarr/6.11.1/test_values.yaml new file mode 100644 index 00000000000..861e725aa70 --- /dev/null +++ b/stable/sonarr/6.11.1/test_values.yaml @@ -0,0 +1,49 @@ +# Default values for Sonarr. + +image: + repository: ghcr.io/k8s-at-home/sonarr + pullPolicy: IfNotPresent + tag: v3.0.6.1265 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8989 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8989/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/sonarr/6.11.1/values.yaml b/stable/sonarr/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/stash/1.9.1/CONFIG.md b/stable/stash/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/stash/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/stash/1.9.1/Chart.lock b/stable/stash/1.9.1/Chart.lock new file mode 100644 index 00000000000..e25b5d161a0 --- /dev/null +++ b/stable/stash/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:03:18.078806558Z" diff --git a/stable/stash/1.9.1/Chart.yaml b/stable/stash/1.9.1/Chart.yaml new file mode 100644 index 00000000000..e9a792a6e49 --- /dev/null +++ b/stable/stash/1.9.1/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: An organizer for your porn, written in Go +home: https://github.com/truechartsapps/tree/master/charts/incubator/stash +icon: https://raw.githubusercontent.com/stashapp/website/master/images/stash.svg +keywords: +- porn +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: stash +sources: +- https://github.com/stashapp/stash +- https://hub.docker.com/r/stashapp/stash +version: 1.9.1 diff --git a/stable/stash/1.9.1/README.md b/stable/stash/1.9.1/README.md new file mode 100644 index 00000000000..edadc3770c7 --- /dev/null +++ b/stable/stash/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +An organizer for your porn, written in Go + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/stash/1.9.1/app-readme.md b/stable/stash/1.9.1/app-readme.md new file mode 100644 index 00000000000..3bc1ec0fd7b --- /dev/null +++ b/stable/stash/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +An organizer for your porn, written in Go + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +An organizer for your porn, written in Go diff --git a/stable/stash/1.9.1/charts/common-6.12.1.tgz b/stable/stash/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/stash/1.9.1/ci/ct-values.yaml b/stable/stash/1.9.1/ci/ct-values.yaml new file mode 100644 index 00000000000..322b5784ed3 --- /dev/null +++ b/stable/stash/1.9.1/ci/ct-values.yaml @@ -0,0 +1,15 @@ +env: + STASH_PORT: 9999 + STASH_STASH: "/media" + STASH_GENERATED: "/root/.stash/generated" + STASH_METADATA: "/root/.stash/metadata" + STASH_CACHE: "/root/.stash/cache" +persistence: + config: + enabled: true + type: emptyDir + mountPath: /root/.stash + media: + enabled: true + type: emptyDir + mountPath: /media diff --git a/stable/stash/1.9.1/ix_values.yaml b/stable/stash/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..d447043b538 --- /dev/null +++ b/stable/stash/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: stashapp/stash + pullPolicy: IfNotPresent + tag: latest@sha256:020ef83cbcb739e7842bc8282696357f337c61bc85b68cfbc051ad3193d65a20 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/stash/1.9.1/questions.yaml b/stable/stash/1.9.1/questions.yaml new file mode 100644 index 00000000000..6e57bcac6c4 --- /dev/null +++ b/stable/stash/1.9.1/questions.yaml @@ -0,0 +1,1109 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: STASH_PORT + label: "STASH_PORT" + schema: + type: string + default: "9999" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9999 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9999 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36085 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/root/.stash" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/stash/1.9.1/templates/common.yaml b/stable/stash/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/stash/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/stash/1.9.1/test_values.yaml b/stable/stash/1.9.1/test_values.yaml new file mode 100644 index 00000000000..0a12ca10c3d --- /dev/null +++ b/stable/stash/1.9.1/test_values.yaml @@ -0,0 +1,47 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: stashapp/stash + # -- image tag + tag: latest@sha256:020ef83cbcb739e7842bc8282696357f337c61bc85b68cfbc051ad3193d65a20 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [stashapp documentation](https://raw.githubusercontent.com/stashapp/stash/master/docker/production/docker-compose.yml) +# @default -- See below +env: + # -- Set the container port + STASH_PORT: 9999 + # STASH_STASH: + # STASH_GENERATED: + # STASH_METADATA: + # STASH_CACHE: + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9999 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /root/.stash + + media: + enabled: false + mountPath: /media diff --git a/stable/stash/1.9.1/values.yaml b/stable/stash/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/syncthing/6.11.1/CONFIG.md b/stable/syncthing/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/syncthing/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/syncthing/6.11.1/Chart.lock b/stable/syncthing/6.11.1/Chart.lock new file mode 100644 index 00000000000..7161ba6a40d --- /dev/null +++ b/stable/syncthing/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:23.125249217Z" diff --git a/stable/syncthing/6.11.1/Chart.yaml b/stable/syncthing/6.11.1/Chart.yaml new file mode 100644 index 00000000000..23691e45e5f --- /dev/null +++ b/stable/syncthing/6.11.1/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: P2P file synchronization application +home: https://github.com/truecharts/apps/tree/master/charts/stable/syncthing +icon: https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png +keywords: +- syncthing +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: luuk@nieuwdorp.me + name: luuknieuwdorp + url: nieuwdorp.me +name: syncthing +sources: +- https://syncthing.net/ +- https://github.com/syncthing/syncthing +- https://hub.docker.com/r/syncthing/syncthing +type: application +version: 6.11.1 diff --git a/stable/syncthing/6.11.1/README.md b/stable/syncthing/6.11.1/README.md new file mode 100644 index 00000000000..bbbe85b8025 --- /dev/null +++ b/stable/syncthing/6.11.1/README.md @@ -0,0 +1,44 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +P2P file synchronization application + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/syncthing/6.11.1/app-readme.md b/stable/syncthing/6.11.1/app-readme.md new file mode 100644 index 00000000000..9b6ba169503 --- /dev/null +++ b/stable/syncthing/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +P2P file synchronization application + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +P2P file synchronization application diff --git a/stable/syncthing/6.11.1/charts/common-6.12.1.tgz b/stable/syncthing/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/syncthing/6.11.1/ix_values.yaml b/stable/syncthing/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..701758ecde7 --- /dev/null +++ b/stable/syncthing/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.18" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/syncthing/6.11.1/questions.yaml b/stable/syncthing/6.11.1/questions.yaml new file mode 100644 index 00000000000..2bc1c2894db --- /dev/null +++ b/stable/syncthing/6.11.1/questions.yaml @@ -0,0 +1,1362 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8384 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8384 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36024 + - variable: listeners + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + - variable: discovery + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: discovery + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 21027 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 21027 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 21027 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/syncthing" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/syncthing/6.11.1/templates/common.yaml b/stable/syncthing/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/syncthing/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/6.11.1/test_values.yaml b/stable/syncthing/6.11.1/test_values.yaml new file mode 100644 index 00000000000..d0893ab5fa9 --- /dev/null +++ b/stable/syncthing/6.11.1/test_values.yaml @@ -0,0 +1,40 @@ +# Default values for Syncthing. + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: "1.18" + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8384 + listeners: + ports: + tcp: + enabled: true + port: 22000 + protocol: TCP + udp: + enabled: true + port: 22000 + protocol: UDP + discovery: + ports: + discovery: + enabled: true + port: 21027 + protocol: UDP + +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + mountPath: "/var/syncthing/" diff --git a/stable/syncthing/6.11.1/values.yaml b/stable/syncthing/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tautulli/6.11.1/CONFIG.md b/stable/tautulli/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/tautulli/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/tautulli/6.11.1/Chart.lock b/stable/tautulli/6.11.1/Chart.lock new file mode 100644 index 00000000000..da8712832d3 --- /dev/null +++ b/stable/tautulli/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:28.134641202Z" diff --git a/stable/tautulli/6.11.1/Chart.yaml b/stable/tautulli/6.11.1/Chart.yaml new file mode 100644 index 00000000000..800b75e912f --- /dev/null +++ b/stable/tautulli/6.11.1/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: A Python based monitoring and tracking tool for Plex Media Server +home: https://github.com/truecharts/apps/tree/master/charts/stable/tautulli +icon: https://github.com/Tautulli/Tautulli/blob/master/data/interfaces/default/images/logo.png?raw=true +keywords: +- tautulli +- plex +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: tautulli +sources: +- https://github.com/Tautulli/Tautulli +type: application +version: 6.11.1 diff --git a/stable/tautulli/6.11.1/README.md b/stable/tautulli/6.11.1/README.md new file mode 100644 index 00000000000..1a8afa13840 --- /dev/null +++ b/stable/tautulli/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A Python based monitoring and tracking tool for Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/tautulli/6.11.1/app-readme.md b/stable/tautulli/6.11.1/app-readme.md new file mode 100644 index 00000000000..36c08b5c9b7 --- /dev/null +++ b/stable/tautulli/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +A Python based monitoring and tracking tool for Plex Media Server + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A Python based monitoring and tracking tool for Plex Media Server diff --git a/stable/tautulli/6.11.1/charts/common-6.12.1.tgz b/stable/tautulli/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/tautulli/6.11.1/ix_values.yaml b/stable/tautulli/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..5fea4cd85e4 --- /dev/null +++ b/stable/tautulli/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/tautulli + pullPolicy: IfNotPresent + tag: v2.7.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/tautulli/6.11.1/questions.yaml b/stable/tautulli/6.11.1/questions.yaml new file mode 100644 index 00000000000..ad67e88691b --- /dev/null +++ b/stable/tautulli/6.11.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8181 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36018 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/tautulli/6.11.1/templates/common.yaml b/stable/tautulli/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/tautulli/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tautulli/6.11.1/test_values.yaml b/stable/tautulli/6.11.1/test_values.yaml new file mode 100644 index 00000000000..33a94ad03f3 --- /dev/null +++ b/stable/tautulli/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Tautulli. + +image: + repository: ghcr.io/k8s-at-home/tautulli + pullPolicy: IfNotPresent + tag: v2.7.5 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8181 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/tautulli/6.11.1/values.yaml b/stable/tautulli/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/thelounge/1.11.1/CONFIG.md b/stable/thelounge/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/thelounge/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/thelounge/1.11.1/Chart.lock b/stable/thelounge/1.11.1/Chart.lock new file mode 100644 index 00000000000..bd70ae5460a --- /dev/null +++ b/stable/thelounge/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:33.120541328Z" diff --git a/stable/thelounge/1.11.1/Chart.yaml b/stable/thelounge/1.11.1/Chart.yaml new file mode 100644 index 00000000000..1f0cef0554d --- /dev/null +++ b/stable/thelounge/1.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +description: The Lounge, modern web IRC client designed for self-hosting +home: https://github.com/truecharts/apps/tree/master/charts/incubator/thelounge +icon: https://avatars.githubusercontent.com/u/14336958?s=200&v=4 +keywords: +- thelounge +- IRC +- The Lounge +- docker +- thelounge-docker +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: thelounge +sources: +- https://github.com/thelounge/thelounge +version: 1.11.1 diff --git a/stable/thelounge/1.11.1/README.md b/stable/thelounge/1.11.1/README.md new file mode 100644 index 00000000000..6be5ec3f872 --- /dev/null +++ b/stable/thelounge/1.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +The Lounge, modern web IRC client designed for self-hosting + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/thelounge/1.11.1/app-readme.md b/stable/thelounge/1.11.1/app-readme.md new file mode 100644 index 00000000000..cd1a83c63c2 --- /dev/null +++ b/stable/thelounge/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +The Lounge, modern web IRC client designed for self-hosting + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +The Lounge, modern web IRC client designed for self-hosting diff --git a/stable/thelounge/1.11.1/charts/common-6.12.1.tgz b/stable/thelounge/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/thelounge/1.11.1/ix_values.yaml b/stable/thelounge/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..12e3b82367b --- /dev/null +++ b/stable/thelounge/1.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + # -- image repository + repository: thelounge/thelounge + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.2.0-alpine + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/thelounge/1.11.1/questions.yaml b/stable/thelounge/1.11.1/questions.yaml new file mode 100644 index 00000000000..f446bcd57f4 --- /dev/null +++ b/stable/thelounge/1.11.1/questions.yaml @@ -0,0 +1,1062 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + # Docker specific env + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: THELOUNGE_HOME + label: "THELOUNGE_HOME" + schema: + type: string + default: "/config" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36086 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/thelounge/1.11.1/templates/common.yaml b/stable/thelounge/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/thelounge/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/thelounge/1.11.1/test_values.yaml b/stable/thelounge/1.11.1/test_values.yaml new file mode 100644 index 00000000000..df1e164be5d --- /dev/null +++ b/stable/thelounge/1.11.1/test_values.yaml @@ -0,0 +1,46 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: thelounge/thelounge + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: 4.2.0-alpine + +strategy: + type: Recreate + +# -- environment variables. See [image docs](https://hub.docker.com/r/thelounge/thelounge/) for more details. +# @default -- See below +env: + THELOUNGE_HOME: "/config" + +# -- Configures service settings for the chart. Normally this does not need to be modified. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 9000 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See values.yaml + main: + enabled: false + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/thelounge/1.11.1/values.yaml b/stable/thelounge/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.13.0/Chart.lock b/stable/traefik/6.13.0/Chart.lock index 2b4dd8ab86e..6219e63e4fe 100644 --- a/stable/traefik/6.13.0/Chart.lock +++ b/stable/traefik/6.13.0/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.12.1 digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da -generated: "2021-08-30T14:30:03.402447619Z" +generated: "2021-08-30T21:03:38.131854949Z" diff --git a/stable/transmission/6.11.1/CONFIG.md b/stable/transmission/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/transmission/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/transmission/6.11.1/Chart.lock b/stable/transmission/6.11.1/Chart.lock new file mode 100644 index 00000000000..070fae3595e --- /dev/null +++ b/stable/transmission/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:42.944815023Z" diff --git a/stable/transmission/6.11.1/Chart.yaml b/stable/transmission/6.11.1/Chart.yaml new file mode 100644 index 00000000000..076b441e8b8 --- /dev/null +++ b/stable/transmission/6.11.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://github.com/truecharts/apps/tree/master/charts/stable/transmission +icon: https://github.com/Jackett/Jackett/blob/phantom-develop/Logo/512.png?raw=true +keywords: +- transmission +- torrent +- usenet +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: transmission +sources: +- https://github.com/transmission/transmission +- https://hub.docker.com/r/linuxserver/transmission +type: application +version: 6.11.1 diff --git a/stable/transmission/6.11.1/README.md b/stable/transmission/6.11.1/README.md new file mode 100644 index 00000000000..52bcfce8a2f --- /dev/null +++ b/stable/transmission/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/transmission/6.11.1/app-readme.md b/stable/transmission/6.11.1/app-readme.md new file mode 100644 index 00000000000..98549f0fc93 --- /dev/null +++ b/stable/transmission/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +API Support for your favorite torrent trackers. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +API Support for your favorite torrent trackers. diff --git a/stable/transmission/6.11.1/charts/common-6.12.1.tgz b/stable/transmission/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/transmission/6.11.1/ix_values.yaml b/stable/transmission/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..aeea220e56b --- /dev/null +++ b/stable/transmission/6.11.1/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/transmission + pullPolicy: IfNotPresent + tag: v3.00 + +transmissionFixedConfig: + bind-address-ipv4: "0.0.0.0" + bind-address-ipv6: ::" + cache-size-mb: 4 + lpd-enabled: false + dht-enabled: true + peer-congestion-algorithm: "" + message-level: 2 + peer-id-ttl-hours: 4 + peer-port: 51413 + peer-port-random-high: 65535 + peer-port-random-low: 49152 + peer-port-random-on-start: false + peer-socket-tos: "default" + pex-enabled: true + port-forwarding-enabled: false + preallocation: 0 + prefetch-enabled: true + rename-partial-files: true + rpc-authentication-required: false + rpc-bind-address: "0.0.0.0" + rpc-enabled: true + rpc-host-whitelist: "" + rpc-host-whitelist-enabled: false + rpc-password: "CHANGEME" + rpc-port: 9091 + rpc-url: "/transmission/" + rpc-username: "" + rpc-whitelist: "" + rpc-whitelist-enabled: false + umask: 2 + utp-enabled: true + watch-dir: "/watch" + watch-dir-enabled: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/transmission/6.11.1/questions.yaml b/stable/transmission/6.11.1/questions.yaml new file mode 100644 index 00000000000..aec21861b87 --- /dev/null +++ b/stable/transmission/6.11.1/questions.yaml @@ -0,0 +1,1591 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/web/" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: TRANSMISSION_ALT_SPEED_DOWN + label: TRANSMISSION_ALT_SPEED_DOWN + schema: + type: int + default: 50 + - variable: TRANSMISSION_ALT_SPEED_ENABLED + label: TRANSMISSION_ALT_SPEED_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_ALT_SPEED_TIME_BEGIN + label: TRANSMISSION_ALT_SPEED_TIME_BEGIN + schema: + type: int + default: 540 + - variable: TRANSMISSION_ALT_SPEED_TIME_DAY + label: TRANSMISSION_ALT_SPEED_TIME_DAY + schema: + type: int + default: 127 + - variable: TRANSMISSION_ALT_SPEED_TIME_ENABLED + label: TRANSMISSION_ALT_SPEED_TIME_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_ALT_SPEED_TIME_END + label: TRANSMISSION_ALT_SPEED_TIME_END + schema: + type: int + default: 1020 + - variable: TRANSMISSION_ALT_SPEED_UP + label: TRANSMISSION_ALT_SPEED_UP + schema: + type: int + default: 50 + - variable: TRANSMISSION_BIND_ADDRESS_IPV4 + label: TRANSMISSION_BIND_ADDRESS_IPV4 + schema: + type: string + default: "0.0.0.0" + - variable: TRANSMISSION_BIND_ADDRESS_IPV6 + label: TRANSMISSION_BIND_ADDRESS_IPV6 + schema: + type: string + default: "::" + - variable: TRANSMISSION_BLOCKLIST_ENABLED + label: TRANSMISSION_BLOCKLIST_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_BLOCKLIST_URL + label: TRANSMISSION_BLOCKLIST_URL + schema: + type: string + default: "http://john.bitsurge.net/public/biglist.p2p.gz" + - variable: TRANSMISSION_CACHE_SIZE_MB + label: TRANSMISSION_CACHE_SIZE_MB + schema: + type: int + default: 4 + - variable: TRANSMISSION_DHT_ENABLED + label: TRANSMISSION_DHT_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_DOWNLOAD_DIR + label: TRANSMISSION_DOWNLOAD_DIR + schema: + type: string + default: "/downloads/complete" + - variable: TRANSMISSION_DOWNLOAD_QUEUE_ENABLED + label: TRANSMISSION_DOWNLOAD_QUEUE_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_DOWNLOAD_QUEUE_SIZE + label: TRANSMISSION_DOWNLOAD_QUEUE_SIZE + schema: + type: int + default: 5 + - variable: TRANSMISSION_ENCRYPTION + label: TRANSMISSION_ENCRYPTION + schema: + type: int + default: 1 + - variable: TRANSMISSION_IDLE_SEEDING_LIMIT + label: TRANSMISSION_IDLE_SEEDING_LIMIT + schema: + type: int + default: 30 + - variable: TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED + label: TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_INCOMPLETE_DIR + label: TRANSMISSION_INCOMPLETE_DIR + schema: + type: string + default: "/downloads/incomplete" + - variable: TRANSMISSION_INCOMPLETE_DIR_ENABLED + label: TRANSMISSION_INCOMPLETE_DIR_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_LPD_ENABLED + label: TRANSMISSION_LPD_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_MESSAGE_LEVEL + label: TRANSMISSION_MESSAGE_LEVEL + schema: + type: int + default: 2 + - variable: TRANSMISSION_PEER_CONGESTION_ALGORITHM + label: TRANSMISSION_PEER_CONGESTION_ALGORITHM + schema: + type: string + default: "" + - variable: TRANSMISSION_PEER_ID_TTL_HOURS + label: TRANSMISSION_PEER_ID_TTL_HOURS + schema: + type: int + default: 6 + - variable: TRANSMISSION_PEER_LIMIT_GLOBAL + label: TRANSMISSION_PEER_LIMIT_GLOBAL + schema: + type: int + default: 200 + - variable: TRANSMISSION_PEER_LIMIT_PER_TORRENT + label: TRANSMISSION_PEER_LIMIT_PER_TORRENT + schema: + type: int + default: 50 + - variable: TRANSMISSION_PEER_PORT + label: TRANSMISSION_PEER_PORT + schema: + type: int + default: 51413 + - variable: TRANSMISSION_PEER_PORT_RANDOM_HIGH + label: TRANSMISSION_PEER_PORT_RANDOM_HIGH + schema: + type: int + default: 65535 + - variable: TRANSMISSION_PEER_PORT_RANDOM_LOW + label: TRANSMISSION_PEER_PORT_RANDOM_LOW + schema: + type: int + default: 49152 + - variable: TRANSMISSION_PEER_PORT_RANDOM_ON_START + label: TRANSMISSION_PEER_PORT_RANDOM_ON_START + schema: + type: boolean + default: false + - variable: TRANSMISSION_PEER_SOCKET_TOS + label: TRANSMISSION_PEER_SOCKET_TOS + schema: + type: string + default: "default" + - variable: TRANSMISSION_PEX_ENABLED + label: TRANSMISSION_PEX_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_PORT_FORWARDING_ENABLED + label: TRANSMISSION_PORT_FORWARDING_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_PREALLOCATION + label: TRANSMISSION_PREALLOCATION + schema: + type: int + default: 1 + - variable: TRANSMISSION_PREFETCH_ENABLED + label: TRANSMISSION_PREFETCH_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_QUEUE_STALLED_ENABLED + label: TRANSMISSION_QUEUE_STALLED_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_QUEUE_STALLED_MINUTES + label: TRANSMISSION_QUEUE_STALLED_MINUTES + schema: + type: int + default: 30 + - variable: TRANSMISSION_RATIO_LIMIT + label: TRANSMISSION_RATIO_LIMIT + schema: + type: int + default: 2 + - variable: TRANSMISSION_RATIO_LIMIT_ENABLED + label: TRANSMISSION_RATIO_LIMIT_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RENAME_PARTIAL_FILES + label: TRANSMISSION_RENAME_PARTIAL_FILES + schema: + type: boolean + default: true + - variable: TRANSMISSION_RPC_AUTHENTICATION_REQUIRED + label: TRANSMISSION_RPC_AUTHENTICATION_REQUIRED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RPC_BIND_ADDRESS + label: TRANSMISSION_RPC_BIND_ADDRESS + schema: + type: string + default: "0.0.0.0" + - variable: TRANSMISSION_RPC_ENABLED + label: TRANSMISSION_RPC_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_RPC_HOST_WHITELIST + label: TRANSMISSION_RPC_HOST_WHITELIST + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_HOST_WHITELIST_ENABLED + label: TRANSMISSION_RPC_HOST_WHITELIST_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_RPC_PASSWORD + label: TRANSMISSION_RPC_PASSWORD + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_PORT + label: TRANSMISSION_RPC_PORT + schema: + type: int + default: 9091 + - variable: TRANSMISSION_RPC_URL + label: TRANSMISSION_RPC_URL + schema: + type: string + default: "/" + - variable: TRANSMISSION_RPC_USERNAME + label: TRANSMISSION_RPC_USERNAME + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_WHITELIST + label: TRANSMISSION_RPC_WHITELIST + schema: + type: string + default: "" + - variable: TRANSMISSION_RPC_WHITELIST_ENABLED + label: TRANSMISSION_RPC_WHITELIST_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED + label: TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED + label: TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME + label: TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME + schema: + type: string + default: "" + - variable: TRANSMISSION_SEED_QUEUE_ENABLED + label: TRANSMISSION_SEED_QUEUE_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SEED_QUEUE_SIZE + label: TRANSMISSION_SEED_QUEUE_SIZE + schema: + type: int + default: 10 + - variable: TRANSMISSION_SPEED_LIMIT_DOWN + label: TRANSMISSION_SPEED_LIMIT_DOWN + schema: + type: int + default: 100 + - variable: TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED + label: TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_SPEED_LIMIT_UP + label: TRANSMISSION_SPEED_LIMIT_UP + schema: + type: int + default: 100 + - variable: TRANSMISSION_SPEED_LIMIT_UP_ENABLED + label: TRANSMISSION_SPEED_LIMIT_UP_ENABLED + schema: + type: boolean + default: false + - variable: TRANSMISSION_START_ADDED_TORRENTS + label: TRANSMISSION_START_ADDED_TORRENTS + schema: + type: boolean + default: true + - variable: TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES + label: TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES + schema: + type: boolean + default: false + - variable: TRANSMISSION_UMASK + label: TRANSMISSION_UMASK + schema: + type: int + default: 2 + - variable: TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT + label: TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT + schema: + type: int + default: 14 + - variable: TRANSMISSION_UTP_ENABLED + label: TRANSMISSION_UTP_ENABLED + schema: + type: boolean + default: true + - variable: TRANSMISSION_WATCH_DIR + label: TRANSMISSION_WATCH_DIR + schema: + type: string + default: "/watch" + - variable: TRANSMISSION_WATCH_DIR_ENABLED + label: TRANSMISSION_WATCH_DIR_ENABLED + schema: + type: boolean + default: false + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36019 + - variable: torrent + label: "Torrent Service" + description: "Torrent service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/transmission/6.11.1/templates/common.yaml b/stable/transmission/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..f6d3b6d3a08 --- /dev/null +++ b/stable/transmission/6.11.1/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/transmission/6.11.1/test_values.yaml b/stable/transmission/6.11.1/test_values.yaml new file mode 100644 index 00000000000..64e8f3714a9 --- /dev/null +++ b/stable/transmission/6.11.1/test_values.yaml @@ -0,0 +1,108 @@ +# Default values for Transmission. + +image: + repository: ghcr.io/k8s-at-home/transmission + pullPolicy: IfNotPresent + tag: v3.00 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 9091 + torrent: + enabled: true + type: ClusterIP + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + # TRANSMISSION_ALT_SPEED_DOWN: 50 + # TRANSMISSION_ALT_SPEED_ENABLED: false + # TRANSMISSION_ALT_SPEED_TIME_BEGIN: 540 + # TRANSMISSION_ALT_SPEED_TIME_DAY: 127 + # TRANSMISSION_ALT_SPEED_TIME_ENABLED: false + # TRANSMISSION_ALT_SPEED_TIME_END: 1020 + # TRANSMISSION_ALT_SPEED_UP: 50 + # TRANSMISSION_BIND_ADDRESS_IPV4: "0.0.0.0" + # TRANSMISSION_BIND_ADDRESS_IPV6: "::" + # TRANSMISSION_BLOCKLIST_ENABLED: true + # TRANSMISSION_BLOCKLIST_URL: "http://john.bitsurge.net/public/biglist.p2p.gz" + # TRANSMISSION_CACHE_SIZE_MB: 4 + # TRANSMISSION_DHT_ENABLED: true + # TRANSMISSION_DOWNLOAD_DIR: "/downloads/complete" + # TRANSMISSION_DOWNLOAD_QUEUE_ENABLED: true + # TRANSMISSION_DOWNLOAD_QUEUE_SIZE: 5 + # TRANSMISSION_ENCRYPTION: 1 + # TRANSMISSION_IDLE_SEEDING_LIMIT: 30 + # TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED: false + # TRANSMISSION_INCOMPLETE_DIR: "/downloads/incomplete" + # TRANSMISSION_INCOMPLETE_DIR_ENABLED: true + # TRANSMISSION_LPD_ENABLED: false + # TRANSMISSION_MESSAGE_LEVEL: 2 + # TRANSMISSION_PEER_CONGESTION_ALGORITHM: "" + # TRANSMISSION_PEER_ID_TTL_HOURS: 6 + # TRANSMISSION_PEER_LIMIT_GLOBAL: 200 + # TRANSMISSION_PEER_LIMIT_PER_TORRENT: 50 + # TRANSMISSION_PEER_PORT: 51413 + # TRANSMISSION_PEER_PORT_RANDOM_HIGH: 65535 + # TRANSMISSION_PEER_PORT_RANDOM_LOW: 49152 + # TRANSMISSION_PEER_PORT_RANDOM_ON_START: false + # TRANSMISSION_PEER_SOCKET_TOS: default" + # TRANSMISSION_PEX_ENABLED: true + # TRANSMISSION_PORT_FORWARDING_ENABLED: false + # TRANSMISSION_PREALLOCATION: 1 + # TRANSMISSION_PREFETCH_ENABLED: true + # TRANSMISSION_QUEUE_STALLED_ENABLED: true + # TRANSMISSION_QUEUE_STALLED_MINUTES: 30 + # TRANSMISSION_RATIO_LIMIT: 2 + # TRANSMISSION_RATIO_LIMIT_ENABLED: false + # TRANSMISSION_RENAME_PARTIAL_FILES: true + # TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: false + # TRANSMISSION_RPC_BIND_ADDRESS: "0.0.0.0" + # TRANSMISSION_RPC_ENABLED: true + # TRANSMISSION_RPC_HOST_WHITELIST: "" + # TRANSMISSION_RPC_HOST_WHITELIST_ENABLED: false + # TRANSMISSION_RPC_PASSWORD: "" + # TRANSMISSION_RPC_PORT: 9091 + # TRANSMISSION_RPC_URL: "/transmission/" + # TRANSMISSION_RPC_USERNAME: "" + # TRANSMISSION_RPC_WHITELIST: "" + # TRANSMISSION_RPC_WHITELIST_ENABLED: false + # TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED: true + # TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED: false + # TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME: "" + # TRANSMISSION_SEED_QUEUE_ENABLED: false + # TRANSMISSION_SEED_QUEUE_SIZE: 10 + # TRANSMISSION_SPEED_LIMIT_DOWN: 100 + # TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED: false + # TRANSMISSION_SPEED_LIMIT_UP: 100 + # TRANSMISSION_SPEED_LIMIT_UP_ENABLED: false + # TRANSMISSION_START_ADDED_TORRENTS: true + # TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES: false + # TRANSMISSION_UMASK: 2 + # TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT: 14 + # TRANSMISSION_UTP_ENABLED: true + # TRANSMISSION_WATCH_DIR: "/watch" + # TRANSMISSION_WATCH_DIR_ENABLED: false + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/transmission/6.11.1/values.yaml b/stable/transmission/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/truecommand/6.11.1/CONFIG.md b/stable/truecommand/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/truecommand/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/truecommand/6.11.1/Chart.lock b/stable/truecommand/6.11.1/Chart.lock new file mode 100644 index 00000000000..449f87537b1 --- /dev/null +++ b/stable/truecommand/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:47.779479384Z" diff --git a/stable/truecommand/6.11.1/Chart.yaml b/stable/truecommand/6.11.1/Chart.yaml new file mode 100644 index 00000000000..52eaecea8f7 --- /dev/null +++ b/stable/truecommand/6.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: nightly +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Aggregated management of TrueNAS devices +home: https://github.com/truecharts/apps/tree/master/charts/incubator/truecommand +icon: https://www.ixsystems.com/documentation/truecommand/1.2/_static/tv-logo.png +keywords: +- truecommand +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: truecommand +sources: +- https://hub.docker.com/r/ixsystems/truecommand +type: application +version: 6.11.1 diff --git a/stable/truecommand/6.11.1/README.md b/stable/truecommand/6.11.1/README.md new file mode 100644 index 00000000000..e83b75f62ce --- /dev/null +++ b/stable/truecommand/6.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 6.8.7](https://img.shields.io/badge/Version-6.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: nightly](https://img.shields.io/badge/AppVersion-nightly-informational?style=flat-square) + +Aggregated management of TrueNAS devices + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/truecommand/6.11.1/app-readme.md b/stable/truecommand/6.11.1/app-readme.md new file mode 100644 index 00000000000..2ec511489ba --- /dev/null +++ b/stable/truecommand/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Aggregated management of TrueNAS devices + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Aggregated management of TrueNAS devices diff --git a/stable/truecommand/6.11.1/charts/common-6.12.1.tgz b/stable/truecommand/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/truecommand/6.11.1/ix_values.yaml b/stable/truecommand/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..feeb16a6372 --- /dev/null +++ b/stable/truecommand/6.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: "2.0" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/truecommand/6.11.1/questions.yaml b/stable/truecommand/6.11.1/questions.yaml new file mode 100644 index 00000000000..751ed183b8e --- /dev/null +++ b/stable/truecommand/6.11.1/questions.yaml @@ -0,0 +1,1066 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36044 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/truecommand/6.11.1/templates/common.yaml b/stable/truecommand/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/truecommand/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/truecommand/6.11.1/test_values.yaml b/stable/truecommand/6.11.1/test_values.yaml new file mode 100644 index 00000000000..00803865bfe --- /dev/null +++ b/stable/truecommand/6.11.1/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Jackett. + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: "2.0" + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/truecommand/6.11.1/values.yaml b/stable/truecommand/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tvheadend/7.11.1/CONFIG.md b/stable/tvheadend/7.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/tvheadend/7.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/tvheadend/7.11.1/Chart.lock b/stable/tvheadend/7.11.1/Chart.lock new file mode 100644 index 00000000000..b077f329485 --- /dev/null +++ b/stable/tvheadend/7.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:52.721553693Z" diff --git a/stable/tvheadend/7.11.1/Chart.yaml b/stable/tvheadend/7.11.1/Chart.yaml new file mode 100644 index 00000000000..cfecef461e1 --- /dev/null +++ b/stable/tvheadend/7.11.1/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: TVheadend - a TV streaming server and digital video recorder +home: https://github.com/truecharts/apps/tree/master/charts/incubator/tvheadend +icon: https://avatars.githubusercontent.com/u/1908588?s=200&v=4 +keywords: +- tvheadend +- tv +- streaming +- dvb +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: tvheadend +sources: +- https://github.com/tvheadend/tvheadend +type: application +version: 7.11.1 diff --git a/stable/tvheadend/7.11.1/README.md b/stable/tvheadend/7.11.1/README.md new file mode 100644 index 00000000000..901c5f9070c --- /dev/null +++ b/stable/tvheadend/7.11.1/README.md @@ -0,0 +1,42 @@ +# Introduction + +![Version: 7.8.7](https://img.shields.io/badge/Version-7.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +TVheadend - a TV streaming server and digital video recorder + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/tvheadend/7.11.1/app-readme.md b/stable/tvheadend/7.11.1/app-readme.md new file mode 100644 index 00000000000..2434a94cc52 --- /dev/null +++ b/stable/tvheadend/7.11.1/app-readme.md @@ -0,0 +1,4 @@ +TVheadend - a TV streaming server and digital video recorder + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +TVheadend - a TV streaming server and digital video recorder diff --git a/stable/tvheadend/7.11.1/charts/common-6.12.1.tgz b/stable/tvheadend/7.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/tvheadend/7.11.1/ix_values.yaml b/stable/tvheadend/7.11.1/ix_values.yaml new file mode 100644 index 00000000000..9f7637469cc --- /dev/null +++ b/stable/tvheadend/7.11.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/tvheadend + pullPolicy: IfNotPresent + tag: version-63784405 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/tvheadend/7.11.1/questions.yaml b/stable/tvheadend/7.11.1/questions.yaml new file mode 100644 index 00000000000..bd58108abfb --- /dev/null +++ b/stable/tvheadend/7.11.1/questions.yaml @@ -0,0 +1,1161 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9981 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36042 + - variable: htsp + label: "HTSP Service" + description: "HTSP service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: htsp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9982 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36043 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/tvheadend/7.11.1/templates/common.yaml b/stable/tvheadend/7.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/tvheadend/7.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/tvheadend/7.11.1/test_values.yaml b/stable/tvheadend/7.11.1/test_values.yaml new file mode 100644 index 00000000000..b517736201d --- /dev/null +++ b/stable/tvheadend/7.11.1/test_values.yaml @@ -0,0 +1,38 @@ +# Default values for tvheadend. + +image: + repository: linuxserver/tvheadend + pullPolicy: IfNotPresent + tag: version-63784405 + +strategy: + type: Recreate + +# See https://github.com/linuxserver/docker-tvheadend#parameters +env: {} + # PUID: 1000 + # PGID: 1000 + # TZ: Europe/London + # RUN_OPTS: + +service: + main: + ports: + main: + port: 9981 + htsp: + enabled: true + type: ClusterIP + ports: + htsp: + enabled: true + port: 9982 + protocol: TCP + +persistence: + config: + enabled: true + mountPath: "/config" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/tvheadend/7.11.1/values.yaml b/stable/tvheadend/7.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/unifi/6.11.1/CONFIG.md b/stable/unifi/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/unifi/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/unifi/6.11.1/Chart.lock b/stable/unifi/6.11.1/Chart.lock new file mode 100644 index 00000000000..c6c57832846 --- /dev/null +++ b/stable/unifi/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:03:57.609284474Z" diff --git a/stable/unifi/6.11.1/Chart.yaml b/stable/unifi/6.11.1/Chart.yaml new file mode 100644 index 00000000000..43abd81dc54 --- /dev/null +++ b/stable/unifi/6.11.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Ubiquiti Network's Unifi Controller +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unifi +icon: https://dl.ubnt.com/press/logo-UniFi.png +keywords: +- ubiquiti +- unifi +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unifi +sources: +- https://github.com/jacobalberty/unifi-docker +- https://unifi-network.ui.com +type: application +version: 6.11.1 diff --git a/stable/unifi/6.11.1/README.md b/stable/unifi/6.11.1/README.md new file mode 100644 index 00000000000..164b6f825c5 --- /dev/null +++ b/stable/unifi/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Ubiquiti Network's Unifi Controller + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/unifi/6.11.1/app-readme.md b/stable/unifi/6.11.1/app-readme.md new file mode 100644 index 00000000000..6d1448f6aa5 --- /dev/null +++ b/stable/unifi/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Ubiquiti Network's Unifi Controller + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Ubiquiti Network's Unifi Controller diff --git a/stable/unifi/6.11.1/charts/common-6.12.1.tgz b/stable/unifi/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/unifi/6.11.1/ix_values.yaml b/stable/unifi/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..c32ec8b42a3 --- /dev/null +++ b/stable/unifi/6.11.1/ix_values.yaml @@ -0,0 +1,19 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jacobalberty/unifi + tag: v6.2.26 + pullPolicy: IfNotPresent + +envTpl: + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/unifi/6.11.1/questions.yaml b/stable/unifi/6.11.1/questions.yaml new file mode 100644 index 00000000000..8567299d258 --- /dev/null +++ b/stable/unifi/6.11.1/questions.yaml @@ -0,0 +1,1257 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTPS" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8443 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8443 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36035 + - variable: comm + label: "Unifi Device Communication Service" + description: "Unifi Device Communication Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - variable: stun + label: "STUN Device Communication Service" + description: "STUN Device Communication Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "LoadBalancer" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: udp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3478 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/unifi" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/unifi/6.11.1/templates/common.yaml b/stable/unifi/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/unifi/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/unifi/6.11.1/test_values.yaml b/stable/unifi/6.11.1/test_values.yaml new file mode 100644 index 00000000000..28ecee7e990 --- /dev/null +++ b/stable/unifi/6.11.1/test_values.yaml @@ -0,0 +1,50 @@ +# Default values for Unifi. + +image: + repository: jacobalberty/unifi + tag: v6.2.26 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +envTpl: + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" + +service: + main: + ports: + main: + protocol: HTTPS + port: 8443 + comm: + enabled: true + ports: + tcp: + enabled: true + port: 8080 + targetPort: 8080 + protocol: TCP + stun: + enabled: true + ports: + udp: + enabled: true + port: 3478 + targetPort: 3478 + protocol: UDP + +env: + # TZ: + PUID: "568" + PGID: "568" + +persistence: + config: + enabled: true + mountPath: "/unifi" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/unifi/6.11.1/values.yaml b/stable/unifi/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/unpackerr/1.11.1/CONFIG.md b/stable/unpackerr/1.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/unpackerr/1.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/unpackerr/1.11.1/Chart.lock b/stable/unpackerr/1.11.1/Chart.lock new file mode 100644 index 00000000000..965b8a6837d --- /dev/null +++ b/stable/unpackerr/1.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:04:02.464303433Z" diff --git a/stable/unpackerr/1.11.1/Chart.yaml b/stable/unpackerr/1.11.1/Chart.yaml new file mode 100644 index 00000000000..e804148589c --- /dev/null +++ b/stable/unpackerr/1.11.1/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: This application runs as a daemon on your download host. It checks for + completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may + import them +home: https://github.com/truecharts/apps/tree/master/charts/incubator/unpackrr +icon: https://raw.githubusercontent.com/wiki/davidnewhall/unpackerr/images/unpackerr-logo-text.png +keywords: +- unpackerr +- sonarr +- radarr +- lidarr +- readarr +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: unpackerr +sources: +- https://github.com/davidnewhall/unpackerr +- https://hub.docker.com/r/golift/unpackerr +type: application +version: 1.11.1 diff --git a/stable/unpackerr/1.11.1/README.md b/stable/unpackerr/1.11.1/README.md new file mode 100644 index 00000000000..2c3aa61172b --- /dev/null +++ b/stable/unpackerr/1.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.8.7](https://img.shields.io/badge/Version-1.8.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +This application runs as a daemon on your download host. It checks for completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may import them + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/unpackerr/1.11.1/app-readme.md b/stable/unpackerr/1.11.1/app-readme.md new file mode 100644 index 00000000000..ad2f49ba6ca --- /dev/null +++ b/stable/unpackerr/1.11.1/app-readme.md @@ -0,0 +1,4 @@ +This application runs as a daemon on your download host. It checks for completed downloads and extracts them so Radarr, Lidarr, Sonarr, and Readarr may import them + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +This application runs as a daemon on your download host. It checks for diff --git a/stable/unpackerr/1.11.1/charts/common-6.12.1.tgz b/stable/unpackerr/1.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/unpackerr/1.11.1/ix_values.yaml b/stable/unpackerr/1.11.1/ix_values.yaml new file mode 100644 index 00000000000..f94e0877d86 --- /dev/null +++ b/stable/unpackerr/1.11.1/ix_values.yaml @@ -0,0 +1,32 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.9.7 + +service: + main: + enabled: false + ports: + main: + enabled: false + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/unpackerr/1.11.1/questions.yaml b/stable/unpackerr/1.11.1/questions.yaml new file mode 100644 index 00000000000..baefc94c0bd --- /dev/null +++ b/stable/unpackerr/1.11.1/questions.yaml @@ -0,0 +1,978 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" + +questions: + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: downoads + label: "App downoads Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/downoads" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/unpackerr/1.11.1/templates/common.yaml b/stable/unpackerr/1.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/unpackerr/1.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/unpackerr/1.11.1/test_values.yaml b/stable/unpackerr/1.11.1/test_values.yaml new file mode 100644 index 00000000000..8e823d75dd7 --- /dev/null +++ b/stable/unpackerr/1.11.1/test_values.yaml @@ -0,0 +1,53 @@ +# Default values for Sonarr. + +image: + repository: golift/unpackerr + pullPolicy: IfNotPresent + tag: 0.9.7 + +strategy: + type: Recreate + +service: + main: + enabled: false + ports: + main: + enabled: false + +portal: + enabled: false + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + + +persistence: + downloads: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + mountPath: /downloads + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" diff --git a/stable/unpackerr/1.11.1/values.yaml b/stable/unpackerr/1.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/vaultwarden/4.7.1/CONFIG.md b/stable/vaultwarden/4.7.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/vaultwarden/4.7.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/vaultwarden/4.7.1/Chart.lock b/stable/vaultwarden/4.7.1/Chart.lock new file mode 100644 index 00000000000..055a976db86 --- /dev/null +++ b/stable/vaultwarden/4.7.1/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +digest: sha256:d3e59b1fb333b720f8acae4cd687b65a2ee8e1ff783c876426fbe7309d0987b3 +generated: "2021-08-30T21:04:08.407239435Z" diff --git a/stable/vaultwarden/4.7.1/Chart.yaml b/stable/vaultwarden/4.7.1/Chart.yaml new file mode 100644 index 00000000000..569761449dc --- /dev/null +++ b/stable/vaultwarden/4.7.1/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 1.3.0 +deprecated: false +description: Unofficial Bitwarden compatible server written in Rust +home: https://github.com/truecharts/apps/tree/master/charts/stable/vaultwarden +icon: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png +keywords: +- bitwarden +- bitwardenrs +- bitwarden_rs +- vaultwarden +- password +- rust +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: vaultwarden +sources: +- https://github.com/dani-garcia/vaultwarden +type: application +version: 4.7.1 diff --git a/stable/vaultwarden/4.7.1/README.md b/stable/vaultwarden/4.7.1/README.md new file mode 100644 index 00000000000..7e4c76a1226 --- /dev/null +++ b/stable/vaultwarden/4.7.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 4.4.4](https://img.shields.io/badge/Version-4.4.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Unofficial Bitwarden compatible server written in Rust + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | +| https://truecharts.org/ | postgresql | 1.2.4 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/vaultwarden/4.7.1/app-readme.md b/stable/vaultwarden/4.7.1/app-readme.md new file mode 100644 index 00000000000..badd081d742 --- /dev/null +++ b/stable/vaultwarden/4.7.1/app-readme.md @@ -0,0 +1,4 @@ +Unofficial Bitwarden compatible server written in Rust + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Unofficial Bitwarden compatible server written in Rust diff --git a/stable/vaultwarden/4.7.1/charts/common-6.12.1.tgz b/stable/vaultwarden/4.7.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/4.7.1/charts/postgresql-1.3.0.tgz b/stable/vaultwarden/4.7.1/charts/postgresql-1.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2caee3ce8636fb4a68579dcc017ad83225c336a9 GIT binary patch literal 30700 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 literal 0 HcmV?d00001 diff --git a/stable/vaultwarden/4.7.1/ix_values.yaml b/stable/vaultwarden/4.7.1/ix_values.yaml new file mode 100644 index 00000000000..8a4b54a0a32 --- /dev/null +++ b/stable/vaultwarden/4.7.1/ix_values.yaml @@ -0,0 +1,55 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.22.2 + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: vaultwardenconfig + - secretRef: + name: vaultwardensecret + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: false + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + retries: 30 + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds + persistence: + db: + storageClass: "SCALE-ZFS" + dbbackups: + storageClass: "SCALE-ZFS" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/vaultwarden/4.7.1/questions.yaml b/stable/vaultwarden/4.7.1/questions.yaml new file mode 100644 index 00000000000..4f1632e1529 --- /dev/null +++ b/stable/vaultwarden/4.7.1/questions.yaml @@ -0,0 +1,1497 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + + - variable: vaultwarden + label: "" + group: "App Configuration" + schema: + type: dict + attrs: + - variable: yubico + label: "Yubico OTP authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Yubico OTP authentication" + description: "Please refer to the manual at: https://github.com/dani-garcia/vaultwarden/wiki/Enabling-Yubikey-OTP-authentication" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: server + label: "Yubico server" + description: "Defaults to YubiCloud" + schema: + type: string + default: "" + - variable: clientId + label: "Yubico ID" + schema: + type: string + default: "" + - variable: secretKey + label: "Yubico Secret Key" + schema: + type: string + default: "" + - variable: admin + label: "Admin Portal" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Admin Portal" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: disableAdminToken + label: "Make Accessible Without Password/Token" + schema: + type: boolean + default: false + - variable: token + label: "Admin Portal Password/Token" + description: "Will be automatically generated if not defined" + schema: + type: string + default: "" + - variable: icons + label: "Icon Download Settings" + schema: + type: dict + attrs: + - variable: disableDownload + label: "Disable Icon Download" + description: "Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache)" + schema: + type: boolean + default: false + - variable: cache + label: "Cache time-to-live" + description: "Cache time-to-live for icons fetched. 0 means no purging" + schema: + type: int + default: 2592000 + - variable: token + label: "Failed Downloads Cache time-to-live" + description: "Cache time-to-live for icons that were not available. 0 means no purging." + schema: + type: int + default: 2592000 + - variable: log + label: "Logging" + schema: + type: dict + attrs: + - variable: level + label: "Log level" + schema: + type: string + default: "info" + required: true + enum: + - value: "trace" + description: "trace" + - value: "debug" + description: "debug" + - value: "info" + description: "info" + - value: "warn" + description: "warn" + - value: "error" + description: "error" + - value: "off" + description: "off" + - variable: file + label: "Log-File Location" + schema: + type: string + default: "" + - variable: smtp + label: "SMTP Settings (Email)" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable SMTP Support" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: "SMTP hostname" + schema: + type: string + required: true + default: "" + - variable: from + label: "SMTP sender e-mail address" + schema: + type: string + required: true + default: "" + - variable: fromName + label: "SMTP sender name" + schema: + type: string + required: true + default: "" + - variable: user + label: "SMTP username" + schema: + type: string + required: true + default: "" + - variable: password + label: "SMTP password" + description: "Required is user is specified, ignored if no user provided" + schema: + type: string + default: "" + - variable: ssl + label: "Enable SSL connection" + schema: + type: boolean + default: true + - variable: port + label: "SMTP port" + description: "Usually: 25 without SSL, 587 with SSL" + schema: + type: int + default: 587 + - variable: authMechanism + label: "SMTP Authentication Mechanisms" + description: "Comma-separated options: Plain, Login and Xoauth2" + schema: + type: string + default: "Plain" + - variable: heloName + label: "SMTP HELO - Hostname" + description: "Hostname to be sent for SMTP HELO. Defaults to pod name" + schema: + type: string + default: "" + - variable: port + label: "SMTP timeout" + schema: + type: int + default: 15 + - variable: invalidHostname + label: "Accept Invalid Hostname" + description: "Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: invalidCertificate + label: "Accept Invalid Certificate" + description: "Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: allowSignups + label: "Allow Signup" + description: "Allow any user to sign-up: https://github.com/dani-garcia/vaultwarden/wiki/Disable-registration-of-new-users" + schema: + type: boolean + default: true + - variable: allowInvitation + label: "Always allow Invitation" + description: "Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/vaultwarden/wiki/Disable-invitations" + schema: + type: boolean + default: true + - variable: defaultInviteName + label: "Default Invite Organisation Name" + description: "Default organization name in invitation e-mails that are not coming from a specific organization." + schema: + type: string + default: "" + - variable: showPasswordHint + label: "Show password hints" + description: "https://github.com/dani-garcia/vaultwarden/wiki/Password-hint-display" + schema: + type: boolean + default: true + - variable: signupwhitelistenable + label: "Enable Signup Whitelist" + description: "allowSignups is ignored if set" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: signupDomains + label: "Signup Whitelist Domains" + schema: + type: list + default: [] + items: + - variable: domain + label: "Domain" + schema: + type: string + default: "" + - variable: verifySignup + label: "Verifiy Signup" + description: "Verify e-mail before login is enabled. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: requireEmail + label: "Block Login if email fails" + description: "When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: emailAttempts + label: "Email token reset attempts" + description: "Maximum attempts before an email token is reset and a new email will need to be sent" + schema: + type: int + default: 3 + - variable: emailTokenExpiration + label: "Email token validity in seconds" + schema: + type: int + default: 600 + - variable: enableWebsockets + label: "Enable Websocket Connections" + description: "Enable Websockets for notification. https://github.com/dani-garcia/vaultwarden/wiki/Enabling-WebSocket-notifications" + schema: + type: boolean + default: true + hidden: true + - variable: enableWebVault + label: "Enable Webvault" + description: "Enable Web Vault (static content). https://github.com/dani-garcia/vaultwarden/wiki/Disabling-or-overriding-the-Vault-interface-hosting" + schema: + type: boolean + default: true + - variable: orgCreationUsers + label: "Limit Organisation Creation to (users)" + description: "Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users." + schema: + type: string + default: "all" + - variable: attachmentLimitOrg + label: "Limit Attachment Disk Usage per Organisation" + schema: + type: string + default: "" + - variable: attachmentLimitUser + label: "Limit Attachment Disk Usage per User" + schema: + type: string + default: "" + - variable: hibpApiKey + label: "HaveIBeenPwned API Key" + description: "Can be purchased at https://haveibeenpwned.com/API/Key" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36000 + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3012 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36001 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/vaultwarden/4.7.1/templates/_configmap.tpl b/stable/vaultwarden/4.7.1/templates/_configmap.tpl new file mode 100644 index 00000000000..8809925abdf --- /dev/null +++ b/stable/vaultwarden/4.7.1/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/4.7.1/templates/_secrets.tpl b/stable/vaultwarden/4.7.1/templates/_secrets.tpl new file mode 100644 index 00000000000..6a7bf408bb8 --- /dev/null +++ b/stable/vaultwarden/4.7.1/templates/_secrets.tpl @@ -0,0 +1,59 @@ +{{/* Define the secrets */}} +{{- define "vaultwarden.secrets" -}} + +{{- $adminToken := "" }} +{{- if eq .Values.vaultwarden.admin.enabled true }} +{{- $adminToken = .Values.vaultwarden.admin.token | default (randAlphaNum 48) | b64enc | quote }} +{{- end -}} + +{{- $smtpUser := "" }} +{{- if and (eq .Values.vaultwarden.smtp.enabled true ) (.Values.vaultwarden.smtp.user) }} +{{- $smtpUser = .Values.vaultwarden.smtp.user | b64enc | quote }} +{{- end -}} + +{{- $yubicoClientId := "" }} +{{- if eq .Values.vaultwarden.yubico.enabled true }} +{{- $yubicoClientId = required "Yubico Client ID required" .Values.vaultwarden.yubico.clientId | toString | b64enc | quote }} +{{- end -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + name: vaultwardensecret +data: + {{- if ne $adminToken "" }} + ADMIN_TOKEN: {{ $adminToken }} + {{- end }} + {{- if ne $smtpUser "" }} + SMTP_USERNAME: {{ $smtpUser }} + SMTP_PASSWORD: {{ required "Must specify SMTP password" .Values.vaultwarden.smtp.password | b64enc | quote }} + {{- end }} + {{- if ne $yubicoClientId "" }} + YUBICO_CLIENT_ID: {{ $yubicoClientId }} + YUBICO_SECRET_KEY: {{ required "Yubico Secret Key required" .Values.vaultwarden.yubico.secretKey | b64enc | quote }} + {{- end }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/stable/vaultwarden/4.7.1/templates/_validate.tpl b/stable/vaultwarden/4.7.1/templates/_validate.tpl new file mode 100644 index 00000000000..e4832c2f6e5 --- /dev/null +++ b/stable/vaultwarden/4.7.1/templates/_validate.tpl @@ -0,0 +1,17 @@ +{{/* +Ensure valid DB type is select, defaults to SQLite +*/}} +{{- define "vaultwarden.dbTypeValid" -}} +{{- if not (or (eq .Values.database.type "postgresql") (eq .Values.database.type "mysql") (eq .Values.database.type "sqlite")) }} +{{- required "Invalid database type" nil }} +{{- end -}} +{{- end -}} + +{{/* +Ensure log type is valid +*/}} +{{- define "vaultwarden.logLevelValid" -}} +{{- if not (or (eq .Values.vaultwarden.log.level "trace") (eq .Values.vaultwarden.log.level "debug") (eq .Values.vaultwarden.log.level "info") (eq .Values.vaultwarden.log.level "warn") (eq .Values.vaultwarden.log.level "error") (eq .Values.vaultwarden.log.level "off")) }} +{{- required "Invalid log level" nil }} +{{- end }} +{{- end }} diff --git a/stable/vaultwarden/4.7.1/templates/common.yaml b/stable/vaultwarden/4.7.1/templates/common.yaml new file mode 100644 index 00000000000..74f04d2d8c2 --- /dev/null +++ b/stable/vaultwarden/4.7.1/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for vaultwarden */}} +{{- include "vaultwarden.configmap" . }} + +{{/* Render secrets for vaultwarden */}} +{{- include "vaultwarden.secrets" . }} diff --git a/stable/vaultwarden/4.7.1/test_values.yaml b/stable/vaultwarden/4.7.1/test_values.yaml new file mode 100644 index 00000000000..9cfc0aa76a6 --- /dev/null +++ b/stable/vaultwarden/4.7.1/test_values.yaml @@ -0,0 +1,161 @@ +# Default values for Bitwarden. + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.22.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + ws: + ports: + ws: + enabled: true + port: 3012 + +env: {} + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: vaultwardenconfig + - secretRef: + name: vaultwardensecret + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: true + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + # retries: 15 + +# Set Bitwarden_rs application variables +vaultwarden: + # Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users + allowSignups: true + ## Whitelist domains allowed to sign-up. 'allowSignups' is ignored if set. + # signupDomains: + # - domain.tld + # Verify e-mail before login is enabled. SMTP must be enabled. + verifySignup: false + # When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled. + requireEmail: false + ## Maximum attempts before an email token is reset and a new email will need to be sent. + # emailAttempts: 3 + ## Email token validity in seconds. + # emailTokenExpiration: 600 + # Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations + allowInvitation: true + # Show password hints: https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display + ## Default organization name in invitation e-mails that are not coming from a specific organization. + # defaultInviteName: "" + showPasswordHint: true + # Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications + # Redirect HTTP path "/notifications/hub" to port 3012. Ingress/IngressRoute controllers are automatically configured. + enableWebsockets: true + # Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting + enableWebVault: true + # Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users. + orgCreationUsers: all + ## Limit attachment disk usage per organization. + # attachmentLimitOrg: + ## Limit attachment disk usage per user. + # attachmentLimitUser: + ## HaveIBeenPwned API Key. Can be purchased at https://haveibeenpwned.com/API/Key. + # hibpApiKey: + + admin: + # Enable admin portal. + enabled: false + # Disabling the admin token will make the admin portal accessible to anyone, use carefully: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-admin-token + disableAdminToken: false + ## Token for admin login, will be generated if not defined. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-admin-page + # token: + + # Enable SMTP. https://github.com/dani-garcia/bitwarden_rs/wiki/SMTP-configuration + smtp: + enabled: false + # SMTP hostname, required if SMTP is enabled. + host: "" + # SMTP sender e-mail address, required if SMTP is enabled. + from: "" + ## SMTP sender name, defaults to 'Bitwarden_RS'. + # fromName: "" + ## Enable SSL connection. + # ssl: true + ## SMTP port. Defaults to 25 without SSL, 587 with SSL. + # port: 587 + ## SMTP Authentication Mechanisms. Comma-separated options: 'Plain', 'Login' and 'Xoauth2'. Defaults to 'Plain'. + # authMechanism: Plain + ## Hostname to be sent for SMTP HELO. Defaults to pod name. + # heloName: "" + ## SMTP timeout. + # timeout: 15 + ## Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidHostname: false + ## Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidCertificate: false + ## SMTP username. + # user: "" + ## SMTP password. Required is user is specified, ignored if no user provided. + # password: "" + + ## Enable Yubico OTP authentication. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication + yubico: + enabled: false + ## Yubico server. Defaults to YubiCloud. + # server: + ## Yubico ID and Secret Key. + # clientId: + # secretKey: + + ## Logging options. https://github.com/dani-garcia/bitwarden_rs/wiki/Logging + log: + # Log to file. + file: "" + # Log level. Options are "trace", "debug", "info", "warn", "error" or "off". + level: "trace" + ## Log timestamp format. See https://docs.rs/chrono/0.4.15/chrono/format/strftime/index.html. Defaults to time in milliseconds. + # timeFormat: "" + + icons: + # Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache). TTL will default to zero. + disableDownload: false + ## Cache time-to-live for icons fetched. 0 means no purging. + # cache: 2592000 + ## Cache time-to-live for icons that were not available. 0 means no purging. + # cacheFailed: 259200 + +persistence: + data: + enabled: true + mountPath: "/data" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + +# Enabled postgres +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds diff --git a/stable/vaultwarden/4.7.1/values.yaml b/stable/vaultwarden/4.7.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/xteve/1.9.1/CONFIG.md b/stable/xteve/1.9.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/xteve/1.9.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/xteve/1.9.1/Chart.lock b/stable/xteve/1.9.1/Chart.lock new file mode 100644 index 00000000000..8a8cb3caee0 --- /dev/null +++ b/stable/xteve/1.9.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +digest: sha256:3d1411574041c79e6137bbcf90b2ebd7bbd6939a312e30af3e2a8210af58cde2 +generated: "2021-08-30T21:04:14.460342962Z" diff --git a/stable/xteve/1.9.1/Chart.yaml b/stable/xteve/1.9.1/Chart.yaml new file mode 100644 index 00000000000..ba236a6dbb7 --- /dev/null +++ b/stable/xteve/1.9.1/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org + version: 6.12.1 +description: M3U Proxy for Plex DVR and Emby Live TV. +home: https://github.com/truechartsapps/tree/master/charts/incubator/xteve +icon: https://raw.githubusercontent.com/xteve-project/xTeVe/master/html/img/logo_b_880x200.jpg +keywords: +- xteve +- iptv +- plex +- emby +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: truecharts + url: https://truecharts.org +name: xteve +sources: +- https://github.com/xteve-project/xTeVe +- https://github.com/k8s-at-home/container-images +version: 1.9.1 diff --git a/stable/xteve/1.9.1/README.md b/stable/xteve/1.9.1/README.md new file mode 100644 index 00000000000..9e1826c6c72 --- /dev/null +++ b/stable/xteve/1.9.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 1.6.7](https://img.shields.io/badge/Version-1.6.7-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +M3U Proxy for Plex DVR and Emby Live TV. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/xteve/1.9.1/app-readme.md b/stable/xteve/1.9.1/app-readme.md new file mode 100644 index 00000000000..cb6dd4c03dc --- /dev/null +++ b/stable/xteve/1.9.1/app-readme.md @@ -0,0 +1,4 @@ +M3U Proxy for Plex DVR and Emby Live TV. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +M3U Proxy for Plex DVR and Emby Live TV. diff --git a/stable/xteve/1.9.1/charts/common-6.12.1.tgz b/stable/xteve/1.9.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/xteve/1.9.1/ix_values.yaml b/stable/xteve/1.9.1/ix_values.yaml new file mode 100644 index 00000000000..ad5c311aa5b --- /dev/null +++ b/stable/xteve/1.9.1/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/k8s-at-home/xteve + pullPolicy: IfNotPresent + tag: v2.2.0.200 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/xteve/1.9.1/questions.yaml b/stable/xteve/1.9.1/questions.yaml new file mode 100644 index 00000000000..f5d43263a2a --- /dev/null +++ b/stable/xteve/1.9.1/questions.yaml @@ -0,0 +1,1104 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 34400 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 34400 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36087 + + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/xteve/1.9.1/templates/common.yaml b/stable/xteve/1.9.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/xteve/1.9.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/xteve/1.9.1/test_values.yaml b/stable/xteve/1.9.1/test_values.yaml new file mode 100644 index 00000000000..b7f896590c6 --- /dev/null +++ b/stable/xteve/1.9.1/test_values.yaml @@ -0,0 +1,36 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + # -- image repository + repository: ghcr.io/k8s-at-home/xteve + # -- image tag + tag: v2.2.0.200 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +service: + main: + ports: + main: + port: 34400 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" diff --git a/stable/xteve/1.9.1/values.yaml b/stable/xteve/1.9.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/zwavejs2mqtt/6.11.1/CONFIG.md b/stable/zwavejs2mqtt/6.11.1/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/zwavejs2mqtt/6.11.1/Chart.lock b/stable/zwavejs2mqtt/6.11.1/Chart.lock new file mode 100644 index 00000000000..0de374a297b --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +digest: sha256:6686a739b4506463623d25054850dad3053bddee78e3cab32c58a32ba2f8d1da +generated: "2021-08-30T21:04:19.337439618Z" diff --git a/stable/zwavejs2mqtt/6.11.1/Chart.yaml b/stable/zwavejs2mqtt/6.11.1/Chart.yaml new file mode 100644 index 00000000000..b19505f7a93 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.12.1 +deprecated: false +description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS + and Vue +home: https://github.com/truecharts/apps/tree/master/charts/stable/zwavejs2mqtt +icon: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png +keywords: +- zwavejs2mqtt +- zwave-js +- z-wave +- zwave +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: 35702532+tprelog@users.noreply.github.com + name: tprelog + url: truecharts.org +name: zwavejs2mqtt +sources: +- https://github.com/zwave-js/zwavejs2mqtt +- https://hub.docker.com/r/zwavejs/zwavejs2mqtt +type: application +version: 6.11.1 diff --git a/stable/zwavejs2mqtt/6.11.1/README.md b/stable/zwavejs2mqtt/6.11.1/README.md new file mode 100644 index 00000000000..6d1646db60e --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/README.md @@ -0,0 +1,43 @@ +# Introduction + +![Version: 6.8.8](https://img.shields.io/badge/Version-6.8.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.10.7 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/zwavejs2mqtt/6.11.1/app-readme.md b/stable/zwavejs2mqtt/6.11.1/app-readme.md new file mode 100644 index 00000000000..309c7f0168f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/app-readme.md @@ -0,0 +1,4 @@ +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS diff --git a/stable/zwavejs2mqtt/6.11.1/charts/common-6.12.1.tgz b/stable/zwavejs2mqtt/6.11.1/charts/common-6.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7dacd3795f3c159b5a84150f46e24a9458b4d333 GIT binary patch literal 25243 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 literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/6.11.1/ix_values.yaml b/stable/zwavejs2mqtt/6.11.1/ix_values.yaml new file mode 100644 index 00000000000..5808ab9629f --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/ix_values.yaml @@ -0,0 +1,58 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: zwavejs/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 5.5.1 + +probes: + liveness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + readiness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + startup: + enabled: false + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/zwavejs2mqtt/6.11.1/questions.yaml b/stable/zwavejs2mqtt/6.11.1/questions.yaml new file mode 100644 index 00000000000..e4df47c0dc1 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/questions.yaml @@ -0,0 +1,1233 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8091 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8091 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36022 + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36023 + + - variable: serviceList + label: "Additional Services" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + + - variable: persistence + label: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/usr/src/app/store" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + + + - variable: ingressList + label: "Additional Ingress" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" + + + - variable: autoscaling + group: "Resources and Devices" + label: "Horizontal Pod Autoscaler" + schema: + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: "Target" + description: "deployment name, defaults to main deployment" + schema: + type: string + default: "" + - variable: minReplicas + label: "Minimum Replicas" + schema: + type: int + default: 1 + - variable: maxReplicas + label: "Maximum Replicas" + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + schema: + type: int + default: 80 diff --git a/stable/zwavejs2mqtt/6.11.1/templates/common.yaml b/stable/zwavejs2mqtt/6.11.1/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/zwavejs2mqtt/6.11.1/test_values.yaml b/stable/zwavejs2mqtt/6.11.1/test_values.yaml new file mode 100644 index 00000000000..d65b13962ca --- /dev/null +++ b/stable/zwavejs2mqtt/6.11.1/test_values.yaml @@ -0,0 +1,105 @@ +# Default values for zwavejs2mqtt. +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/charts/tree/master/charts/common + +image: + repository: zwavejs/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 5.5.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" + type: pvc + accessMode: ReadWriteOnce + size: "100Gi" + + +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller diff --git a/stable/zwavejs2mqtt/6.11.1/values.yaml b/stable/zwavejs2mqtt/6.11.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d