From 1cc07bb765abc9adf5c34f92541ecc6cce1d48ef Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 14 Nov 2021 10:48:15 +0000 Subject: [PATCH] Commit new App releases for TrueCharts Signed-off-by: TrueCharts-Bot --- core/k8s-gateway/4.0.8/CHANGELOG.md | 99 + core/k8s-gateway/4.0.8/CONFIG.md | 8 + core/k8s-gateway/4.0.8/Chart.lock | 6 + core/k8s-gateway/4.0.8/Chart.yaml | 28 + core/k8s-gateway/4.0.8/README.md | 37 + core/k8s-gateway/4.0.8/app-readme.md | 3 + .../k8s-gateway/4.0.8/charts/common-8.5.6.tgz | Bin 0 -> 33994 bytes core/k8s-gateway/4.0.8/helm-values.md | 67 + core/k8s-gateway/4.0.8/ix_values.yaml | 121 ++ core/k8s-gateway/4.0.8/questions.yaml | 1405 ++++++++++++++ .../4.0.8/templates/_configmap.tpl | 64 + core/k8s-gateway/4.0.8/templates/common.yaml | 24 + core/k8s-gateway/4.0.8/values.yaml | 0 core/k8s-gateway/item.yaml | 4 + core/traefik/10.0.10/CHANGELOG.md | 99 + core/traefik/10.0.10/CONFIG.md | 8 + core/traefik/10.0.10/Chart.lock | 6 + core/traefik/10.0.10/Chart.yaml | 30 + core/traefik/10.0.10/README.md | 39 + core/traefik/10.0.10/app-readme.md | 3 + core/traefik/10.0.10/charts/common-8.5.6.tgz | Bin 0 -> 33994 bytes core/traefik/10.0.10/crds/ingressroute.yaml | 198 ++ .../traefik/10.0.10/crds/ingressroutetcp.yaml | 160 ++ .../traefik/10.0.10/crds/ingressrouteudp.yaml | 84 + core/traefik/10.0.10/crds/middlewares.yaml | 563 ++++++ core/traefik/10.0.10/crds/middlewarestcp.yaml | 59 + .../10.0.10/crds/serverstransports.yaml | 101 + core/traefik/10.0.10/crds/tlsoptions.yaml | 87 + core/traefik/10.0.10/crds/tlsstores.yaml | 64 + .../traefik/10.0.10/crds/traefikservices.yaml | 270 +++ core/traefik/10.0.10/helm-values.md | 48 + core/traefik/10.0.10/ix_values.yaml | 312 +++ core/traefik/10.0.10/questions.yaml | 1684 +++++++++++++++++ core/traefik/10.0.10/templates/_args.tpl | 141 ++ core/traefik/10.0.10/templates/_helpers.tpl | 22 + .../10.0.10/templates/_ingressclass.tpl | 24 + .../10.0.10/templates/_ingressroute.tpl | 25 + .../traefik/10.0.10/templates/_portalhook.tpl | 26 + .../traefik/10.0.10/templates/_tlsoptions.tpl | 12 + core/traefik/10.0.10/templates/common.yaml | 24 + .../middlewares/basic-middleware.yaml | 65 + .../templates/middlewares/basicauth.yaml | 34 + .../10.0.10/templates/middlewares/chain.yaml | 21 + .../templates/middlewares/forwardauth.yaml | 30 + .../templates/middlewares/ipwhitelist.yaml | 33 + .../templates/middlewares/ratelimit.yaml | 19 + .../templates/middlewares/redirectScheme.yaml | 19 + .../templates/middlewares/redirectregex.yaml | 20 + .../templates/middlewares/tc-nextcloud.yaml | 25 + core/traefik/10.0.10/values.yaml | 0 core/traefik/item.yaml | 4 + 51 files changed, 6225 insertions(+) create mode 100644 core/k8s-gateway/4.0.8/CHANGELOG.md create mode 100644 core/k8s-gateway/4.0.8/CONFIG.md create mode 100644 core/k8s-gateway/4.0.8/Chart.lock create mode 100644 core/k8s-gateway/4.0.8/Chart.yaml create mode 100644 core/k8s-gateway/4.0.8/README.md create mode 100644 core/k8s-gateway/4.0.8/app-readme.md create mode 100644 core/k8s-gateway/4.0.8/charts/common-8.5.6.tgz create mode 100644 core/k8s-gateway/4.0.8/helm-values.md create mode 100644 core/k8s-gateway/4.0.8/ix_values.yaml create mode 100644 core/k8s-gateway/4.0.8/questions.yaml create mode 100644 core/k8s-gateway/4.0.8/templates/_configmap.tpl create mode 100644 core/k8s-gateway/4.0.8/templates/common.yaml create mode 100644 core/k8s-gateway/4.0.8/values.yaml create mode 100644 core/k8s-gateway/item.yaml create mode 100644 core/traefik/10.0.10/CHANGELOG.md create mode 100644 core/traefik/10.0.10/CONFIG.md create mode 100644 core/traefik/10.0.10/Chart.lock create mode 100644 core/traefik/10.0.10/Chart.yaml create mode 100644 core/traefik/10.0.10/README.md create mode 100644 core/traefik/10.0.10/app-readme.md create mode 100644 core/traefik/10.0.10/charts/common-8.5.6.tgz create mode 100644 core/traefik/10.0.10/crds/ingressroute.yaml create mode 100644 core/traefik/10.0.10/crds/ingressroutetcp.yaml create mode 100644 core/traefik/10.0.10/crds/ingressrouteudp.yaml create mode 100644 core/traefik/10.0.10/crds/middlewares.yaml create mode 100644 core/traefik/10.0.10/crds/middlewarestcp.yaml create mode 100644 core/traefik/10.0.10/crds/serverstransports.yaml create mode 100644 core/traefik/10.0.10/crds/tlsoptions.yaml create mode 100644 core/traefik/10.0.10/crds/tlsstores.yaml create mode 100644 core/traefik/10.0.10/crds/traefikservices.yaml create mode 100644 core/traefik/10.0.10/helm-values.md create mode 100644 core/traefik/10.0.10/ix_values.yaml create mode 100644 core/traefik/10.0.10/questions.yaml create mode 100644 core/traefik/10.0.10/templates/_args.tpl create mode 100644 core/traefik/10.0.10/templates/_helpers.tpl create mode 100644 core/traefik/10.0.10/templates/_ingressclass.tpl create mode 100644 core/traefik/10.0.10/templates/_ingressroute.tpl create mode 100644 core/traefik/10.0.10/templates/_portalhook.tpl create mode 100644 core/traefik/10.0.10/templates/_tlsoptions.tpl create mode 100644 core/traefik/10.0.10/templates/common.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/basic-middleware.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/basicauth.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/chain.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/forwardauth.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/ipwhitelist.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/ratelimit.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/redirectScheme.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/redirectregex.yaml create mode 100644 core/traefik/10.0.10/templates/middlewares/tc-nextcloud.yaml create mode 100644 core/traefik/10.0.10/values.yaml create mode 100644 core/traefik/item.yaml diff --git a/core/k8s-gateway/4.0.8/CHANGELOG.md b/core/k8s-gateway/4.0.8/CHANGELOG.md new file mode 100644 index 00000000000..744bc8a3376 --- /dev/null +++ b/core/k8s-gateway/4.0.8/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog
+ + + +### [k8s-gateway-4.0.8](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.7...k8s-gateway-4.0.8) (2021-11-14) + +#### Chore + +* move traefik and k8s gateway to core train + + + + +### [k8s-gateway-4.0.7](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.6...k8s-gateway-4.0.7) (2021-11-09) + +#### Chore + +* update non-major deps helm releases ([#1297](https://github.com/truecharts/apps/issues/1297)) + + + + +### [k8s-gateway-4.0.6](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.5...k8s-gateway-4.0.6) (2021-11-07) + +#### Chore + +* update non-major deps helm releases ([#1295](https://github.com/truecharts/apps/issues/1295)) + + + + +### [k8s-gateway-4.0.5](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.4...k8s-gateway-4.0.5) (2021-11-07) + +#### Chore + +* update non-major deps helm releases ([#1291](https://github.com/truecharts/apps/issues/1291)) + +#### Chore + +* Simplify GUI for deployment, persistence and securityContext ([#1289](https://github.com/truecharts/apps/issues/1289)) + +#### Feat + +* Simplify the Services GUI ([#1290](https://github.com/truecharts/apps/issues/1290)) + + + + +### [k8s-gateway-4.0.4](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.3...k8s-gateway-4.0.4) (2021-11-02) + +#### Chore + +* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) + + + + +### [k8s-gateway-4.0.3](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.2...k8s-gateway-4.0.3) (2021-11-01) + +#### Chore + +* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) + + + + +### [k8s-gateway-4.0.2](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.1...k8s-gateway-4.0.2) (2021-10-26) + +#### Chore + +* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) + + + + +### [k8s-gateway-4.0.1](https://github.com/truecharts/apps/compare/k8s-gateway-4.0.0...k8s-gateway-4.0.1) (2021-10-26) + +#### Chore + +* update helm chart common to v8.3.15 ([#1240](https://github.com/truecharts/apps/issues/1240)) + + + + +### [k8s-gateway-4.0.0](https://github.com/truecharts/apps/compare/k8s-gateway-3.0.16...k8s-gateway-4.0.0) (2021-10-25) + +#### Chore + +* Adapt for TrueNAS SCALE RC1 + + + + +### [k8s-gateway-3.0.16](https://github.com/truecharts/apps/compare/k8s-gateway-3.0.15...k8s-gateway-3.0.16) (2021-10-20) + +#### Chore + +* bump apps, remove duplicates and move incubator to stable for RC1 + diff --git a/core/k8s-gateway/4.0.8/CONFIG.md b/core/k8s-gateway/4.0.8/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/core/k8s-gateway/4.0.8/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/core/k8s-gateway/4.0.8/Chart.lock b/core/k8s-gateway/4.0.8/Chart.lock new file mode 100644 index 00000000000..38bee3bccfc --- /dev/null +++ b/core/k8s-gateway/4.0.8/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 8.5.6 +digest: sha256:c711d63142ad5cb07c166f67914dfd8af0624873e5b4a28e06a758fca11525e8 +generated: "2021-11-14T10:45:50.032837703Z" diff --git a/core/k8s-gateway/4.0.8/Chart.yaml b/core/k8s-gateway/4.0.8/Chart.yaml new file mode 100644 index 00000000000..c97f540911f --- /dev/null +++ b/core/k8s-gateway/4.0.8/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: "0.1.8" +dependencies: +- name: common + repository: https://truecharts.org + version: 8.5.6 +deprecated: false +description: A Helm chart for the k8s_gateway CoreDNS plugin +home: https://github.com/truecharts/apps/tree/master/charts/stable/k8s-gateway +icon: https://cncf-branding.netlify.app/img/projects/coredns/icon/black/coredns-icon-black.png +keywords: +- DNS +- networking +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: k8s-gateway +sources: +- https://github.com/ori-edge/k8s_gateway +type: application +version: 4.0.8 +annotations: + truecharts.org/catagories: | + - networking + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/core/k8s-gateway/4.0.8/README.md b/core/k8s-gateway/4.0.8/README.md new file mode 100644 index 00000000000..eab1331939c --- /dev/null +++ b/core/k8s-gateway/4.0.8/README.md @@ -0,0 +1,37 @@ +# Introduction + +A Helm chart for the k8s_gateway CoreDNS plugin + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should 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 | 8.5.6 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/core/k8s-gateway/4.0.8/app-readme.md b/core/k8s-gateway/4.0.8/app-readme.md new file mode 100644 index 00000000000..52ee5fb89f9 --- /dev/null +++ b/core/k8s-gateway/4.0.8/app-readme.md @@ -0,0 +1,3 @@ +A Helm chart for the k8s_gateway CoreDNS plugin + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/core/k8s-gateway/4.0.8/charts/common-8.5.6.tgz b/core/k8s-gateway/4.0.8/charts/common-8.5.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..aa98070e90b8c839e608d0e0efb27629acc33774 GIT binary patch literal 33994 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 + + + +### [traefik-10.0.10](https://github.com/truecharts/apps/compare/traefik-10.0.9...traefik-10.0.10) (2021-11-14) + +#### Chore + +* move traefik and k8s gateway to core train + + + + +### [traefik-10.0.9](https://github.com/truecharts/apps/compare/traefik-10.0.8...traefik-10.0.9) (2021-11-09) + +#### Chore + +* update non-major deps helm releases ([#1297](https://github.com/truecharts/apps/issues/1297)) +* update non-major ([#1296](https://github.com/truecharts/apps/issues/1296)) + + + + +### [traefik-10.0.8](https://github.com/truecharts/apps/compare/traefik-10.0.7...traefik-10.0.8) (2021-11-07) + +#### Chore + +* update non-major deps helm releases ([#1295](https://github.com/truecharts/apps/issues/1295)) + + + + +### [traefik-10.0.6](https://github.com/truecharts/apps/compare/traefik-10.0.5...traefik-10.0.6) (2021-11-07) + +#### Fix + +* Don't try to run udp services under SCALE (we don't actively test it anyway) + + + + +### [traefik-10.0.5](https://github.com/truecharts/apps/compare/traefik-10.0.4...traefik-10.0.5) (2021-11-07) + +#### Chore + +* update non-major deps helm releases ([#1291](https://github.com/truecharts/apps/issues/1291)) + +#### Chore + +* Simplify GUI for deployment, persistence and securityContext ([#1289](https://github.com/truecharts/apps/issues/1289)) + +#### Feat + +* Simplify the Services GUI ([#1290](https://github.com/truecharts/apps/issues/1290)) + +#### Fix + +* prevent duplicate port use and fix some questions.yaml mistakes + + + + +### [traefik-10.0.4](https://github.com/truecharts/apps/compare/traefik-10.0.3...traefik-10.0.4) (2021-11-02) + +#### Chore + +* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) + + + + +### [traefik-10.0.3](https://github.com/truecharts/apps/compare/traefik-10.0.2...traefik-10.0.3) (2021-11-01) + +#### Chore + +* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) + + + + +### [traefik-10.0.2](https://github.com/truecharts/apps/compare/traefik-10.0.1...traefik-10.0.2) (2021-10-26) + +#### Chore + +* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) + + + + +### [traefik-10.0.1](https://github.com/truecharts/apps/compare/traefik-10.0.0...traefik-10.0.1) (2021-10-26) + +#### Chore + +* update helm chart common to v8.3.15 ([#1240](https://github.com/truecharts/apps/issues/1240)) + + + + +### [traefik-10.0.0](https://github.com/truecharts/apps/compare/traefik-9.0.19...traefik-10.0.0) (2021-10-25) diff --git a/core/traefik/10.0.10/CONFIG.md b/core/traefik/10.0.10/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/core/traefik/10.0.10/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/core/traefik/10.0.10/Chart.lock b/core/traefik/10.0.10/Chart.lock new file mode 100644 index 00000000000..ef8ba8f882a --- /dev/null +++ b/core/traefik/10.0.10/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org + version: 8.5.6 +digest: sha256:c711d63142ad5cb07c166f67914dfd8af0624873e5b4a28e06a758fca11525e8 +generated: "2021-11-14T10:46:16.319201197Z" diff --git a/core/traefik/10.0.10/Chart.yaml b/core/traefik/10.0.10/Chart.yaml new file mode 100644 index 00000000000..b6fa3cb2b2a --- /dev/null +++ b/core/traefik/10.0.10/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "2.5.4" +dependencies: +- name: common + repository: https://truecharts.org + version: 8.5.6 +deprecated: false +description: Test App for Traefik +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 +name: traefik +sources: +- https://github.com/traefik/traefik +- https://github.com/traefik/traefik-helm-chart +- https://traefik.io/ +type: application +version: 10.0.10 +annotations: + truecharts.org/catagories: | + - network + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/core/traefik/10.0.10/README.md b/core/traefik/10.0.10/README.md new file mode 100644 index 00000000000..46d2f6574b5 --- /dev/null +++ b/core/traefik/10.0.10/README.md @@ -0,0 +1,39 @@ +# Introduction + +Test App for Traefik + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should 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 | 8.5.6 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/core/traefik/10.0.10/app-readme.md b/core/traefik/10.0.10/app-readme.md new file mode 100644 index 00000000000..823c75135e0 --- /dev/null +++ b/core/traefik/10.0.10/app-readme.md @@ -0,0 +1,3 @@ +Test App for Traefik + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/core/traefik/10.0.10/charts/common-8.5.6.tgz b/core/traefik/10.0.10/charts/common-8.5.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..aa98070e90b8c839e608d0e0efb27629acc33774 GIT binary patch literal 33994 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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" -}} +{{- $fullName := include "common.names.fullname" . -}} +{{- $defServiceName := printf "%s/%s-tcp" .Release.Namespace $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/core/traefik/10.0.10/templates/_ingressclass.tpl b/core/traefik/10.0.10/templates/_ingressclass.tpl new file mode 100644 index 00000000000..27f8467fc9e --- /dev/null +++ b/core/traefik/10.0.10/templates/_ingressclass.tpl @@ -0,0 +1,24 @@ +{{/* Define the ingressClass */}} +{{- define "traefik.ingressClass" -}} +{{- if .Values.ingressClass.enabled }} + {{- 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 at least networking.k8s.io/v1beta1 to use ingressClass" }} + {{- end }} +--- +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: {{ .Values.ingressClass.isDefaultClass | quote }} + labels: + {{- include "common.labels" . | nindent 4 }} + name: {{ .Release.Name }} +spec: + controller: traefik.io/ingress-controller +{{- end }} +{{- end }} diff --git a/core/traefik/10.0.10/templates/_ingressroute.tpl b/core/traefik/10.0.10/templates/_ingressroute.tpl new file mode 100644 index 00000000000..f848bc108fc --- /dev/null +++ b/core/traefik/10.0.10/templates/_ingressroute.tpl @@ -0,0 +1,25 @@ +{{/* Define the ingressRoute */}} +{{- define "traefik.ingressRoute" -}} +{{- if .Values.ingressRoute.dashboard.enabled }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: {{ include "common.names.fullname" . }}-dashboard + annotations: + {{- with .Values.ingressRoute.dashboard.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "common.labels" . | nindent 4 }} +spec: + entryPoints: + - main + routes: + - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + kind: Rule + services: + - name: api@internal + kind: TraefikService +{{- end -}} +{{- end -}} diff --git a/core/traefik/10.0.10/templates/_portalhook.tpl b/core/traefik/10.0.10/templates/_portalhook.tpl new file mode 100644 index 00000000000..e3586c5d4e9 --- /dev/null +++ b/core/traefik/10.0.10/templates/_portalhook.tpl @@ -0,0 +1,26 @@ +{{/* Define the portalHook */}} +{{- define "traefik.portalhook" -}} +{{- if .Values.portalhook.enabled }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portalhook + namespace: {{ $namespace }} +data: + {{- $ports := dict }} + {{- range $.Values.service }} + {{- range $name, $value := .ports }} + {{- $_ := set $ports $name $value }} + {{- end }} + {{- end }} + {{- range $name, $value := $ports }} + {{ $name }}: {{ $value.port | quote }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/core/traefik/10.0.10/templates/_tlsoptions.tpl b/core/traefik/10.0.10/templates/_tlsoptions.tpl new file mode 100644 index 00000000000..3e5aad3bee9 --- /dev/null +++ b/core/traefik/10.0.10/templates/_tlsoptions.tpl @@ -0,0 +1,12 @@ +{{/* Define the tlsOptions */}} +{{- define "traefik.tlsOptions" -}} +{{- range $name, $config := .Values.tlsOptions }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: TLSOption +metadata: + name: {{ $name }} +spec: + {{- toYaml $config | nindent 2 }} +{{- end }} +{{- end -}} diff --git a/core/traefik/10.0.10/templates/common.yaml b/core/traefik/10.0.10/templates/common.yaml new file mode 100644 index 00000000000..72c57659973 --- /dev/null +++ b/core/traefik/10.0.10/templates/common.yaml @@ -0,0 +1,24 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{- if .Values.metrics }} +{{- if .Values.metrics.prometheus }} +{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "true" -}} +{{- $_ := set .Values.podAnnotations "prometheus.io/path" "/metrics" -}} +{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "9100" -}} +{{- end }} +{{- end }} + +{{- $newArgs := (include "traefik.args" . | fromYaml) }} +{{- $_ := set .Values "newArgs" $newArgs -}} +{{- $mergedargs := concat .Values.args .Values.newArgs.args }} +{{- $_ := set .Values "args" $mergedargs -}} + +{{- include "traefik.portalhook" . }} +{{- include "traefik.tlsOptions" . }} +{{- include "traefik.ingressRoute" . }} +{{- include "traefik.ingressClass" . }} + + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/core/traefik/10.0.10/templates/middlewares/basic-middleware.yaml b/core/traefik/10.0.10/templates/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..fca94384953 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/basic-middleware.yaml @@ -0,0 +1,65 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: compress + namespace: {{ $namespace }} +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: {{ $namespace }} +spec: + rateLimit: + average: 300 + burst: 200 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-secure-headers + namespace: {{ $namespace }} +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 + customRequestHeaders: + X-Forwarded-Proto: "https" + customResponseHeaders: + X-Robots-Tag: 'none' + server: '' +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: chain-basic + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: basic-secure-headers + - name: compress diff --git a/core/traefik/10.0.10/templates/middlewares/basicauth.yaml b/core/traefik/10.0.10/templates/middlewares/basicauth.yaml new file mode 100644 index 00000000000..ccb541742f0 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/basicauth.yaml @@ -0,0 +1,34 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ 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: {{ $namespace }} +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: {{ $namespace }} +spec: + basicAuth: + secret: {{printf "%v-%v" $middlewareData.name "secret" }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/chain.yaml b/core/traefik/10.0.10/templates/middlewares/chain.yaml new file mode 100644 index 00000000000..e22eb312207 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/chain.yaml @@ -0,0 +1,21 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.chain }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + chain: + middlewares: + {{ range $index, $chainData := . }} + - name: {{ printf "%v-%v@%v" $namespace $chainData.name "kubernetescrd" }} + {{ end }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/forwardauth.yaml b/core/traefik/10.0.10/templates/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..7a3e32fdbf7 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/forwardauth.yaml @@ -0,0 +1,30 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.forwardAuth }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + forwardAuth: + address: {{ $middlewareData.address }} + {{- with $middlewareData.authResponseHeaders }} + authResponseHeaders: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with $middlewareData.authRequestHeaders }} + authRequestHeaders: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- if $middlewareData.authResponseHeadersRegex }} + authResponseHeadersRegex: {{ $middlewareData.authResponseHeadersRegex }} + {{- end }} + {{- if $middlewareData.trustForwardHeader }} + trustForwardHeader: true + {{- end }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/ipwhitelist.yaml b/core/traefik/10.0.10/templates/middlewares/ipwhitelist.yaml new file mode 100644 index 00000000000..82467dea0b9 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/ipwhitelist.yaml @@ -0,0 +1,33 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.ipWhiteList }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + ipWhiteList: + sourceRange: + {{- range $middlewareData.sourceRange }} + - {{ . }} + {{- end }} + {{- if $middlewareData.ipStrategy }} + ipStrategy: + {{- if $middlewareData.ipStrategy.depth }} + depth: {{ $middlewareData.ipStrategy.depth }} + {{- end }} + {{- if $middlewareData.ipStrategy.excludedIPs }} + excludedIPs: + {{- range $middlewareData.ipStrategy.excludedIPs }} + - {{ . }} + {{- end }} + {{- end }} + {{- end }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/ratelimit.yaml b/core/traefik/10.0.10/templates/middlewares/ratelimit.yaml new file mode 100644 index 00000000000..144b9d8bf38 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/ratelimit.yaml @@ -0,0 +1,19 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.rateLimit }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + rateLimit: + average: {{ $middlewareData.average }} + burst: {{ $middlewareData.burst }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/redirectScheme.yaml b/core/traefik/10.0.10/templates/middlewares/redirectScheme.yaml new file mode 100644 index 00000000000..f2413f84e19 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/redirectScheme.yaml @@ -0,0 +1,19 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.redirectScheme }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + redirectScheme: + scheme: {{ $middlewareData.scheme }} + permanent: {{ $middlewareData.permanent }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/redirectregex.yaml b/core/traefik/10.0.10/templates/middlewares/redirectregex.yaml new file mode 100644 index 00000000000..683aec93d72 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/redirectregex.yaml @@ -0,0 +1,20 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.redirectRegex }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + redirectRegex: + regex: {{ $middlewareData.regex | quote }} + replacement: {{ $middlewareData.replacement | quote }} + permanent: {{ $middlewareData.replacement }} +{{ end }} diff --git a/core/traefik/10.0.10/templates/middlewares/tc-nextcloud.yaml b/core/traefik/10.0.10/templates/middlewares/tc-nextcloud.yaml new file mode 100644 index 00000000000..6a3019d56c5 --- /dev/null +++ b/core/traefik/10.0.10/templates/middlewares/tc-nextcloud.yaml @@ -0,0 +1,25 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-nextcloud-redirectregex-dav + namespace: {{ $namespace }} +spec: + redirectRegex: + regex: "https://(.*)/.well-known/(card|cal)dav" + replacement: "https://${1}/remote.php/dav/" +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-nextcloud-chain + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: tc-nextcloud-redirectregex-dav diff --git a/core/traefik/10.0.10/values.yaml b/core/traefik/10.0.10/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/traefik/item.yaml b/core/traefik/item.yaml new file mode 100644 index 00000000000..bcb10699a3f --- /dev/null +++ b/core/traefik/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png +categories: +- network +