From 10f62b0838117112878f2847c9f1b0bab5ee54c8 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sat, 3 Jul 2021 09:57:08 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- deprecated/nzbhydra/6.2.10/Chart.lock | 2 +- develop/nextcloud/1.0.13/CONFIG.md | 9 + develop/nextcloud/1.0.13/Chart.lock | 12 + develop/nextcloud/1.0.13/Chart.yaml | 38 + develop/nextcloud/1.0.13/README.md | 56 ++ develop/nextcloud/1.0.13/app-readme.md | 1 + .../nextcloud/1.0.13/charts/common-6.5.0.tgz | Bin 0 -> 23425 bytes .../1.0.13/charts/postgresql-10.5.1.tgz | Bin 0 -> 49272 bytes .../nextcloud/1.0.13/charts/redis-14.6.3.tgz | Bin 0 -> 77803 bytes develop/nextcloud/1.0.13/ix_values.yaml | 136 +++ develop/nextcloud/1.0.13/questions.yaml | 831 ++++++++++++++++++ .../nextcloud/1.0.13/templates/_configmap.tpl | 25 + .../nextcloud/1.0.13/templates/_cronjob.tpl | 54 ++ .../nextcloud/1.0.13/templates/_secrets.tpl | 50 ++ .../nextcloud/1.0.13/templates/common.yaml | 14 + develop/nextcloud/1.0.13/test_values.yaml | 160 ++++ develop/nextcloud/1.0.13/values.yaml | 0 develop/prototype-gui/1.3.12/Chart.lock | 2 +- incubator/airsonic/1.2.11/Chart.lock | 2 +- incubator/appdaemon/3.2.12/Chart.lock | 2 +- incubator/bazarr/6.2.10/Chart.lock | 2 +- incubator/booksonic-air/1.0.2/Chart.lock | 2 +- incubator/calibre-web/6.2.10/Chart.lock | 2 +- incubator/calibre/1.0.2/Chart.lock | 2 +- incubator/deconz/1.0.2/Chart.lock | 2 +- incubator/deluge/6.2.10/Chart.lock | 2 +- incubator/dizquetv/1.0.2/Chart.lock | 2 +- incubator/duplicati/1.0.2/Chart.lock | 2 +- incubator/fireflyiii/4.3.11/Chart.lock | 2 +- incubator/flaresolverr/1.0.2/Chart.lock | 2 +- incubator/flood/1.0.2/Chart.lock | 2 +- incubator/focalboard/1.0.2/Chart.lock | 2 +- incubator/freshrss/6.2.10/Chart.lock | 2 +- incubator/gaps/6.2.10/Chart.lock | 2 +- incubator/gonic/1.0.2/Chart.lock | 2 +- incubator/grocy/6.2.10/Chart.lock | 2 +- incubator/haste-server/1.2.10/Chart.lock | 2 +- incubator/healthchecks/1.0.2/Chart.lock | 2 +- incubator/heimdall/6.2.10/Chart.lock | 2 +- incubator/hyperion-ng/1.0.2/Chart.lock | 2 +- incubator/komga/1.0.2/Chart.lock | 2 +- incubator/lazylibrarian/6.2.10/Chart.lock | 2 +- incubator/librespeed/1.0.2/Chart.lock | 2 +- incubator/lychee/6.2.10/Chart.lock | 2 +- incubator/mealie/1.2.11/Chart.lock | 2 +- incubator/mosquitto/1.2.11/Chart.lock | 2 +- incubator/mylar/1.0.2/Chart.lock | 2 +- incubator/navidrome/6.2.10/Chart.lock | 2 +- incubator/node-red/6.2.10/Chart.lock | 2 +- incubator/nullserv/1.0.2/Chart.lock | 2 +- incubator/nzbget/6.2.10/Chart.lock | 2 +- incubator/octoprint/1.0.2/Chart.lock | 2 +- incubator/omada-controller/1.0.2/Chart.lock | 2 +- incubator/organizr/6.2.11/Chart.lock | 2 +- incubator/overseerr/1.0.2/Chart.lock | 2 +- incubator/owncast/1.0.2/Chart.lock | 2 +- incubator/owncloud-ocis/1.0.2/Chart.lock | 2 +- incubator/photoprism/1.0.2/Chart.lock | 2 +- incubator/piaware/1.0.2/Chart.lock | 2 +- incubator/podgrab/4.2.10/Chart.lock | 2 +- .../pretend-youre-xyzzy/1.0.2/Chart.lock | 2 +- incubator/protonmail-bridge/1.0.2/Chart.lock | 2 +- incubator/prowlarr/1.2.12/Chart.lock | 2 +- incubator/pyload/1.0.2/Chart.lock | 2 +- incubator/qbittorrent/6.2.10/Chart.lock | 2 +- incubator/readarr/6.2.11/Chart.lock | 2 +- incubator/reg/1.2.10/Chart.lock | 2 +- incubator/sabnzbd/6.2.10/Chart.lock | 2 +- incubator/ser2sock/1.0.2/Chart.lock | 2 +- incubator/stash/1.0.4/Chart.lock | 2 +- incubator/thelounge/1.2.11/Chart.lock | 2 +- incubator/tvheadend/7.2.10/Chart.lock | 2 +- incubator/unifi/6.2.10/Chart.lock | 2 +- incubator/unpackerr/1.2.10/Chart.lock | 2 +- incubator/xteve/1.0.2/Chart.lock | 2 +- non-free/resilio-sync/1.0.2/Chart.lock | 2 +- stable/collabora-online/6.2.11/Chart.lock | 2 +- stable/deepstack-cpu/4.2.10/Chart.lock | 2 +- stable/emby/6.2.10/Chart.lock | 2 +- stable/esphome/6.2.10/Chart.lock | 2 +- stable/handbrake/6.2.10/Chart.lock | 2 +- stable/home-assistant/6.2.10/Chart.lock | 2 +- stable/jackett/6.2.11/Chart.lock | 2 +- stable/jellyfin/6.2.10/Chart.lock | 2 +- stable/kms/6.2.10/Chart.lock | 2 +- stable/lidarr/6.2.10/Chart.lock | 2 +- stable/ombi/6.2.11/Chart.lock | 2 +- stable/plex/5.2.10/Chart.lock | 2 +- stable/radarr/6.2.10/Chart.lock | 2 +- stable/sonarr/6.2.10/Chart.lock | 2 +- stable/syncthing/6.2.10/Chart.lock | 2 +- stable/tautulli/6.2.10/Chart.lock | 2 +- stable/traefik/6.3.18/CONFIG.md | 9 + stable/traefik/6.3.18/Chart.lock | 6 + stable/traefik/6.3.18/Chart.yaml | 29 + stable/traefik/6.3.18/LICENSE | 202 +++++ stable/traefik/6.3.18/README.md | 56 ++ stable/traefik/6.3.18/app-readme.md | 3 + stable/traefik/6.3.18/charts/common-6.4.6.tgz | Bin 0 -> 23381 bytes stable/traefik/6.3.18/crds/ingressroute.yaml | 12 + .../traefik/6.3.18/crds/ingressroutetcp.yaml | 12 + .../traefik/6.3.18/crds/ingressrouteudp.yaml | 13 + stable/traefik/6.3.18/crds/middlewares.yaml | 12 + .../6.3.18/crds/serverstransports.yaml | 12 + stable/traefik/6.3.18/crds/tlsoptions.yaml | 12 + stable/traefik/6.3.18/crds/tlsstores.yaml | 13 + .../traefik/6.3.18/crds/traefikservices.yaml | 12 + stable/traefik/6.3.18/ix_values.yaml | 329 +++++++ stable/traefik/6.3.18/questions.yaml | 385 ++++++++ stable/traefik/6.3.18/templates/_helpers.tpl | 62 ++ .../traefik/6.3.18/templates/_podtemplate.tpl | 265 ++++++ .../6.3.18/templates/custom/common.yaml | 0 .../custom/middleware-namespace.yaml | 7 + .../custom/middlewares/basic-middleware.yaml | 57 ++ .../custom/middlewares/basicauth.yaml | 29 + .../custom/middlewares/forwardauth.yaml | 23 + .../6.3.18/templates/custom/portal.yaml | 45 + .../traefik/6.3.18/templates/daemonset.yaml | 40 + .../dashboard-hook-ingressroute.yaml | 28 + .../traefik/6.3.18/templates/deployment.yaml | 47 + stable/traefik/6.3.18/templates/gateway.yaml | 33 + .../6.3.18/templates/gatewayclass.yaml | 9 + stable/traefik/6.3.18/templates/hpa.yaml | 20 + .../6.3.18/templates/ingressclass.yaml | 23 + .../6.3.18/templates/poddisruptionbudget.yaml | 22 + .../6.3.18/templates/rbac/clusterrole.yaml | 112 +++ .../templates/rbac/clusterrolebinding.yaml | 19 + .../templates/rbac/podsecuritypolicy.yaml | 68 ++ .../traefik/6.3.18/templates/rbac/role.yaml | 61 ++ .../6.3.18/templates/rbac/rolebinding.yaml | 19 + .../6.3.18/templates/rbac/serviceaccount.yaml | 15 + stable/traefik/6.3.18/templates/service.yaml | 114 +++ .../traefik/6.3.18/templates/tlsoption.yaml | 14 + stable/traefik/6.3.18/test_values.yaml | 426 +++++++++ stable/traefik/6.3.18/values.yaml | 0 stable/transmission/6.2.11/Chart.lock | 2 +- stable/truecommand/6.2.10/Chart.lock | 2 +- stable/vaultwarden/3.3.11/Chart.lock | 2 +- stable/zwavejs2mqtt/6.2.11/Chart.lock | 2 +- 139 files changed, 4141 insertions(+), 80 deletions(-) create mode 100644 develop/nextcloud/1.0.13/CONFIG.md create mode 100644 develop/nextcloud/1.0.13/Chart.lock create mode 100644 develop/nextcloud/1.0.13/Chart.yaml create mode 100644 develop/nextcloud/1.0.13/README.md create mode 100644 develop/nextcloud/1.0.13/app-readme.md create mode 100644 develop/nextcloud/1.0.13/charts/common-6.5.0.tgz create mode 100644 develop/nextcloud/1.0.13/charts/postgresql-10.5.1.tgz create mode 100644 develop/nextcloud/1.0.13/charts/redis-14.6.3.tgz create mode 100644 develop/nextcloud/1.0.13/ix_values.yaml create mode 100644 develop/nextcloud/1.0.13/questions.yaml create mode 100644 develop/nextcloud/1.0.13/templates/_configmap.tpl create mode 100644 develop/nextcloud/1.0.13/templates/_cronjob.tpl create mode 100644 develop/nextcloud/1.0.13/templates/_secrets.tpl create mode 100644 develop/nextcloud/1.0.13/templates/common.yaml create mode 100644 develop/nextcloud/1.0.13/test_values.yaml create mode 100644 develop/nextcloud/1.0.13/values.yaml create mode 100644 stable/traefik/6.3.18/CONFIG.md create mode 100644 stable/traefik/6.3.18/Chart.lock create mode 100644 stable/traefik/6.3.18/Chart.yaml create mode 100644 stable/traefik/6.3.18/LICENSE create mode 100644 stable/traefik/6.3.18/README.md create mode 100644 stable/traefik/6.3.18/app-readme.md create mode 100644 stable/traefik/6.3.18/charts/common-6.4.6.tgz create mode 100644 stable/traefik/6.3.18/crds/ingressroute.yaml create mode 100644 stable/traefik/6.3.18/crds/ingressroutetcp.yaml create mode 100644 stable/traefik/6.3.18/crds/ingressrouteudp.yaml create mode 100644 stable/traefik/6.3.18/crds/middlewares.yaml create mode 100644 stable/traefik/6.3.18/crds/serverstransports.yaml create mode 100644 stable/traefik/6.3.18/crds/tlsoptions.yaml create mode 100644 stable/traefik/6.3.18/crds/tlsstores.yaml create mode 100644 stable/traefik/6.3.18/crds/traefikservices.yaml create mode 100644 stable/traefik/6.3.18/ix_values.yaml create mode 100644 stable/traefik/6.3.18/questions.yaml create mode 100644 stable/traefik/6.3.18/templates/_helpers.tpl create mode 100644 stable/traefik/6.3.18/templates/_podtemplate.tpl create mode 100644 stable/traefik/6.3.18/templates/custom/common.yaml create mode 100644 stable/traefik/6.3.18/templates/custom/middleware-namespace.yaml create mode 100644 stable/traefik/6.3.18/templates/custom/middlewares/basic-middleware.yaml create mode 100644 stable/traefik/6.3.18/templates/custom/middlewares/basicauth.yaml create mode 100644 stable/traefik/6.3.18/templates/custom/middlewares/forwardauth.yaml create mode 100644 stable/traefik/6.3.18/templates/custom/portal.yaml create mode 100644 stable/traefik/6.3.18/templates/daemonset.yaml create mode 100644 stable/traefik/6.3.18/templates/dashboard-hook-ingressroute.yaml create mode 100644 stable/traefik/6.3.18/templates/deployment.yaml create mode 100644 stable/traefik/6.3.18/templates/gateway.yaml create mode 100644 stable/traefik/6.3.18/templates/gatewayclass.yaml create mode 100644 stable/traefik/6.3.18/templates/hpa.yaml create mode 100644 stable/traefik/6.3.18/templates/ingressclass.yaml create mode 100644 stable/traefik/6.3.18/templates/poddisruptionbudget.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/clusterrole.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/clusterrolebinding.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/podsecuritypolicy.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/role.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/rolebinding.yaml create mode 100644 stable/traefik/6.3.18/templates/rbac/serviceaccount.yaml create mode 100644 stable/traefik/6.3.18/templates/service.yaml create mode 100644 stable/traefik/6.3.18/templates/tlsoption.yaml create mode 100644 stable/traefik/6.3.18/test_values.yaml create mode 100644 stable/traefik/6.3.18/values.yaml diff --git a/deprecated/nzbhydra/6.2.10/Chart.lock b/deprecated/nzbhydra/6.2.10/Chart.lock index 75da751deff..c6b6ab93d8b 100644 --- a/deprecated/nzbhydra/6.2.10/Chart.lock +++ b/deprecated/nzbhydra/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:33:10.142486355Z" +generated: "2021-07-03T09:56:43.456587249Z" diff --git a/develop/nextcloud/1.0.13/CONFIG.md b/develop/nextcloud/1.0.13/CONFIG.md new file mode 100644 index 00000000000..dddbce20079 --- /dev/null +++ b/develop/nextcloud/1.0.13/CONFIG.md @@ -0,0 +1,9 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/develop/nextcloud/1.0.13/Chart.lock b/develop/nextcloud/1.0.13/Chart.lock new file mode 100644 index 00000000000..8edb98a4437 --- /dev/null +++ b/develop/nextcloud/1.0.13/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.5.0 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.5.1 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 14.6.3 +digest: sha256:1feab7236f71fa25a92831c1a6cf62a50c1af47404fbf9327a0a1c1e712d97b9 +generated: "2021-07-03T09:56:33.608495918Z" diff --git a/develop/nextcloud/1.0.13/Chart.yaml b/develop/nextcloud/1.0.13/Chart.yaml new file mode 100644 index 00000000000..da52defdb25 --- /dev/null +++ b/develop/nextcloud/1.0.13/Chart.yaml @@ -0,0 +1,38 @@ +apiVersion: v2 +appVersion: auto +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.5.0 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.5.1 +- name: redis + version: 14.6.3 + repository: https://charts.bitnami.com/bitnami + condition: redis.enabled +deprecated: false +description: A private cloud server that puts the control and security of your own data back into your hands. +home: https://nextcloud.com/ +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Nextcloud_Logo.svg/1280px-Nextcloud_Logo.svg.png +keywords: +- nextcloud +- storage +- http +- web +- php +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: nextcloud +sources: +- https://github.com/nextcloud/docker +- https://github.com/nextcloud/helm +type: application +version: 1.0.13 diff --git a/develop/nextcloud/1.0.13/README.md b/develop/nextcloud/1.0.13/README.md new file mode 100644 index 00000000000..a6c0421d33c --- /dev/null +++ b/develop/nextcloud/1.0.13/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A private cloud server that puts the control and security of your own data back into your hands. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | postgresql | 10.5.1 | +| https://truecharts.org/ | common | 6.4.6 | + +## Installing the Chart + +To install the chart with the release name `nextcloud` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nextcloud` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/develop/nextcloud/1.0.13/app-readme.md b/develop/nextcloud/1.0.13/app-readme.md new file mode 100644 index 00000000000..6989aad3944 --- /dev/null +++ b/develop/nextcloud/1.0.13/app-readme.md @@ -0,0 +1 @@ +A private cloud server that puts the control and security of your own data back into your hands. diff --git a/develop/nextcloud/1.0.13/charts/common-6.5.0.tgz b/develop/nextcloud/1.0.13/charts/common-6.5.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9437e21fc80b9e1d2ee78ad792ce8a76b9395e3e GIT binary patch literal 23425 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 literal 0 HcmV?d00001 diff --git a/develop/nextcloud/1.0.13/charts/postgresql-10.5.1.tgz b/develop/nextcloud/1.0.13/charts/postgresql-10.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9e316da60000105810013f859649f9589c513e0b GIT binary patch literal 49272 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 K{tKW0#svULPLH<$ literal 0 HcmV?d00001 diff --git a/develop/nextcloud/1.0.13/charts/redis-14.6.3.tgz b/develop/nextcloud/1.0.13/charts/redis-14.6.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b95f7f9dfd335b85e797756618d03ce289a45cf6 GIT binary patch literal 77803 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%0ALQHO*joFD9U4$30r0_W++P_L!c=4n=D+6=NV}j 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 literal 0 HcmV?d00001 diff --git a/develop/nextcloud/1.0.13/ix_values.yaml b/develop/nextcloud/1.0.13/ix_values.yaml new file mode 100644 index 00000000000..c97d17db9bd --- /dev/null +++ b/develop/nextcloud/1.0.13/ix_values.yaml @@ -0,0 +1,136 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content 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: 21.0.2 + +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 -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- 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: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + + # -- Redainess probe configuration + # @default -- See below + readiness: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + + # -- Startup probe configuration + # @default -- See below + startup: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: true + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/develop/nextcloud/1.0.13/questions.yaml b/develop/nextcloud/1.0.13/questions.yaml new file mode 100644 index 00000000000..e6472c95bce --- /dev/null +++ b/develop/nextcloud/1.0.13/questions.yaml @@ -0,0 +1,831 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Advanced" + description: "Advanced Configuration" +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: NEXTCLOUD_ADMIN_USER + label: "NEXTCLOUD_ADMIN_USER" + description: "Sets nextcloud admin username" + schema: + type: string + required: true + default: "" + - variable: NEXTCLOUD_ADMIN_PASSWORD + label: "NEXTCLOUD_ADMIN_PASSWORD" + description: "Sets nextcloud admin password" + schema: + type: string + required: true + default: "" + - variable: TRUSTED_PROXIES + label: "TRUSTED_PROXIES" + description: "Sets nextcloud Trusted Proxies" + schema: + type: string + default: "172.16.0.0/16" + + + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: hostNetwork + group: "Networking and Services" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36091 + required: true + + - variable: 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" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: redismaster + label: "Redis Storage" + description: "Stores the Application redis-master-database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: noMount + label: "Do not mount this storage inside the main pod" + schema: + type: boolean + default: true + hidden: true + - variable: forceName + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "redismaster" + hidden: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + hidden: true + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + required: true + default: "" + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 33 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: resources + group: "Resources and Devices" + label: "" + schema: + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "2000m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "2Gi" + - variable: requests + label: "Advanced Request minimum resources required" + schema: + type: dict + attrs: + - variable: cpu + label: "CPU" + schema: + type: string + default: "10m" + - variable: memory + label: "Memory RAM" + schema: + type: string + default: "50Mi" diff --git a/develop/nextcloud/1.0.13/templates/_configmap.tpl b/develop/nextcloud/1.0.13/templates/_configmap.tpl new file mode 100644 index 00000000000..afe0b0ec766 --- /dev/null +++ b/develop/nextcloud/1.0.13/templates/_configmap.tpl @@ -0,0 +1,25 @@ +{{/* 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: {{ $hosts | quote }} + {{- if .Values.Ingress.main.enabled }} + APACHE_DISABLE_REWRITE_IP: 1 + {{- end }} + +{{- end -}} diff --git a/develop/nextcloud/1.0.13/templates/_cronjob.tpl b/develop/nextcloud/1.0.13/templates/_cronjob.tpl new file mode 100644 index 00000000000..9346ea6690a --- /dev/null +++ b/develop/nextcloud/1.0.13/templates/_cronjob.tpl @@ -0,0 +1,54 @@ +{{/* 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: + {{- if .Values.securityContext }} + {{- with .Values.securityContext }} + {{- toYaml . | nindent 17 }} + {{- end }} + {{- end }} + resources: +{{ toYaml .Values.resources | indent 16 }} + +{{- end -}} diff --git a/develop/nextcloud/1.0.13/templates/_secrets.tpl b/develop/nextcloud/1.0.13/templates/_secrets.tpl new file mode 100644 index 00000000000..d9ae0df858c --- /dev/null +++ b/develop/nextcloud/1.0.13/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/develop/nextcloud/1.0.13/templates/common.yaml b/develop/nextcloud/1.0.13/templates/common.yaml new file mode 100644 index 00000000000..8e72c538b1d --- /dev/null +++ b/develop/nextcloud/1.0.13/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/develop/nextcloud/1.0.13/test_values.yaml b/develop/nextcloud/1.0.13/test_values.yaml new file mode 100644 index 00000000000..e9b26889a1f --- /dev/null +++ b/develop/nextcloud/1.0.13/test_values.yaml @@ -0,0 +1,160 @@ +# Default values for Bitwarden. + +image: + repository: nextcloud + pullPolicy: IfNotPresent + tag: 21.0.2 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 80 + +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" + type: emptyDir + + db: + noMount: true + forceName: "db" + enabled: true + type: emptyDir + + redismaster: + noMount: true + forceName: "redismaster" + enabled: true + type: emptyDir + +initContainers: + - name: init-postgresdb + image: postgres:13.1 + command: + - "sh" + - "-c" + - "until pg_isready -h ${pghost} ; do sleep 2 ; done" + imagePullPolicy: IfNotPresent + env: + - name: pghost + valueFrom: + secretKeyRef: + name: dbcreds + key: plainhost + +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: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + + # -- Redainess probe configuration + # @default -- See below + readiness: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + + # -- Startup probe configuration + # @default -- See below + startup: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: HTTP + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + path: /status.php + +## Cronjob to execute Nextcloud background tasks +## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron +## +cronjob: + # Every 5 minutes + # Note: Setting this to any any other value than 5 minutes might + # cause issues with how nextcloud background jobs are executed + schedule: "*/5 * * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + volumePermissions: + enabled: true + enabled: true + postgresqlUsername: nextcloud + postgresqlDatabase: nextcloud + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db + +# Enabled redis +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis +redis: + volumePermissions: + enabled: true + architecture: standalone + enabled: true + auth: + existingSecret: rediscreds + existingSecretPasswordKey: redis-password + master: + persistence: + enabled: false + existingClaim: redismaster + replica: + replicaCount: 0 + persistence: + enabled: false diff --git a/develop/nextcloud/1.0.13/values.yaml b/develop/nextcloud/1.0.13/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/develop/prototype-gui/1.3.12/Chart.lock b/develop/prototype-gui/1.3.12/Chart.lock index bb0f2c553b0..7f61a5effbb 100644 --- a/develop/prototype-gui/1.3.12/Chart.lock +++ b/develop/prototype-gui/1.3.12/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:33:06.706848093Z" +generated: "2021-07-03T09:56:40.720132154Z" diff --git a/incubator/airsonic/1.2.11/Chart.lock b/incubator/airsonic/1.2.11/Chart.lock index 4848606467d..1960e0435b0 100644 --- a/incubator/airsonic/1.2.11/Chart.lock +++ b/incubator/airsonic/1.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:10.926022343Z" +generated: "2021-07-03T09:55:04.722546032Z" diff --git a/incubator/appdaemon/3.2.12/Chart.lock b/incubator/appdaemon/3.2.12/Chart.lock index 95858c9fc9b..8d01d0ad857 100644 --- a/incubator/appdaemon/3.2.12/Chart.lock +++ b/incubator/appdaemon/3.2.12/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:12.705687507Z" +generated: "2021-07-03T09:55:06.117031881Z" diff --git a/incubator/bazarr/6.2.10/Chart.lock b/incubator/bazarr/6.2.10/Chart.lock index 53f207e09dd..0ae514cb237 100644 --- a/incubator/bazarr/6.2.10/Chart.lock +++ b/incubator/bazarr/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:14.424444667Z" +generated: "2021-07-03T09:55:07.654018674Z" diff --git a/incubator/booksonic-air/1.0.2/Chart.lock b/incubator/booksonic-air/1.0.2/Chart.lock index c03b276c98e..a9e3ebe9494 100644 --- a/incubator/booksonic-air/1.0.2/Chart.lock +++ b/incubator/booksonic-air/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:16.129339985Z" +generated: "2021-07-03T09:55:09.031323304Z" diff --git a/incubator/calibre-web/6.2.10/Chart.lock b/incubator/calibre-web/6.2.10/Chart.lock index f43372a980a..aadffee9201 100644 --- a/incubator/calibre-web/6.2.10/Chart.lock +++ b/incubator/calibre-web/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:19.481392152Z" +generated: "2021-07-03T09:55:11.833483083Z" diff --git a/incubator/calibre/1.0.2/Chart.lock b/incubator/calibre/1.0.2/Chart.lock index f31ac871e0c..b17c6cd6a2d 100644 --- a/incubator/calibre/1.0.2/Chart.lock +++ b/incubator/calibre/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:17.80132078Z" +generated: "2021-07-03T09:55:10.426726096Z" diff --git a/incubator/deconz/1.0.2/Chart.lock b/incubator/deconz/1.0.2/Chart.lock index 7588da8ddcc..c77eddbe313 100644 --- a/incubator/deconz/1.0.2/Chart.lock +++ b/incubator/deconz/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:21.155254147Z" +generated: "2021-07-03T09:55:13.149523004Z" diff --git a/incubator/deluge/6.2.10/Chart.lock b/incubator/deluge/6.2.10/Chart.lock index 418ff2e838d..889b06de200 100644 --- a/incubator/deluge/6.2.10/Chart.lock +++ b/incubator/deluge/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:22.827952357Z" +generated: "2021-07-03T09:55:14.555616097Z" diff --git a/incubator/dizquetv/1.0.2/Chart.lock b/incubator/dizquetv/1.0.2/Chart.lock index 24caf90ebd2..ef82353bce4 100644 --- a/incubator/dizquetv/1.0.2/Chart.lock +++ b/incubator/dizquetv/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:24.494096746Z" +generated: "2021-07-03T09:55:15.877942228Z" diff --git a/incubator/duplicati/1.0.2/Chart.lock b/incubator/duplicati/1.0.2/Chart.lock index 81a02d4e067..8265a9760f9 100644 --- a/incubator/duplicati/1.0.2/Chart.lock +++ b/incubator/duplicati/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:26.15391858Z" +generated: "2021-07-03T09:55:17.27897575Z" diff --git a/incubator/fireflyiii/4.3.11/Chart.lock b/incubator/fireflyiii/4.3.11/Chart.lock index 2e62a9848f0..e275e2dcf4b 100644 --- a/incubator/fireflyiii/4.3.11/Chart.lock +++ b/incubator/fireflyiii/4.3.11/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.bitnami.com/bitnami version: 10.5.1 digest: sha256:149bdb1d86af9ee151a969f50173fe78b5608cf9686bfe670c42bc8bd44941eb -generated: "2021-07-03T09:31:31.043801905Z" +generated: "2021-07-03T09:55:21.135333298Z" diff --git a/incubator/flaresolverr/1.0.2/Chart.lock b/incubator/flaresolverr/1.0.2/Chart.lock index e0df1db4b34..f40058f05f3 100644 --- a/incubator/flaresolverr/1.0.2/Chart.lock +++ b/incubator/flaresolverr/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:36.431348882Z" +generated: "2021-07-03T09:55:25.365694333Z" diff --git a/incubator/flood/1.0.2/Chart.lock b/incubator/flood/1.0.2/Chart.lock index 09571a53eaa..0ef083d116c 100644 --- a/incubator/flood/1.0.2/Chart.lock +++ b/incubator/flood/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:38.086301873Z" +generated: "2021-07-03T09:55:26.68753314Z" diff --git a/incubator/focalboard/1.0.2/Chart.lock b/incubator/focalboard/1.0.2/Chart.lock index ad017d0b2fc..a522612d5f9 100644 --- a/incubator/focalboard/1.0.2/Chart.lock +++ b/incubator/focalboard/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:39.758593646Z" +generated: "2021-07-03T09:55:28.244189256Z" diff --git a/incubator/freshrss/6.2.10/Chart.lock b/incubator/freshrss/6.2.10/Chart.lock index a1e0b9312a7..acb38fe0bd3 100644 --- a/incubator/freshrss/6.2.10/Chart.lock +++ b/incubator/freshrss/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:41.410918571Z" +generated: "2021-07-03T09:55:29.581938162Z" diff --git a/incubator/gaps/6.2.10/Chart.lock b/incubator/gaps/6.2.10/Chart.lock index 12c1cb649e0..3a938460480 100644 --- a/incubator/gaps/6.2.10/Chart.lock +++ b/incubator/gaps/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:43.00709178Z" +generated: "2021-07-03T09:55:30.914170703Z" diff --git a/incubator/gonic/1.0.2/Chart.lock b/incubator/gonic/1.0.2/Chart.lock index 818e74a7614..3f082210f99 100644 --- a/incubator/gonic/1.0.2/Chart.lock +++ b/incubator/gonic/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:44.630987929Z" +generated: "2021-07-03T09:55:32.254794891Z" diff --git a/incubator/grocy/6.2.10/Chart.lock b/incubator/grocy/6.2.10/Chart.lock index dc2a337a413..275155921ce 100644 --- a/incubator/grocy/6.2.10/Chart.lock +++ b/incubator/grocy/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:46.247637983Z" +generated: "2021-07-03T09:55:33.704589313Z" diff --git a/incubator/haste-server/1.2.10/Chart.lock b/incubator/haste-server/1.2.10/Chart.lock index 665676732db..48916d53725 100644 --- a/incubator/haste-server/1.2.10/Chart.lock +++ b/incubator/haste-server/1.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:47.932350457Z" +generated: "2021-07-03T09:55:35.098930577Z" diff --git a/incubator/healthchecks/1.0.2/Chart.lock b/incubator/healthchecks/1.0.2/Chart.lock index 8523cfdf69d..d84a0afca91 100644 --- a/incubator/healthchecks/1.0.2/Chart.lock +++ b/incubator/healthchecks/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:49.588293622Z" +generated: "2021-07-03T09:55:36.483591104Z" diff --git a/incubator/heimdall/6.2.10/Chart.lock b/incubator/heimdall/6.2.10/Chart.lock index ccaa2f2296f..9e8b8798851 100644 --- a/incubator/heimdall/6.2.10/Chart.lock +++ b/incubator/heimdall/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:51.249712696Z" +generated: "2021-07-03T09:55:37.922202678Z" diff --git a/incubator/hyperion-ng/1.0.2/Chart.lock b/incubator/hyperion-ng/1.0.2/Chart.lock index a23c62e4ead..0457e5a0a6d 100644 --- a/incubator/hyperion-ng/1.0.2/Chart.lock +++ b/incubator/hyperion-ng/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:52.872792896Z" +generated: "2021-07-03T09:55:39.333768829Z" diff --git a/incubator/komga/1.0.2/Chart.lock b/incubator/komga/1.0.2/Chart.lock index 2144cbcdea4..4de550906d3 100644 --- a/incubator/komga/1.0.2/Chart.lock +++ b/incubator/komga/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:54.568881781Z" +generated: "2021-07-03T09:55:40.745659986Z" diff --git a/incubator/lazylibrarian/6.2.10/Chart.lock b/incubator/lazylibrarian/6.2.10/Chart.lock index 71f527a4d10..13369b510e3 100644 --- a/incubator/lazylibrarian/6.2.10/Chart.lock +++ b/incubator/lazylibrarian/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:56.244086302Z" +generated: "2021-07-03T09:55:42.086892475Z" diff --git a/incubator/librespeed/1.0.2/Chart.lock b/incubator/librespeed/1.0.2/Chart.lock index 1373e4929c9..adebe56db16 100644 --- a/incubator/librespeed/1.0.2/Chart.lock +++ b/incubator/librespeed/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:31:57.936165062Z" +generated: "2021-07-03T09:55:43.419693521Z" diff --git a/incubator/lychee/6.2.10/Chart.lock b/incubator/lychee/6.2.10/Chart.lock index 0b835b53ec9..60d5fd6a17e 100644 --- a/incubator/lychee/6.2.10/Chart.lock +++ b/incubator/lychee/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:59.643385286Z" +generated: "2021-07-03T09:55:44.760911209Z" diff --git a/incubator/mealie/1.2.11/Chart.lock b/incubator/mealie/1.2.11/Chart.lock index b713c185467..80607f430c6 100644 --- a/incubator/mealie/1.2.11/Chart.lock +++ b/incubator/mealie/1.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:01.323812767Z" +generated: "2021-07-03T09:55:46.080475445Z" diff --git a/incubator/mosquitto/1.2.11/Chart.lock b/incubator/mosquitto/1.2.11/Chart.lock index 303ae998f18..45c78b8ff2e 100644 --- a/incubator/mosquitto/1.2.11/Chart.lock +++ b/incubator/mosquitto/1.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:03.028729245Z" +generated: "2021-07-03T09:55:47.425089211Z" diff --git a/incubator/mylar/1.0.2/Chart.lock b/incubator/mylar/1.0.2/Chart.lock index 9a090e9018d..00e292661dd 100644 --- a/incubator/mylar/1.0.2/Chart.lock +++ b/incubator/mylar/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:04.69353292Z" +generated: "2021-07-03T09:55:48.78629225Z" diff --git a/incubator/navidrome/6.2.10/Chart.lock b/incubator/navidrome/6.2.10/Chart.lock index 50956baf60d..bc125156045 100644 --- a/incubator/navidrome/6.2.10/Chart.lock +++ b/incubator/navidrome/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:06.375506803Z" +generated: "2021-07-03T09:55:50.180629531Z" diff --git a/incubator/node-red/6.2.10/Chart.lock b/incubator/node-red/6.2.10/Chart.lock index b723d8e08e6..8ea00da41a9 100644 --- a/incubator/node-red/6.2.10/Chart.lock +++ b/incubator/node-red/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:08.065031655Z" +generated: "2021-07-03T09:55:51.580443074Z" diff --git a/incubator/nullserv/1.0.2/Chart.lock b/incubator/nullserv/1.0.2/Chart.lock index 6deff0dd865..8dde02f4836 100644 --- a/incubator/nullserv/1.0.2/Chart.lock +++ b/incubator/nullserv/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:09.756765181Z" +generated: "2021-07-03T09:55:53.019795348Z" diff --git a/incubator/nzbget/6.2.10/Chart.lock b/incubator/nzbget/6.2.10/Chart.lock index 8de3959b1e0..9a03432f79f 100644 --- a/incubator/nzbget/6.2.10/Chart.lock +++ b/incubator/nzbget/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:11.528744722Z" +generated: "2021-07-03T09:55:54.466406372Z" diff --git a/incubator/octoprint/1.0.2/Chart.lock b/incubator/octoprint/1.0.2/Chart.lock index 6cad94e64b7..c98fb254c0a 100644 --- a/incubator/octoprint/1.0.2/Chart.lock +++ b/incubator/octoprint/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:13.306177495Z" +generated: "2021-07-03T09:55:55.894481622Z" diff --git a/incubator/omada-controller/1.0.2/Chart.lock b/incubator/omada-controller/1.0.2/Chart.lock index 6434ba8f337..4e247e2be8c 100644 --- a/incubator/omada-controller/1.0.2/Chart.lock +++ b/incubator/omada-controller/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:14.935620243Z" +generated: "2021-07-03T09:55:57.326394161Z" diff --git a/incubator/organizr/6.2.11/Chart.lock b/incubator/organizr/6.2.11/Chart.lock index b45d02ca691..d307a27c188 100644 --- a/incubator/organizr/6.2.11/Chart.lock +++ b/incubator/organizr/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:16.591760147Z" +generated: "2021-07-03T09:55:58.689941318Z" diff --git a/incubator/overseerr/1.0.2/Chart.lock b/incubator/overseerr/1.0.2/Chart.lock index f1e6763df73..54558094439 100644 --- a/incubator/overseerr/1.0.2/Chart.lock +++ b/incubator/overseerr/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:18.221545643Z" +generated: "2021-07-03T09:56:00.066925585Z" diff --git a/incubator/owncast/1.0.2/Chart.lock b/incubator/owncast/1.0.2/Chart.lock index 2eb58a430b5..2a8ee2ef767 100644 --- a/incubator/owncast/1.0.2/Chart.lock +++ b/incubator/owncast/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:19.813981354Z" +generated: "2021-07-03T09:56:01.40830369Z" diff --git a/incubator/owncloud-ocis/1.0.2/Chart.lock b/incubator/owncloud-ocis/1.0.2/Chart.lock index adfeb990765..1786ac2a2b7 100644 --- a/incubator/owncloud-ocis/1.0.2/Chart.lock +++ b/incubator/owncloud-ocis/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:21.390525841Z" +generated: "2021-07-03T09:56:02.823520501Z" diff --git a/incubator/photoprism/1.0.2/Chart.lock b/incubator/photoprism/1.0.2/Chart.lock index f9ab4748a00..1d6ae6e5982 100644 --- a/incubator/photoprism/1.0.2/Chart.lock +++ b/incubator/photoprism/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:23.026046778Z" +generated: "2021-07-03T09:56:04.20603563Z" diff --git a/incubator/piaware/1.0.2/Chart.lock b/incubator/piaware/1.0.2/Chart.lock index 69a54762bf8..c0d196009f5 100644 --- a/incubator/piaware/1.0.2/Chart.lock +++ b/incubator/piaware/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:24.66077132Z" +generated: "2021-07-03T09:56:05.51882488Z" diff --git a/incubator/podgrab/4.2.10/Chart.lock b/incubator/podgrab/4.2.10/Chart.lock index dc3e5678874..0393334c4e7 100644 --- a/incubator/podgrab/4.2.10/Chart.lock +++ b/incubator/podgrab/4.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:26.300040607Z" +generated: "2021-07-03T09:56:06.925109642Z" diff --git a/incubator/pretend-youre-xyzzy/1.0.2/Chart.lock b/incubator/pretend-youre-xyzzy/1.0.2/Chart.lock index e08d0b1e487..b9f2d1a4597 100644 --- a/incubator/pretend-youre-xyzzy/1.0.2/Chart.lock +++ b/incubator/pretend-youre-xyzzy/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:27.979646512Z" +generated: "2021-07-03T09:56:08.365633979Z" diff --git a/incubator/protonmail-bridge/1.0.2/Chart.lock b/incubator/protonmail-bridge/1.0.2/Chart.lock index a9b66e0d59c..1fa0947a879 100644 --- a/incubator/protonmail-bridge/1.0.2/Chart.lock +++ b/incubator/protonmail-bridge/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:29.630817758Z" +generated: "2021-07-03T09:56:09.781261379Z" diff --git a/incubator/prowlarr/1.2.12/Chart.lock b/incubator/prowlarr/1.2.12/Chart.lock index 086955db5bb..506d46a0ae3 100644 --- a/incubator/prowlarr/1.2.12/Chart.lock +++ b/incubator/prowlarr/1.2.12/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:31.248304063Z" +generated: "2021-07-03T09:56:11.255115297Z" diff --git a/incubator/pyload/1.0.2/Chart.lock b/incubator/pyload/1.0.2/Chart.lock index 9710c3aacbd..0a91d6f28f8 100644 --- a/incubator/pyload/1.0.2/Chart.lock +++ b/incubator/pyload/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:32.996319021Z" +generated: "2021-07-03T09:56:12.593958069Z" diff --git a/incubator/qbittorrent/6.2.10/Chart.lock b/incubator/qbittorrent/6.2.10/Chart.lock index da4ba4f57cd..e75e094ffd9 100644 --- a/incubator/qbittorrent/6.2.10/Chart.lock +++ b/incubator/qbittorrent/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:34.6686177Z" +generated: "2021-07-03T09:56:13.982420112Z" diff --git a/incubator/readarr/6.2.11/Chart.lock b/incubator/readarr/6.2.11/Chart.lock index abbd8d393db..1e0935482f3 100644 --- a/incubator/readarr/6.2.11/Chart.lock +++ b/incubator/readarr/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:36.31776643Z" +generated: "2021-07-03T09:56:15.36562299Z" diff --git a/incubator/reg/1.2.10/Chart.lock b/incubator/reg/1.2.10/Chart.lock index c20c06e2ace..42bc0033ec1 100644 --- a/incubator/reg/1.2.10/Chart.lock +++ b/incubator/reg/1.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:37.986882043Z" +generated: "2021-07-03T09:56:16.731650985Z" diff --git a/incubator/sabnzbd/6.2.10/Chart.lock b/incubator/sabnzbd/6.2.10/Chart.lock index c1916b457fb..e6b113c02a9 100644 --- a/incubator/sabnzbd/6.2.10/Chart.lock +++ b/incubator/sabnzbd/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:39.674041943Z" +generated: "2021-07-03T09:56:18.07379054Z" diff --git a/incubator/ser2sock/1.0.2/Chart.lock b/incubator/ser2sock/1.0.2/Chart.lock index 28dbf24270d..dc49e9a5212 100644 --- a/incubator/ser2sock/1.0.2/Chart.lock +++ b/incubator/ser2sock/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:41.339171561Z" +generated: "2021-07-03T09:56:19.432564483Z" diff --git a/incubator/stash/1.0.4/Chart.lock b/incubator/stash/1.0.4/Chart.lock index 0e25c9bea6f..204c6ef7c64 100644 --- a/incubator/stash/1.0.4/Chart.lock +++ b/incubator/stash/1.0.4/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:43.018691296Z" +generated: "2021-07-03T09:56:20.725646649Z" diff --git a/incubator/thelounge/1.2.11/Chart.lock b/incubator/thelounge/1.2.11/Chart.lock index b3e7106a012..dc3a98a5cc3 100644 --- a/incubator/thelounge/1.2.11/Chart.lock +++ b/incubator/thelounge/1.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:44.682201435Z" +generated: "2021-07-03T09:56:22.090968763Z" diff --git a/incubator/tvheadend/7.2.10/Chart.lock b/incubator/tvheadend/7.2.10/Chart.lock index 620dc24d239..b136e941149 100644 --- a/incubator/tvheadend/7.2.10/Chart.lock +++ b/incubator/tvheadend/7.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:46.313644532Z" +generated: "2021-07-03T09:56:23.504130151Z" diff --git a/incubator/unifi/6.2.10/Chart.lock b/incubator/unifi/6.2.10/Chart.lock index faf4964e0ac..4d159566f8f 100644 --- a/incubator/unifi/6.2.10/Chart.lock +++ b/incubator/unifi/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:47.943287734Z" +generated: "2021-07-03T09:56:24.937688201Z" diff --git a/incubator/unpackerr/1.2.10/Chart.lock b/incubator/unpackerr/1.2.10/Chart.lock index 00e70e07a4a..7744287434c 100644 --- a/incubator/unpackerr/1.2.10/Chart.lock +++ b/incubator/unpackerr/1.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:32:49.673308128Z" +generated: "2021-07-03T09:56:26.392582506Z" diff --git a/incubator/xteve/1.0.2/Chart.lock b/incubator/xteve/1.0.2/Chart.lock index 5092f2a71f2..2709a209996 100644 --- a/incubator/xteve/1.0.2/Chart.lock +++ b/incubator/xteve/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:32:51.343960737Z" +generated: "2021-07-03T09:56:27.838388472Z" diff --git a/non-free/resilio-sync/1.0.2/Chart.lock b/non-free/resilio-sync/1.0.2/Chart.lock index 0d6ef4ab191..1b2cb8ecaec 100644 --- a/non-free/resilio-sync/1.0.2/Chart.lock +++ b/non-free/resilio-sync/1.0.2/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org version: 6.4.6 digest: sha256:62462b014e612993c96d9c3dc6837db165d640a7c7240ce8849b35bd902d46a5 -generated: "2021-07-03T09:33:08.369093112Z" +generated: "2021-07-03T09:56:42.041222472Z" diff --git a/stable/collabora-online/6.2.11/Chart.lock b/stable/collabora-online/6.2.11/Chart.lock index 15aacf2d11f..0a93c9fe36c 100644 --- a/stable/collabora-online/6.2.11/Chart.lock +++ b/stable/collabora-online/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:28.541887229Z" +generated: "2021-07-03T09:54:29.779019063Z" diff --git a/stable/deepstack-cpu/4.2.10/Chart.lock b/stable/deepstack-cpu/4.2.10/Chart.lock index 5f7daa2806a..ed55629abd2 100644 --- a/stable/deepstack-cpu/4.2.10/Chart.lock +++ b/stable/deepstack-cpu/4.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:30.500151898Z" +generated: "2021-07-03T09:54:31.381491583Z" diff --git a/stable/emby/6.2.10/Chart.lock b/stable/emby/6.2.10/Chart.lock index 40a4ee87a22..87e8df734dc 100644 --- a/stable/emby/6.2.10/Chart.lock +++ b/stable/emby/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:32.14504671Z" +generated: "2021-07-03T09:54:32.824439884Z" diff --git a/stable/esphome/6.2.10/Chart.lock b/stable/esphome/6.2.10/Chart.lock index 2a1a6360eee..f024d4c9902 100644 --- a/stable/esphome/6.2.10/Chart.lock +++ b/stable/esphome/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:33.793975517Z" +generated: "2021-07-03T09:54:34.277765942Z" diff --git a/stable/handbrake/6.2.10/Chart.lock b/stable/handbrake/6.2.10/Chart.lock index f69f5337bdc..c5fc33c5403 100644 --- a/stable/handbrake/6.2.10/Chart.lock +++ b/stable/handbrake/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:35.563831838Z" +generated: "2021-07-03T09:54:35.681538542Z" diff --git a/stable/home-assistant/6.2.10/Chart.lock b/stable/home-assistant/6.2.10/Chart.lock index 39bd8846e83..1c1b72c1877 100644 --- a/stable/home-assistant/6.2.10/Chart.lock +++ b/stable/home-assistant/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:37.228572362Z" +generated: "2021-07-03T09:54:37.054244767Z" diff --git a/stable/jackett/6.2.11/Chart.lock b/stable/jackett/6.2.11/Chart.lock index 99f92915c3d..f1dae959130 100644 --- a/stable/jackett/6.2.11/Chart.lock +++ b/stable/jackett/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:38.94702428Z" +generated: "2021-07-03T09:54:38.416456126Z" diff --git a/stable/jellyfin/6.2.10/Chart.lock b/stable/jellyfin/6.2.10/Chart.lock index 78a7c648e5d..a672e680e11 100644 --- a/stable/jellyfin/6.2.10/Chart.lock +++ b/stable/jellyfin/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:40.665237225Z" +generated: "2021-07-03T09:54:39.801420142Z" diff --git a/stable/kms/6.2.10/Chart.lock b/stable/kms/6.2.10/Chart.lock index 1c97fd715bf..6eebcdd9a8f 100644 --- a/stable/kms/6.2.10/Chart.lock +++ b/stable/kms/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:42.439051465Z" +generated: "2021-07-03T09:54:41.124884544Z" diff --git a/stable/lidarr/6.2.10/Chart.lock b/stable/lidarr/6.2.10/Chart.lock index 2ab581fab06..56677caf73a 100644 --- a/stable/lidarr/6.2.10/Chart.lock +++ b/stable/lidarr/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:44.164893536Z" +generated: "2021-07-03T09:54:42.462283959Z" diff --git a/stable/ombi/6.2.11/Chart.lock b/stable/ombi/6.2.11/Chart.lock index 7e2fdbba898..c52970bcd2a 100644 --- a/stable/ombi/6.2.11/Chart.lock +++ b/stable/ombi/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:45.917226015Z" +generated: "2021-07-03T09:54:43.903708521Z" diff --git a/stable/plex/5.2.10/Chart.lock b/stable/plex/5.2.10/Chart.lock index 4bb71569024..a003c99f023 100644 --- a/stable/plex/5.2.10/Chart.lock +++ b/stable/plex/5.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:47.722905684Z" +generated: "2021-07-03T09:54:45.316599256Z" diff --git a/stable/radarr/6.2.10/Chart.lock b/stable/radarr/6.2.10/Chart.lock index e9f12819a56..65c9219b0bc 100644 --- a/stable/radarr/6.2.10/Chart.lock +++ b/stable/radarr/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:49.38717327Z" +generated: "2021-07-03T09:54:46.712443758Z" diff --git a/stable/sonarr/6.2.10/Chart.lock b/stable/sonarr/6.2.10/Chart.lock index 55572fe9ebb..368c645b00b 100644 --- a/stable/sonarr/6.2.10/Chart.lock +++ b/stable/sonarr/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:51.098547589Z" +generated: "2021-07-03T09:54:48.151256652Z" diff --git a/stable/syncthing/6.2.10/Chart.lock b/stable/syncthing/6.2.10/Chart.lock index 2dfeddb78ae..290eaa9c4c6 100644 --- a/stable/syncthing/6.2.10/Chart.lock +++ b/stable/syncthing/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:52.771778454Z" +generated: "2021-07-03T09:54:49.587945961Z" diff --git a/stable/tautulli/6.2.10/Chart.lock b/stable/tautulli/6.2.10/Chart.lock index 30e80805ed8..c127519b7d4 100644 --- a/stable/tautulli/6.2.10/Chart.lock +++ b/stable/tautulli/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:54.43256609Z" +generated: "2021-07-03T09:54:51.047832104Z" diff --git a/stable/traefik/6.3.18/CONFIG.md b/stable/traefik/6.3.18/CONFIG.md new file mode 100644 index 00000000000..dddbce20079 --- /dev/null +++ b/stable/traefik/6.3.18/CONFIG.md @@ -0,0 +1,9 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/traefik/6.3.18/Chart.lock b/stable/traefik/6.3.18/Chart.lock new file mode 100644 index 00000000000..961df98ec19 --- /dev/null +++ b/stable/traefik/6.3.18/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.4.6 +digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 +generated: "2021-07-03T09:54:52.403003903Z" diff --git a/stable/traefik/6.3.18/Chart.yaml b/stable/traefik/6.3.18/Chart.yaml new file mode 100644 index 00000000000..ad6ade709ff --- /dev/null +++ b/stable/traefik/6.3.18/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: '2.4' +dependencies: +- name: common + repository: https://truecharts.org/ + version: 6.4.6 +deprecated: false +description: A Traefik based Reverse Proxy and Certificate Manager +home: https://github.com/truecharts/apps/tree/master/charts/stable/traefik +icon: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png +keywords: +- traefik +- ingress +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +- email: kjeld@schouten-lebbing.nl + name: Ornias1993 + url: truecharts.org +name: traefik +sources: +- https://github.com/traefik/traefik +- https://github.com/traefik/traefik-helm-chart +- https://traefik.io/ +type: application +upstream_version: v9.19.2 +version: 6.3.18 diff --git a/stable/traefik/6.3.18/LICENSE b/stable/traefik/6.3.18/LICENSE new file mode 100644 index 00000000000..907ff83212c --- /dev/null +++ b/stable/traefik/6.3.18/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Containous + Copyright 2020 Traefik Labs + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/stable/traefik/6.3.18/README.md b/stable/traefik/6.3.18/README.md new file mode 100644 index 00000000000..c60122da9cc --- /dev/null +++ b/stable/traefik/6.3.18/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 6.3.16](https://img.shields.io/badge/Version-6.3.16-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.4](https://img.shields.io/badge/AppVersion-2.4-informational?style=flat-square) + +A Traefik based Reverse Proxy and Certificate Manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 6.4.6 | + +## Installing the Chart + +To install the chart with the release name `traefik` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `traefik` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/6.3.18/app-readme.md b/stable/traefik/6.3.18/app-readme.md new file mode 100644 index 00000000000..753f84f7068 --- /dev/null +++ b/stable/traefik/6.3.18/app-readme.md @@ -0,0 +1,3 @@ +A Traefik based Reverse Proxy and Certificate Manager +This App is supplied by TrueCharts, for more information please visit https://truecharts.org +A Traefik based Reverse Proxy and Certificate Manager diff --git a/stable/traefik/6.3.18/charts/common-6.4.6.tgz b/stable/traefik/6.3.18/charts/common-6.4.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e164276cc562bde71d7f5f691f657f7bd6e5fb86 GIT binary patch literal 23381 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%0D!5wK#MLl9pbO~ieKqtx`gofven-Xo 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/ to match the name of the +service generated. +Users can provide an override for an explicit service they want bound via `.Values.providers.kubernetesIngress.publishedService.pathOverride` +*/}} +{{- define "providers.kubernetesIngress.publishedServicePath" -}} +{{- $defServiceName := printf "%s/%s" .Release.Namespace (include "traefik.fullname" .) -}} +{{- $servicePath := default $defServiceName .Values.providers.kubernetesIngress.publishedService.pathOverride }} +{{- print $servicePath | trimSuffix "-" -}} +{{- end -}} + +{{/* +Construct a comma-separated list of whitelisted namespaces +*/}} +{{- define "providers.kubernetesIngress.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesIngress.namespaces) }} +{{- end -}} +{{- define "providers.kubernetesCRD.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesCRD.namespaces) }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/_podtemplate.tpl b/stable/traefik/6.3.18/templates/_podtemplate.tpl new file mode 100644 index 00000000000..9e8fe8aca34 --- /dev/null +++ b/stable/traefik/6.3.18/templates/_podtemplate.tpl @@ -0,0 +1,265 @@ +{{- define "traefik.podTemplate" }} + metadata: + annotations: + {{- with .Values.deployment.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.deployment.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "traefik.serviceAccountName" . }} + terminationGracePeriodSeconds: 60 + hostNetwork: {{ .Values.hostNetwork }} + {{- with .Values.deployment.dnsPolicy }} + dnsPolicy: {{ . }} + {{- end }} + {{- with .Values.deployment.initContainers }} + initContainers: + {{- toYaml . | nindent 6 }} + {{- end }} + containers: + - image: "{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ template "traefik.fullname" . }} + resources: + {{- with .Values.resources }} + {{- toYaml . | nindent 10 }} + {{- end }} + readinessProbe: + httpGet: + path: /ping + port: {{ default .Values.ports.traefik.port .Values.ports.traefik.healthchecksPort }} + failureThreshold: 1 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 2 + livenessProbe: + httpGet: + path: /ping + port: {{ default .Values.ports.traefik.port .Values.ports.traefik.healthchecksPort }} + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 2 + ports: + {{- range $name, $config := .Values.ports }} + {{- if $config }} + - name: {{ $name | quote }} + containerPort: {{ $config.port }} + {{- if $config.hostPort }} + hostPort: {{ $config.hostPort }} + {{- end }} + {{- if $config.hostIP }} + hostIP: {{ $config.hostIP }} + {{- end }} + protocol: {{ default "TCP" $config.protocol | quote }} + {{- end }} + {{- end }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 10 }} + {{- end }} + volumeMounts: + - name: {{ .Values.persistence.name }} + mountPath: {{ .Values.persistence.path }} + {{- if .Values.persistence.subPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + - name: tmp + mountPath: /tmp + {{- $root := . }} + {{- range .Values.volumes }} + - name: {{ tpl (.name) $root }} + mountPath: {{ .mountPath }} + readOnly: true + {{- end }} + {{- if .Values.experimental.plugins.enabled }} + - name: plugins + mountPath: "/plugins-storage" + {{- end }} + {{- if .Values.additionalVolumeMounts }} + {{- toYaml .Values.additionalVolumeMounts | nindent 10 }} + {{- end }} + args: + {{- with .Values.globalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- range $name, $config := .Values.ports }} + {{- if $config }} + - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" + {{- end }} + {{- end }} + - "--api.dashboard=true" + - "--ping=true" + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress" + {{- if and .Values.service.enabled .Values.providers.kubernetesIngress.publishedService.enabled }} + - "--providers.kubernetesingress.ingressendpoint.publishedservice={{ template "providers.kubernetesIngress.publishedServicePath" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.labelSelector }} + - "--providers.kubernetesingress.labelSelector={{ .Values.providers.kubernetesIngress.labelSelector }}" + {{- end }} + {{- end }} + {{- if .Values.experimental.kubernetesGateway.enabled }} + - "--providers.kubernetesgateway" + - "--experimental.kubernetesgateway" + {{- end }} + {{- if and .Values.rbac.enabled .Values.rbac.namespaced }} + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd.namespaces={{ template "providers.kubernetesCRD.namespaces" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress.namespaces={{ template "providers.kubernetesIngress.namespaces" . }}" + {{- end }} + {{- end }} + {{- range $entrypoint, $config := $.Values.ports }} + {{- if $config.redirectTo }} + {{- $toPort := index $.Values.ports $config.redirectTo }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.exposedPort }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- end }} + {{- if $config.tls }} + {{- if $config.tls.enabled }} + - "--entrypoints.{{ $entrypoint }}.http.tls=true" + {{- if $config.tls.options }} + - "--entrypoints.{{ $entrypoint }}.http.tls.options={{ $config.tls.options }}" + {{- end }} + {{- if $config.tls.certResolver }} + - "--entrypoints.{{ $entrypoint }}.http.tls.certResolver={{ $config.tls.certResolver }}" + {{- end }} + {{- if $config.tls.domains }} + {{- range $index, $domain := $config.tls.domains }} + {{- if $domain.main }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].main={{ $domain.main }}" + {{- end }} + {{- if $domain.sans }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].sans={{ join "," $domain.sans }}" + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- with .Values.logs }} + {{- if .general.format }} + - "--log.format={{ .general.format }}" + {{- end }} + {{- if ne .general.level "ERROR" }} + - "--log.level={{ .general.level | upper }}" + {{- end }} + {{- if .access.enabled }} + - "--accesslog=true" + {{- if .access.format }} + - "--accesslog.format={{ .access.format }}" + {{- end }} + {{- if .access.bufferingsize }} + - "--accesslog.bufferingsize={{ .access.bufferingsize }}" + {{- end }} + {{- if .access.filters }} + {{- if .access.filters.statuscodes }} + - "--accesslog.filters.statuscodes={{ .access.filters.statuscodes }}" + {{- end }} + {{- if .access.filters.retryattempts }} + - "--accesslog.filters.retryattempts" + {{- end }} + {{- if .access.filters.minduration }} + - "--accesslog.filters.minduration={{ .access.filters.minduration }}" + {{- end }} + {{- end }} + - "--accesslog.fields.defaultmode={{ .access.fields.general.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.general.names }} + - "--accesslog.fields.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + - "--accesslog.fields.headers.defaultmode={{ .access.fields.headers.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.headers.names }} + - "--accesslog.fields.headers.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + {{- end }} + {{- end }} + {{- if .Values.pilot.enabled }} + - "--pilot.token={{ .Values.pilot.token }}" + {{- end }} + {{- if hasKey .Values.pilot "dashboard" }} + - "--pilot.dashboard={{ .Values.pilot.dashboard }}" + {{- end }} + {{- with .Values.additionalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- with .Values.env }} + env: + {{- toYaml . | nindent 10 }} + {{- end }} + {{- with .Values.envFrom }} + envFrom: + {{- toYaml . | nindent 10 }} + {{- end }} + {{- if .Values.deployment.additionalContainers }} + {{- toYaml .Values.deployment.additionalContainers | nindent 6 }} + {{- end }} + volumes: + - name: {{ .Values.persistence.name }} + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ default (include "traefik.fullname" .) .Values.persistence.existingClaim }} + {{- else }} + emptyDir: {} + {{- end }} + - name: tmp + emptyDir: {} + {{- $root := . }} + {{- range .Values.volumes }} + - name: {{ tpl (.name) $root }} + {{- if eq .type "secret" }} + secret: + secretName: {{ tpl (.name) $root }} + {{- else if eq .type "configMap" }} + configMap: + name: {{ tpl (.name) $root }} + {{- end }} + {{- end }} + {{- if .Values.deployment.additionalVolumes }} + {{- toYaml .Values.deployment.additionalVolumes | nindent 8 }} + {{- end }} + {{- if .Values.experimental.plugins.enabled }} + - name: plugins + emptyDir: {} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName }} + {{- end }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} +{{ end -}} diff --git a/stable/traefik/6.3.18/templates/custom/common.yaml b/stable/traefik/6.3.18/templates/custom/common.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/6.3.18/templates/custom/middleware-namespace.yaml b/stable/traefik/6.3.18/templates/custom/middleware-namespace.yaml new file mode 100644 index 00000000000..16156ee5e12 --- /dev/null +++ b/stable/traefik/6.3.18/templates/custom/middleware-namespace.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: traefikmiddlewares + namespace: traefikmiddlewares + annotations: + "helm.sh/hook": pre-install diff --git a/stable/traefik/6.3.18/templates/custom/middlewares/basic-middleware.yaml b/stable/traefik/6.3.18/templates/custom/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..73d39aded4e --- /dev/null +++ b/stable/traefik/6.3.18/templates/custom/middlewares/basic-middleware.yaml @@ -0,0 +1,57 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: compress + namespace: traefikmiddlewares +spec: + compress: {} +--- +# Here, an average of 300 requests per second is allowed. +# In addition, a burst of 200 requests is allowed. +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-ratelimit + namespace: traefikmiddlewares +spec: + rateLimit: + average: 300 + burst: 200 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-secure-headers + namespace: traefikmiddlewares +spec: + headers: + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + accessControlMaxAge: 100 + sslRedirect: true + # stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + # forceSTSHeader: true + contentTypeNosniff: true + browserXssFilter: true + sslForceHost: true + referrerPolicy: same-origin + customResponseHeaders: + X-Robots-Tag: 'none' + server: '' +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: chain-basic + namespace: traefikmiddlewares +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: basic-secure-headers + - name: compress diff --git a/stable/traefik/6.3.18/templates/custom/middlewares/basicauth.yaml b/stable/traefik/6.3.18/templates/custom/middlewares/basicauth.yaml new file mode 100644 index 00000000000..4e0f326a2f4 --- /dev/null +++ b/stable/traefik/6.3.18/templates/custom/middlewares/basicauth.yaml @@ -0,0 +1,29 @@ +{{ range $index, $middlewareData := .Values.middlewares.basicAuth }} +--- +{{- $users := list }} +{{ range $index, $userdata := $middlewareData.users }} + {{ $users = append $users ( htpasswd $userdata.username $userdata.password ) }} +{{ end }} + +apiVersion: v1 +kind: Secret +metadata: + name: {{printf "%v-%v" $middlewareData.name "secret" }} + namespace: traefikmiddlewares +type: Opaque +stringData: + users: | + {{- range $index, $user := $users }} + {{ printf "%s" $user }} + {{- end }} +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + basicAuth: + secret: {{printf "%v-%v" $middlewareData.name "secret" }} +{{ end }} diff --git a/stable/traefik/6.3.18/templates/custom/middlewares/forwardauth.yaml b/stable/traefik/6.3.18/templates/custom/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..bb90d33775e --- /dev/null +++ b/stable/traefik/6.3.18/templates/custom/middlewares/forwardauth.yaml @@ -0,0 +1,23 @@ +{{ range $index, $middlewareData := .Values.middlewares.forwardAuth }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: traefikmiddlewares +spec: + forwardAuth: + address: {{ $middlewareData.address }} + {{- if $middlewareData.authResponseHeaders }} + authResponseHeaders: {{ $middlewareData.authResponseHeaders }} + {{- end }} + {{- if $middlewareData.authRequestHeaders }} + authRequestHeaders: {{ $middlewareData.authRequestHeaders }} + {{- end }} + {{- if $middlewareData.authResponseHeadersRegex }} + authResponseHeadersRegex: {{ $middlewareData.authResponseHeadersRegex }} + {{- end }} + {{- if $middlewareData.trustForwardHeader }} + trustForwardHeader: true + {{- end }} +{{ end }} diff --git a/stable/traefik/6.3.18/templates/custom/portal.yaml b/stable/traefik/6.3.18/templates/custom/portal.yaml new file mode 100644 index 00000000000..92e80f287a2 --- /dev/null +++ b/stable/traefik/6.3.18/templates/custom/portal.yaml @@ -0,0 +1,45 @@ +{{- if .Values.portal }} +{{- if .Values.portal.enabled }} +{{- $ingr := dict -}} +{{- $host := "$node_ip" }} +{{- $port := 443 }} +{{- $protocol := "https" }} +{{- $portProtocol := "" }} +{{- $path := "/dashboard/" }} + +{{- if $ingr }} + {{- if $ingr.enabled }} + {{- range $ingr.hosts }} + {{- if .hostTpl }} + {{ $host = ( tpl .hostTpl $ ) }} + {{- else if .host }} + {{ $host = .host }} + {{- else }} + {{ $host = "$node_ip" }} + {{- end }} + {{- if .paths }} + {{- $path = (first .paths).path }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} + +{{- if eq $host "$node_ip" }} + {{- $port = .Values.ports.traefik.exposedPort }} + {{- $protocol = "http" }} +{{- end }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + protocol: {{ $protocol }} + host: {{ $host | quote }} + port: {{ $port | quote }} + path: {{ $path | quote }} + url: {{ ( printf "%v://%v:%v%v" $protocol $host $port $path ) | quote }} +{{- end }} +{{- end }} diff --git a/stable/traefik/6.3.18/templates/daemonset.yaml b/stable/traefik/6.3.18/templates/daemonset.yaml new file mode 100644 index 00000000000..469e105c358 --- /dev/null +++ b/stable/traefik/6.3.18/templates/daemonset.yaml @@ -0,0 +1,40 @@ +{{- if and .Values.deployment.enabled (eq .Values.deployment.kind "DaemonSet") -}} + {{- with .Values.additionalArguments -}} + {{- range . -}} + {{- if contains ".acme." . -}} + {{- fail (printf "ACME functionality is not supported when running Traefik as a DaemonSet") -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- if eq (default .Chart.AppVersion .Values.image.tag) "latest" }} + {{- fail "\n\n ERROR: latest tag should not be used" }} + {{- end }} + +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.deployment.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: {{ .Values.rollingUpdate.maxUnavailable }} + template: {{ template "traefik.podTemplate" . }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/dashboard-hook-ingressroute.yaml b/stable/traefik/6.3.18/templates/dashboard-hook-ingressroute.yaml new file mode 100644 index 00000000000..ec278c26910 --- /dev/null +++ b/stable/traefik/6.3.18/templates/dashboard-hook-ingressroute.yaml @@ -0,0 +1,28 @@ +{{- if .Values.ingressRoute.dashboard.enabled -}} +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: {{ template "traefik.fullname" . }}-dashboard + annotations: + helm.sh/hook: "post-install,post-upgrade" + {{- with .Values.ingressRoute.dashboard.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.ingressRoute.dashboard.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + entryPoints: + - traefik + routes: + - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + kind: Rule + services: + - name: api@internal + kind: TraefikService +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/deployment.yaml b/stable/traefik/6.3.18/templates/deployment.yaml new file mode 100644 index 00000000000..494087cfd0a --- /dev/null +++ b/stable/traefik/6.3.18/templates/deployment.yaml @@ -0,0 +1,47 @@ +{{- if and .Values.deployment.enabled (eq .Values.deployment.kind "Deployment") -}} + {{- if gt (int .Values.deployment.replicas) 1 -}} + {{- with .Values.additionalArguments -}} + {{- range . -}} + {{- if contains ".acme." . -}} + {{- fail (printf "You can not enable acme if you set more than one traefik replica") -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- if eq (default .Chart.AppVersion .Values.image.tag) "latest" }} + {{- fail "\n\n ERROR: latest tag should not be used" }} + {{- end }} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.deployment.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.deployment.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ default 1 .Values.deployment.replicas }} + {{- end }} + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + strategy: + type: RollingUpdate + rollingUpdate: + {{- with .Values.rollingUpdate }} + {{- toYaml . | nindent 6 }} + {{- end }} + template: {{ template "traefik.podTemplate" . }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/gateway.yaml b/stable/traefik/6.3.18/templates/gateway.yaml new file mode 100644 index 00000000000..85194211fe5 --- /dev/null +++ b/stable/traefik/6.3.18/templates/gateway.yaml @@ -0,0 +1,33 @@ +{{- if .Values.experimental.kubernetesGateway.enabled }} +--- +apiVersion: networking.x-k8s.io/v1alpha1 +kind: Gateway +metadata: + name: traefik-gateway + namespace: default +spec: + gatewayClassName: traefik + listeners: + - port: {{ .Values.ports.web.port }} + protocol: HTTP + routes: + kind: HTTPRoute + selector: + matchLabels: + app: {{ .Values.experimental.kubernetesGateway.appLabelSelector }} + + {{- range $index, $cert:= .Values.experimental.kubernetesGateway.certificates }} + - port: {{ $.Values.ports.websecure.port }} + protocol: HTTPS + tls: + certificateRef: + name: {{ $cert.name }} + group: {{ $cert.group }} + kind: {{ $cert.kind }} + routes: + kind: HTTPRoute + selector: + matchLabels: + app: {{ $.Values.experimental.kubernetesGateway.appLabelSelector }} + {{- end }} +{{- end }} diff --git a/stable/traefik/6.3.18/templates/gatewayclass.yaml b/stable/traefik/6.3.18/templates/gatewayclass.yaml new file mode 100644 index 00000000000..61bf007db1e --- /dev/null +++ b/stable/traefik/6.3.18/templates/gatewayclass.yaml @@ -0,0 +1,9 @@ +{{- if .Values.experimental.kubernetesGateway.enabled }} +--- +kind: GatewayClass +apiVersion: networking.x-k8s.io/v1alpha1 +metadata: + name: traefik +spec: + controller: traefik.io/gateway-controller +{{- end }} diff --git a/stable/traefik/6.3.18/templates/hpa.yaml b/stable/traefik/6.3.18/templates/hpa.yaml new file mode 100644 index 00000000000..bf37117de6a --- /dev/null +++ b/stable/traefik/6.3.18/templates/hpa.yaml @@ -0,0 +1,20 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ template "traefik.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: +{{ toYaml .Values.autoscaling.metrics | indent 4 }} +{{- end }} diff --git a/stable/traefik/6.3.18/templates/ingressclass.yaml b/stable/traefik/6.3.18/templates/ingressclass.yaml new file mode 100644 index 00000000000..7c62458c82e --- /dev/null +++ b/stable/traefik/6.3.18/templates/ingressclass.yaml @@ -0,0 +1,23 @@ +{{- if and .Values.ingressClass.enabled (semverCompare ">=2.3.0" (default .Chart.AppVersion .Values.image.tag)) -}} + {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/IngressClass" }} +apiVersion: networking.k8s.io/v1 + {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/IngressClass" }} +apiVersion: networking.k8s.io/v1beta1 + {{- else if or (eq .Values.ingressClass.fallbackApiVersion "v1beta1") (eq .Values.ingressClass.fallbackApiVersion "v1") }} +apiVersion: {{ printf "networking.k8s.io/%s" .Values.ingressClass.fallbackApiVersion }} + {{- else }} + {{- fail "\n\n ERROR: You must have atleast networking.k8s.io/v1beta1 to use ingressClass" }} + {{- end }} +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: {{ .Values.ingressClass.isDefaultClass | quote }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + name: {{ template "traefik.fullname" . }} +spec: + controller: traefik.io/ingress-controller +{{- end }} diff --git a/stable/traefik/6.3.18/templates/poddisruptionbudget.yaml b/stable/traefik/6.3.18/templates/poddisruptionbudget.yaml new file mode 100644 index 00000000000..9893e521759 --- /dev/null +++ b/stable/traefik/6.3.18/templates/poddisruptionbudget.yaml @@ -0,0 +1,22 @@ +{{- if .Values.podDisruptionBudget.enabled -}} +apiVersion: policy/v1beta1 +kind: PodDisruptionBudget +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- if .Values.podDisruptionBudget.minAvailable }} + minAvailable: {{ .Values.podDisruptionBudget.minAvailable | int }} + {{- end }} + {{- if .Values.podDisruptionBudget.maxUnavailable }} + maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable | int }} + {{- end }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/clusterrole.yaml b/stable/traefik/6.3.18/templates/rbac/clusterrole.yaml new file mode 100644 index 00000000000..2c63e006414 --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/clusterrole.yaml @@ -0,0 +1,112 @@ +{{- if and .Values.rbac.enabled (not .Values.rbac.namespaced) -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses + - ingressclasses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + resources: + - ingressroutes + - ingressroutetcps + - ingressrouteudps + - middlewares + - tlsoptions + - tlsstores + - traefikservices + - serverstransports + verbs: + - get + - list + - watch +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: + - policy + resourceNames: + - {{ template "traefik.fullname" . }} + resources: + - podsecuritypolicies + verbs: + - use +{{- end -}} +{{- if .Values.experimental.kubernetesGateway.enabled }} + - apiGroups: + - networking.x-k8s.io + resources: + - gatewayclasses + - gatewayclasses/status + - gateways + verbs: + - get + - list + - watch + - apiGroups: + - networking.x-k8s.io + resources: + - gatewayclasses/status + verbs: + - get + - patch + - update + - apiGroups: + - networking.x-k8s.io + resources: + - gateways/status + verbs: + - get + - patch + - update + - apiGroups: + - networking.x-k8s.io + resources: + - httproutes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.x-k8s.io + resources: + - httproutes/status + verbs: + - get + - patch + - update +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/clusterrolebinding.yaml b/stable/traefik/6.3.18/templates/rbac/clusterrolebinding.yaml new file mode 100644 index 00000000000..509e92ff2b7 --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/clusterrolebinding.yaml @@ -0,0 +1,19 @@ +{{- if and .Values.rbac.enabled (not .Values.rbac.namespaced) }} +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "traefik.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "traefik.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/podsecuritypolicy.yaml b/stable/traefik/6.3.18/templates/rbac/podsecuritypolicy.yaml new file mode 100644 index 00000000000..66bc1458d55 --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/podsecuritypolicy.yaml @@ -0,0 +1,68 @@ +{{- if .Values.podSecurityPolicy.enabled }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + annotations: + seccomp.security.alpha.kubernetes.io/allowedProfileNames: runtime/default + seccomp.security.alpha.kubernetes.io/defaultProfileName: runtime/default + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + privileged: false + allowPrivilegeEscalation: false + requiredDropCapabilities: + - ALL +{{- if not .Values.securityContext.runAsNonRoot }} + allowedCapabilities: + - NET_BIND_SERVICE +{{- end }} + hostNetwork: {{ .Values.hostNetwork }} + hostIPC: false + hostPID: false + fsGroup: +{{- if .Values.securityContext.runAsNonRoot }} + ranges: + - max: 65535 + min: 1 + rule: MustRunAs +{{- else }} + rule: RunAsAny +{{- end }} +{{- if .Values.hostNetwork }} + hostPorts: + - max: 65535 + min: 1 +{{- end }} + readOnlyRootFilesystem: true + runAsUser: +{{- if .Values.securityContext.runAsNonRoot }} + rule: MustRunAsNonRoot +{{- else }} + rule: RunAsAny +{{- end }} + seLinux: + rule: RunAsAny + supplementalGroups: +{{- if .Values.securityContext.runAsNonRoot }} + ranges: + - max: 65535 + min: 1 + rule: MustRunAs +{{- else }} + rule: RunAsAny +{{- end }} + volumes: + - configMap + - downwardAPI + - secret + - emptyDir + - projected +{{- if .Values.persistence.enabled }} + - persistentVolumeClaim +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/role.yaml b/stable/traefik/6.3.18/templates/rbac/role.yaml new file mode 100644 index 00000000000..6c763065d6f --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/role.yaml @@ -0,0 +1,61 @@ +{{- if and .Values.rbac.enabled .Values.rbac.namespaced }} +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + resources: + - ingressroutes + - ingressroutetcps + - ingressrouteudps + - middlewares + - tlsoptions + - tlsstores + - traefikservices + - serverstransports + verbs: + - get + - list + - watch +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: + - extensions + resourceNames: + - {{ template "traefik.fullname" . }} + resources: + - podsecuritypolicies + verbs: + - use +{{- end -}} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/rolebinding.yaml b/stable/traefik/6.3.18/templates/rbac/rolebinding.yaml new file mode 100644 index 00000000000..10416401867 --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/rolebinding.yaml @@ -0,0 +1,19 @@ +{{- if and .Values.rbac.enabled .Values.rbac.namespaced }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ template "traefik.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "traefik.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/rbac/serviceaccount.yaml b/stable/traefik/6.3.18/templates/rbac/serviceaccount.yaml new file mode 100644 index 00000000000..bcc941eec95 --- /dev/null +++ b/stable/traefik/6.3.18/templates/rbac/serviceaccount.yaml @@ -0,0 +1,15 @@ +{{- if not .Values.serviceAccount.name -}} +kind: ServiceAccount +apiVersion: v1 +metadata: + name: {{ include "traefik.serviceAccountName" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + annotations: + {{- with .Values.serviceAccountAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/service.yaml b/stable/traefik/6.3.18/templates/service.yaml new file mode 100644 index 00000000000..745bb9102d7 --- /dev/null +++ b/stable/traefik/6.3.18/templates/service.yaml @@ -0,0 +1,114 @@ +{{- if .Values.service.enabled -}} + +{{ $tcpPorts := dict }} +{{ $udpPorts := dict }} +{{- range $name, $config := .Values.ports }} + {{- if eq (toString $config.protocol) "UDP" }} + {{ $_ := set $udpPorts $name $config }} + {{- else }} + {{ $_ := set $tcpPorts $name $config }} + {{- end }} +{{- end }} + +apiVersion: v1 +kind: List +metadata: + name: {{ template "traefik.fullname" . }} +items: +{{- if $tcpPorts }} + - apiVersion: v1 + kind: Service + metadata: + name: {{ template "traefik.fullname" . }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.service.labels }} + {{- toYaml . | nindent 8 }} + {{- end }} + annotations: + {{- with .Values.service.annotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- $type := default "LoadBalancer" .Values.service.type }} + type: {{ $type }} + {{- with .Values.service.spec }} + {{- toYaml . | nindent 6 }} + {{- end }} + selector: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + ports: + {{- range $name, $config := $tcpPorts }} + {{- if $config.expose }} + - port: {{ default $config.port $config.exposedPort }} + name: {{ $name }} + targetPort: {{ $name | quote }} + protocol: {{ default "TCP" $config.protocol | quote }} + {{- if $config.nodePort }} + nodePort: {{ $config.nodePort }} + {{- end }} + {{- end }} + {{- end }} + {{- if eq $type "LoadBalancer" }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 6 }} + {{- end -}} + {{- end -}} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 6 }} + {{- end -}} +{{- end }} + +{{- if $udpPorts }} + - apiVersion: v1 + kind: Service + metadata: + name: {{ template "traefik.fullname" . }}-udp + labels: + app.kubernetes.io/name: {{ template "traefik.name" . }} + helm.sh/chart: {{ template "traefik.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + annotations: + {{- with .Values.service.annotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- $type := default "LoadBalancer" .Values.service.type }} + type: {{ $type }} + {{- with .Values.service.spec }} + {{- toYaml . | nindent 6 }} + {{- end }} + selector: + app.kubernetes.io/name: {{ template "traefik.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + ports: + {{- range $name, $config := $udpPorts }} + {{- if $config.expose }} + - port: {{ default $config.port $config.exposedPort }} + name: {{ $name }} + targetPort: {{ $name | quote }} + protocol: {{ default "UDP" $config.protocol | quote }} + {{- if $config.nodePort }} + nodePort: {{ $config.nodePort }} + {{- end }} + {{- end }} + {{- end }} + {{- if eq $type "LoadBalancer" }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 6 }} + {{- end -}} + {{- end -}} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 6 }} + {{- end -}} +{{- end }} +{{- end -}} diff --git a/stable/traefik/6.3.18/templates/tlsoption.yaml b/stable/traefik/6.3.18/templates/tlsoption.yaml new file mode 100644 index 00000000000..ec46e8bbc94 --- /dev/null +++ b/stable/traefik/6.3.18/templates/tlsoption.yaml @@ -0,0 +1,14 @@ +{{- range $name, $config := .Values.tlsOptions }} +apiVersion: traefik.containo.us/v1alpha1 +kind: TLSOption +metadata: + name: {{ $name }} + labels: + app.kubernetes.io/name: {{ template "traefik.name" $ }} + helm.sh/chart: {{ template "traefik.chart" $ }} + app.kubernetes.io/managed-by: {{ $.Release.Service }} + app.kubernetes.io/instance: {{ $.Release.Name }} +spec: + {{- toYaml $config | nindent 2 }} +--- +{{- end -}} diff --git a/stable/traefik/6.3.18/test_values.yaml b/stable/traefik/6.3.18/test_values.yaml new file mode 100644 index 00000000000..74e6d4760b6 --- /dev/null +++ b/stable/traefik/6.3.18/test_values.yaml @@ -0,0 +1,426 @@ +# Default values for Traefik +image: + name: traefik + # defaults to appVersion + tag: v2.4 + pullPolicy: IfNotPresent + +# +# Configure the deployment +# +deployment: + enabled: true + # Can be either Deployment or DaemonSet + kind: Deployment + # Number of pods of the deployment (only applies when kind == Deployment) + replicas: 1 + # Additional deployment annotations (e.g. for jaeger-operator sidecar injection) + annotations: {} + # Additional deployment labels (e.g. for filtering deployment by custom labels) + labels: {} + # Additional pod annotations (e.g. for mesh injection or prometheus scraping) + podAnnotations: {} + # Additional Pod labels (e.g. for filtering Pod by custom labels) + podLabels: {} + # Additional containers (e.g. for metric offloading sidecars) + additionalContainers: [] + # https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=host + # - name: socat-proxy + # image: alpine/socat:1.0.5 + # args: ["-s", "-u", "udp-recv:8125", "unix-sendto:/socket/socket"] + # volumeMounts: + # - name: dsdsocket + # mountPath: /socket + # Additional volumes available for use with initContainers and additionalContainers + additionalVolumes: [] + # - name: dsdsocket + # hostPath: + # path: /var/run/statsd-exporter + # Additional initContainers (e.g. for setting file permission as shown below) + initContainers: [] + # The "volume-permissions" init container is required if you run into permission issues. + # Related issue: https://github.com/traefik/traefik/issues/6972 + # - name: volume-permissions + # image: busybox:1.31.1 + # command: ["sh", "-c", "chmod -Rv 600 /data/*"] + # volumeMounts: + # - name: data + # mountPath: /data + # Custom pod DNS policy. Apply if `hostNetwork: true` + # dnsPolicy: ClusterFirstWithHostNet + # Additional imagePullSecrets + imagePullSecrets: [] + # - name: myRegistryKeySecretName + +# Pod disruption budget +podDisruptionBudget: + enabled: false + # maxUnavailable: 1 + # minAvailable: 0 + +# Use ingressClass. Ignored if Traefik version < 2.3 / kubernetes < 1.18.x +ingressClass: + # true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12 + enabled: false + isDefaultClass: false + # Use to force a networking.k8s.io API Version for certain CI/CD applications. E.g. "v1beta1" + fallbackApiVersion: + +# Activate Pilot integration +pilot: + enabled: false + token: "" + # Toggle Pilot Dashboard + # dashboard: false + +# Enable experimental features +experimental: + plugins: + enabled: false + kubernetesGateway: + enabled: false + appLabelSelector: "traefik" + certificates: [] + # - group: "core" + # kind: "Secret" + # name: "mysecret" + +# Create an IngressRoute for the dashboard +ingressRoute: + dashboard: + enabled: true + # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) + annotations: {} + # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) + labels: {} + +rollingUpdate: + maxUnavailable: 1 + maxSurge: 1 + + +# +# Configure providers +# +providers: + kubernetesCRD: + enabled: true + namespaces: [] + # - "default" + kubernetesIngress: + enabled: true + # labelSelector: environment=production,method=traefik + namespaces: [] + # - "default" + # IP used for Kubernetes Ingress endpoints + publishedService: + enabled: false + # Published Kubernetes Service to copy status from. Format: namespace/servicename + # By default this Traefik service + # pathOverride: "" + +# +# Add volumes to the traefik pod. The volume name will be passed to tpl. +# This can be used to mount a cert pair or a configmap that holds a config.toml file. +# After the volume has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--providers.file.filename=/config/dynamic.toml" +# - "--ping" +# - "--ping.entrypoint=web" +volumes: [] +# - name: public-cert +# mountPath: "/certs" +# type: secret +# - name: '{{ printf "%s-configs" .Release.Name }}' +# mountPath: "/config" +# type: configMap + +# Additional volumeMounts to add to the Traefik container +additionalVolumeMounts: [] + # For instance when using a logshipper for access logs + # - name: traefik-logs + # mountPath: /var/log/traefik + +# Logs +# https://docs.traefik.io/observability/logs/ +logs: + # Traefik logs concern everything that happens to Traefik itself (startup, configuration, events, shutdown, and so on). + general: + # By default, the logs use a text format (common), but you can + # also ask for the json format in the format option + # format: json + # By default, the level is set to ERROR. Alternative logging levels are DEBUG, PANIC, FATAL, ERROR, WARN, and INFO. + level: INFO + access: + # To enable access logs + enabled: false + # By default, logs are written using the Common Log Format (CLF). + # To write logs in JSON, use json in the format option. + # If the given format is unsupported, the default (CLF) is used instead. + # format: json + # To write the logs in an asynchronous fashion, specify a bufferingSize option. + # This option represents the number of log lines Traefik will keep in memory before writing + # them to the selected output. In some cases, this option can greatly help performances. + # bufferingSize: 100 + # Filtering https://docs.traefik.io/observability/access-logs/#filtering + filters: {} + # statuscodes: "200,300-302" + # retryattempts: true + # minduration: 10ms + # Fields + # https://docs.traefik.io/observability/access-logs/#limiting-the-fieldsincluding-headers + fields: + general: + defaultmode: keep + names: {} + # Examples: + # ClientUsername: drop + headers: + defaultmode: drop + names: {} + # Examples: + # User-Agent: redact + # Authorization: drop + # Content-Type: keep + +globalArguments: + - "--global.checknewversion" + +# +# Configure Traefik static configuration +# Additional arguments to be passed at Traefik's binary +# All available options available on https://docs.traefik.io/reference/static-configuration/cli/ +## Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"` +additionalArguments: + - "--metrics.prometheus" + - "--ping" + - "--serverstransport.insecureskipverify=true" + +# Environment variables to be passed to Traefik's binary +env: [] +# - name: SOME_VAR +# value: some-var-value +# - name: SOME_VAR_FROM_CONFIG_MAP +# valueFrom: +# configMapRef: +# name: configmap-name +# key: config-key +# - name: SOME_SECRET +# valueFrom: +# secretKeyRef: +# name: secret-name +# key: secret-key + +envFrom: [] +# - configMapRef: +# name: config-map-name +# - secretRef: +# name: secret-name + +# Configure ports +ports: + # The name of this one can't be changed as it is used for the readiness and + # liveness probes, but you can adjust its config to your liking + traefik: + port: 9000 + # Use hostPort if set. + # hostPort: 9000 + # + # Use hostIP if set. If not set, Kubernetes will default to 0.0.0.0, which + # means it's listening on all your interfaces and all your IPs. You may want + # to set this value if you need traefik to listen on specific interface + # only. + # hostIP: 192.168.100.10 + + # Defines whether the port is exposed if service.type is LoadBalancer or + # NodePort. + # + # You SHOULD NOT expose the traefik port on production deployments. + # If you want to access it from outside of your cluster, + # use `kubectl port-forward` or create a secure ingress + expose: false + # The exposed port for this service + exposedPort: 9000 + # The port protocol (TCP/UDP) + protocol: TCP + web: + port: 9080 + # hostPort: 8000 + expose: true + exposedPort: 80 + # The port protocol (TCP/UDP) + protocol: TCP + # Use nodeport if set. This is useful if you have configured Traefik in a + # LoadBalancer + # nodePort: 32080 + # Port Redirections + # Added in 2.2, you can make permanent redirects via entrypoints. + # https://docs.traefik.io/routing/entrypoints/#redirection + redirectTo: websecure + websecure: + port: 9443 + # hostPort: 8443 + expose: true + exposedPort: 443 + # The port protocol (TCP/UDP) + protocol: TCP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls + tls: + enabled: true + +# TLS Options are created as TLSOption CRDs +# https://doc.traefik.io/traefik/https/tls/#tls-options +# Example: +tlsOptions: + default: + sniStrict: false + minVersion: VersionTLS12 + curvePreferences: + - CurveP521 + - CurveP384 + cipherSuites: + - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 + - TLS_AES_128_GCM_SHA256 + - TLS_AES_256_GCM_SHA384 + - TLS_CHACHA20_POLY1305_SHA256 + +# Options for the main traefik service, where the entrypoints traffic comes +# from. +service: + enabled: true + type: LoadBalancer + # Additional annotations (e.g. for cloud provider specific config) + annotations: {} + # Additional service labels (e.g. for filtering Service by custom labels) + labels: {} + # Additional entries here will be added to the service spec. Cannot contains + # type, selector or ports entries. + spec: {} + # externalTrafficPolicy: Cluster + # loadBalancerIP: "1.2.3.4" + # clusterIP: "2.3.4.5" + loadBalancerSourceRanges: [] + # - 192.168.0.1/32 + # - 172.16.0.0/16 + externalIPs: [] + # - 1.2.3.4 + +## Create HorizontalPodAutoscaler object. +## +autoscaling: + enabled: false +# minReplicas: 1 +# maxReplicas: 10 +# metrics: +# - type: Resource +# resource: +# name: cpu +# targetAverageUtilization: 60 +# - type: Resource +# resource: +# name: memory +# targetAverageUtilization: 60 + +# Enable persistence using Persistent Volume Claims +# ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ +# After the pvc has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: +# additionalArguments: +# - "--certificatesresolvers.le.acme.storage=/data/acme.json" +# It will persist TLS certificates. +persistence: + enabled: false + name: data + accessMode: ReadWriteOnce + size: 128Mi + path: /data + +# If hostNetwork is true, runs traefik in the host network namespace +# To prevent unschedulabel pods due to port collisions, if hostNetwork=true +# and replicas>1, a pod anti-affinity is recommended and will be set if the +# affinity is left as default. +hostNetwork: false + +# Whether Role Based Access Control objects like roles and rolebindings should be created +rbac: + enabled: true + + # If set to false, installs ClusterRole and ClusterRoleBinding so Traefik can be used across namespaces. + # If set to true, installs namespace-specific Role and RoleBinding and requires provider configuration be set to that same namespace + namespaced: false + +# Enable to create a PodSecurityPolicy and assign it to the Service Account via RoleBinding or ClusterRoleBinding +podSecurityPolicy: + enabled: false + +# The service account the pods will use to interact with the Kubernetes API +serviceAccount: + # If set, an existing service account is used + # If not set, a service account is created automatically using the fullname template + name: "" + +# Additional serviceAccount annotations (e.g. for oidc authentication) +serviceAccountAnnotations: {} + +resources: {} + # requests: + # cpu: "100m" + # memory: "50Mi" + # limits: + # cpu: "300m" + # memory: "150Mi" +affinity: {} +# # This example pod anti-affinity forces the scheduler to put traefik pods +# # on nodes where no other traefik pods are scheduled. +# # It should be used when hostNetwork: true to prevent port conflicts +# podAntiAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# - labelSelector: +# matchExpressions: +# - key: app +# operator: In +# values: +# - {{ template "traefik.name" . }} +# topologyKey: failure-domain.beta.kubernetes.io/zone +nodeSelector: {} +tolerations: [] + +# Pods can have priority. +# Priority indicates the importance of a Pod relative to other Pods. +priorityClassName: "" + +# Set the container security context +# To run the container with ports below 1024 this will need to be adjust to run as root +securityContext: + capabilities: + drop: [ALL] + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 + +podSecurityContext: + fsGroup: 65532 + +## SCALE Middleware Handlers + +middlewares: + basicAuth: [] + # - name: basicauthexample + # users: + # - username: testuser + # password: testpassword + forwardAuth: [] + # - name: forwardAuthexample + # address: https://auth.example.com/ + # authResponseHeaders: + # - X-Secret + # - X-Auth-User + # authRequestHeaders: + # - "Accept" + # - "X-CustomHeader" + # authResponseHeadersRegex: "^X-" + # trustForwardHeader: true diff --git a/stable/traefik/6.3.18/values.yaml b/stable/traefik/6.3.18/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/transmission/6.2.11/Chart.lock b/stable/transmission/6.2.11/Chart.lock index 215761bc9d3..90d7731558f 100644 --- a/stable/transmission/6.2.11/Chart.lock +++ b/stable/transmission/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:57.857967014Z" +generated: "2021-07-03T09:54:53.810238055Z" diff --git a/stable/truecommand/6.2.10/Chart.lock b/stable/truecommand/6.2.10/Chart.lock index 9a09cf9dcd2..9c31b708bcc 100644 --- a/stable/truecommand/6.2.10/Chart.lock +++ b/stable/truecommand/6.2.10/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:30:59.532697761Z" +generated: "2021-07-03T09:54:55.15025413Z" diff --git a/stable/vaultwarden/3.3.11/Chart.lock b/stable/vaultwarden/3.3.11/Chart.lock index 5ab89505a7d..385d911b0e3 100644 --- a/stable/vaultwarden/3.3.11/Chart.lock +++ b/stable/vaultwarden/3.3.11/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.bitnami.com/bitnami version: 10.5.1 digest: sha256:149bdb1d86af9ee151a969f50173fe78b5608cf9686bfe670c42bc8bd44941eb -generated: "2021-07-03T09:31:04.169339016Z" +generated: "2021-07-03T09:54:59.09670844Z" diff --git a/stable/zwavejs2mqtt/6.2.11/Chart.lock b/stable/zwavejs2mqtt/6.2.11/Chart.lock index b0a81e22175..5f4bcaae0d5 100644 --- a/stable/zwavejs2mqtt/6.2.11/Chart.lock +++ b/stable/zwavejs2mqtt/6.2.11/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://truecharts.org/ version: 6.4.6 digest: sha256:538720a0b7dae2557bbf660fcf8e3ab31dffb049f87238f80b4e958dc92ad543 -generated: "2021-07-03T09:31:09.170522113Z" +generated: "2021-07-03T09:55:03.292473621Z"