From 20aa80db4cb49c6063abfc28e394f82146e5c086 Mon Sep 17 00:00:00 2001 From: kjeld Schouten-Lebbing Date: Fri, 19 Nov 2021 01:30:16 +0100 Subject: [PATCH] remove moved apps from stable train --- stable/k8s-gateway/4.0.7/CHANGELOG.md | 99 - stable/k8s-gateway/4.0.7/CONFIG.md | 8 - stable/k8s-gateway/4.0.7/Chart.lock | 6 - stable/k8s-gateway/4.0.7/Chart.yaml | 29 - stable/k8s-gateway/4.0.7/README.md | 37 - stable/k8s-gateway/4.0.7/app-readme.md | 3 - .../k8s-gateway/4.0.7/charts/common-8.5.4.tgz | Bin 33689 -> 0 bytes stable/k8s-gateway/4.0.7/helm-values.md | 67 - stable/k8s-gateway/4.0.7/ix_values.yaml | 121 -- stable/k8s-gateway/4.0.7/questions.yaml | 1404 -------------- .../4.0.7/templates/_configmap.tpl | 64 - .../k8s-gateway/4.0.7/templates/common.yaml | 24 - stable/k8s-gateway/4.0.7/values.yaml | 0 stable/k8s-gateway/item.yaml | 4 - stable/traefik/10.0.8/CHANGELOG.md | 99 - stable/traefik/10.0.8/CONFIG.md | 8 - stable/traefik/10.0.8/Chart.lock | 6 - stable/traefik/10.0.8/Chart.yaml | 30 - stable/traefik/10.0.8/README.md | 39 - stable/traefik/10.0.8/app-readme.md | 3 - stable/traefik/10.0.8/charts/common-8.5.3.tgz | Bin 33624 -> 0 bytes stable/traefik/10.0.8/crds/ingressroute.yaml | 198 -- .../traefik/10.0.8/crds/ingressroutetcp.yaml | 160 -- .../traefik/10.0.8/crds/ingressrouteudp.yaml | 84 - stable/traefik/10.0.8/crds/middlewares.yaml | 563 ------ .../traefik/10.0.8/crds/middlewarestcp.yaml | 59 - .../10.0.8/crds/serverstransports.yaml | 101 - stable/traefik/10.0.8/crds/tlsoptions.yaml | 87 - stable/traefik/10.0.8/crds/tlsstores.yaml | 64 - .../traefik/10.0.8/crds/traefikservices.yaml | 270 --- stable/traefik/10.0.8/helm-values.md | 48 - stable/traefik/10.0.8/ix_values.yaml | 312 --- stable/traefik/10.0.8/questions.yaml | 1684 ----------------- stable/traefik/10.0.8/templates/_args.tpl | 141 -- stable/traefik/10.0.8/templates/_helpers.tpl | 22 - .../10.0.8/templates/_ingressclass.tpl | 24 - .../10.0.8/templates/_ingressroute.tpl | 25 - .../traefik/10.0.8/templates/_portalhook.tpl | 26 - .../traefik/10.0.8/templates/_tlsoptions.tpl | 12 - stable/traefik/10.0.8/templates/common.yaml | 24 - .../middlewares/basic-middleware.yaml | 65 - .../templates/middlewares/basicauth.yaml | 34 - .../10.0.8/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 - stable/traefik/10.0.8/values.yaml | 0 stable/traefik/10.0.9/CHANGELOG.md | 99 - stable/traefik/10.0.9/CONFIG.md | 8 - stable/traefik/10.0.9/Chart.lock | 6 - stable/traefik/10.0.9/Chart.yaml | 30 - stable/traefik/10.0.9/README.md | 39 - stable/traefik/10.0.9/app-readme.md | 3 - stable/traefik/10.0.9/charts/common-8.5.4.tgz | Bin 33689 -> 0 bytes stable/traefik/10.0.9/crds/ingressroute.yaml | 198 -- .../traefik/10.0.9/crds/ingressroutetcp.yaml | 160 -- .../traefik/10.0.9/crds/ingressrouteudp.yaml | 84 - stable/traefik/10.0.9/crds/middlewares.yaml | 563 ------ .../traefik/10.0.9/crds/middlewarestcp.yaml | 59 - .../10.0.9/crds/serverstransports.yaml | 101 - stable/traefik/10.0.9/crds/tlsoptions.yaml | 87 - stable/traefik/10.0.9/crds/tlsstores.yaml | 64 - .../traefik/10.0.9/crds/traefikservices.yaml | 270 --- stable/traefik/10.0.9/helm-values.md | 48 - stable/traefik/10.0.9/ix_values.yaml | 312 --- stable/traefik/10.0.9/questions.yaml | 1684 ----------------- stable/traefik/10.0.9/templates/_args.tpl | 141 -- stable/traefik/10.0.9/templates/_helpers.tpl | 22 - .../10.0.9/templates/_ingressclass.tpl | 24 - .../10.0.9/templates/_ingressroute.tpl | 25 - .../traefik/10.0.9/templates/_portalhook.tpl | 26 - .../traefik/10.0.9/templates/_tlsoptions.tpl | 12 - stable/traefik/10.0.9/templates/common.yaml | 24 - .../middlewares/basic-middleware.yaml | 65 - .../templates/middlewares/basicauth.yaml | 34 - .../10.0.9/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 - stable/traefik/10.0.9/values.yaml | 0 stable/traefik/item.yaml | 4 - 87 files changed, 10580 deletions(-) delete mode 100644 stable/k8s-gateway/4.0.7/CHANGELOG.md delete mode 100644 stable/k8s-gateway/4.0.7/CONFIG.md delete mode 100644 stable/k8s-gateway/4.0.7/Chart.lock delete mode 100644 stable/k8s-gateway/4.0.7/Chart.yaml delete mode 100644 stable/k8s-gateway/4.0.7/README.md delete mode 100644 stable/k8s-gateway/4.0.7/app-readme.md delete mode 100644 stable/k8s-gateway/4.0.7/charts/common-8.5.4.tgz delete mode 100644 stable/k8s-gateway/4.0.7/helm-values.md delete mode 100644 stable/k8s-gateway/4.0.7/ix_values.yaml delete mode 100644 stable/k8s-gateway/4.0.7/questions.yaml delete mode 100644 stable/k8s-gateway/4.0.7/templates/_configmap.tpl delete mode 100644 stable/k8s-gateway/4.0.7/templates/common.yaml delete mode 100644 stable/k8s-gateway/4.0.7/values.yaml delete mode 100644 stable/k8s-gateway/item.yaml delete mode 100644 stable/traefik/10.0.8/CHANGELOG.md delete mode 100644 stable/traefik/10.0.8/CONFIG.md delete mode 100644 stable/traefik/10.0.8/Chart.lock delete mode 100644 stable/traefik/10.0.8/Chart.yaml delete mode 100644 stable/traefik/10.0.8/README.md delete mode 100644 stable/traefik/10.0.8/app-readme.md delete mode 100644 stable/traefik/10.0.8/charts/common-8.5.3.tgz delete mode 100644 stable/traefik/10.0.8/crds/ingressroute.yaml delete mode 100644 stable/traefik/10.0.8/crds/ingressroutetcp.yaml delete mode 100644 stable/traefik/10.0.8/crds/ingressrouteudp.yaml delete mode 100644 stable/traefik/10.0.8/crds/middlewares.yaml delete mode 100644 stable/traefik/10.0.8/crds/middlewarestcp.yaml delete mode 100644 stable/traefik/10.0.8/crds/serverstransports.yaml delete mode 100644 stable/traefik/10.0.8/crds/tlsoptions.yaml delete mode 100644 stable/traefik/10.0.8/crds/tlsstores.yaml delete mode 100644 stable/traefik/10.0.8/crds/traefikservices.yaml delete mode 100644 stable/traefik/10.0.8/helm-values.md delete mode 100644 stable/traefik/10.0.8/ix_values.yaml delete mode 100644 stable/traefik/10.0.8/questions.yaml delete mode 100644 stable/traefik/10.0.8/templates/_args.tpl delete mode 100644 stable/traefik/10.0.8/templates/_helpers.tpl delete mode 100644 stable/traefik/10.0.8/templates/_ingressclass.tpl delete mode 100644 stable/traefik/10.0.8/templates/_ingressroute.tpl delete mode 100644 stable/traefik/10.0.8/templates/_portalhook.tpl delete mode 100644 stable/traefik/10.0.8/templates/_tlsoptions.tpl delete mode 100644 stable/traefik/10.0.8/templates/common.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/basic-middleware.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/basicauth.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/chain.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/forwardauth.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/ipwhitelist.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/ratelimit.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/redirectScheme.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/redirectregex.yaml delete mode 100644 stable/traefik/10.0.8/templates/middlewares/tc-nextcloud.yaml delete mode 100644 stable/traefik/10.0.8/values.yaml delete mode 100644 stable/traefik/10.0.9/CHANGELOG.md delete mode 100644 stable/traefik/10.0.9/CONFIG.md delete mode 100644 stable/traefik/10.0.9/Chart.lock delete mode 100644 stable/traefik/10.0.9/Chart.yaml delete mode 100644 stable/traefik/10.0.9/README.md delete mode 100644 stable/traefik/10.0.9/app-readme.md delete mode 100644 stable/traefik/10.0.9/charts/common-8.5.4.tgz delete mode 100644 stable/traefik/10.0.9/crds/ingressroute.yaml delete mode 100644 stable/traefik/10.0.9/crds/ingressroutetcp.yaml delete mode 100644 stable/traefik/10.0.9/crds/ingressrouteudp.yaml delete mode 100644 stable/traefik/10.0.9/crds/middlewares.yaml delete mode 100644 stable/traefik/10.0.9/crds/middlewarestcp.yaml delete mode 100644 stable/traefik/10.0.9/crds/serverstransports.yaml delete mode 100644 stable/traefik/10.0.9/crds/tlsoptions.yaml delete mode 100644 stable/traefik/10.0.9/crds/tlsstores.yaml delete mode 100644 stable/traefik/10.0.9/crds/traefikservices.yaml delete mode 100644 stable/traefik/10.0.9/helm-values.md delete mode 100644 stable/traefik/10.0.9/ix_values.yaml delete mode 100644 stable/traefik/10.0.9/questions.yaml delete mode 100644 stable/traefik/10.0.9/templates/_args.tpl delete mode 100644 stable/traefik/10.0.9/templates/_helpers.tpl delete mode 100644 stable/traefik/10.0.9/templates/_ingressclass.tpl delete mode 100644 stable/traefik/10.0.9/templates/_ingressroute.tpl delete mode 100644 stable/traefik/10.0.9/templates/_portalhook.tpl delete mode 100644 stable/traefik/10.0.9/templates/_tlsoptions.tpl delete mode 100644 stable/traefik/10.0.9/templates/common.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/basic-middleware.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/basicauth.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/chain.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/forwardauth.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/ipwhitelist.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/ratelimit.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/redirectScheme.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/redirectregex.yaml delete mode 100644 stable/traefik/10.0.9/templates/middlewares/tc-nextcloud.yaml delete mode 100644 stable/traefik/10.0.9/values.yaml delete mode 100644 stable/traefik/item.yaml diff --git a/stable/k8s-gateway/4.0.7/CHANGELOG.md b/stable/k8s-gateway/4.0.7/CHANGELOG.md deleted file mode 100644 index 4d8197e3614..00000000000 --- a/stable/k8s-gateway/4.0.7/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - - -### [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 - - - - -### [k8s-gateway-3.0.13](https://github.com/truecharts/apps/compare/k8s-gateway-3.0.12...k8s-gateway-3.0.13) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons - diff --git a/stable/k8s-gateway/4.0.7/CONFIG.md b/stable/k8s-gateway/4.0.7/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/k8s-gateway/4.0.7/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# Configuration Options - -##### Connecting to other apps -If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### Available config options -In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/k8s-gateway/4.0.7/Chart.lock b/stable/k8s-gateway/4.0.7/Chart.lock deleted file mode 100644 index 7291d0e1a60..00000000000 --- a/stable/k8s-gateway/4.0.7/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.4 -digest: sha256:5bb2d31930ed6ceb6a350de804cbd9b297888a3f6b7b3aa0aaabe8a8d0ed8861 -generated: "2021-11-09T11:26:30.77132677Z" diff --git a/stable/k8s-gateway/4.0.7/Chart.yaml b/stable/k8s-gateway/4.0.7/Chart.yaml deleted file mode 100644 index f7676396287..00000000000 --- a/stable/k8s-gateway/4.0.7/Chart.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v2 -appVersion: "0.1.8" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.4 -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.7 -annotations: - truecharts.org/catagories: | - - networking - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/k8s-gateway/4.0.7/README.md b/stable/k8s-gateway/4.0.7/README.md deleted file mode 100644 index fc8107d0fd7..00000000000 --- a/stable/k8s-gateway/4.0.7/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# 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.4 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/k8s-gateway/4.0.7/app-readme.md b/stable/k8s-gateway/4.0.7/app-readme.md deleted file mode 100644 index 52ee5fb89f9..00000000000 --- a/stable/k8s-gateway/4.0.7/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -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/stable/k8s-gateway/4.0.7/charts/common-8.5.4.tgz b/stable/k8s-gateway/4.0.7/charts/common-8.5.4.tgz deleted file mode 100644 index 64862f3bab9e33c1a91c467927fdd79dd3532cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33689 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 N|NnR5%a{NJ0|27!9WMX? diff --git a/stable/k8s-gateway/4.0.7/helm-values.md b/stable/k8s-gateway/4.0.7/helm-values.md deleted file mode 100644 index d0c4b24e82c..00000000000 --- a/stable/k8s-gateway/4.0.7/helm-values.md +++ /dev/null @@ -1,67 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| apex | string | `""` | Override the default `serviceName.namespace` domain apex | -| args[0] | string | `"-conf"` | | -| args[1] | string | `"/etc/coredns/Corefile"` | | -| domains | list | `[{"dnsChallenge":{"domain":"dns01.clouddns.com","enabled":false},"domain":"example.com"}]` | list of processed domains | -| domains[0] | object | `{"dnsChallenge":{"domain":"dns01.clouddns.com","enabled":false},"domain":"example.com"}` | Delegated domain | -| domains[0].dnsChallenge | object | `{"domain":"dns01.clouddns.com","enabled":false}` | Optional configuration option for DNS01 challenge that will redirect all acme challenge requests to external cloud domain (e.g. managed by cert-manager) See: https://cert-manager.io/docs/configuration/acme/dns01/ | -| forward.enabled | bool | `true` | | -| forward.options[0].name | string | `"tls_servername"` | | -| forward.options[0].value | string | `"cloudflare-dns.com"` | | -| forward.primary | string | `"tls://1.1.1.1"` | | -| forward.secondary | string | `"tls://1.0.0.1"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"quay.io/oriedge/k8s_gateway"` | | -| image.tag | string | `"v0.1.8@sha256:4937e28bb5dc4bd9c700a72d28e50d43929b4a9e8f64b4a306346426e6ed01e2"` | | -| podSecurityContext.runAsGroup | int | `0` | | -| podSecurityContext.runAsUser | int | `0` | | -| probes.liveness.custom | bool | `true` | | -| probes.liveness.spec.failureThreshold | int | `5` | | -| probes.liveness.spec.httpGet.path | string | `"/health"` | | -| probes.liveness.spec.httpGet.port | int | `8080` | | -| probes.liveness.spec.httpGet.scheme | string | `"HTTP"` | | -| probes.liveness.spec.initialDelaySeconds | int | `60` | | -| probes.liveness.spec.successThreshold | int | `1` | | -| probes.liveness.spec.timeoutSeconds | int | `5` | | -| probes.readiness.custom | bool | `true` | | -| probes.readiness.spec.failureThreshold | int | `5` | | -| probes.readiness.spec.httpGet.path | string | `"/ready"` | | -| probes.readiness.spec.httpGet.port | int | `8181` | | -| probes.readiness.spec.httpGet.scheme | string | `"HTTP"` | | -| probes.readiness.spec.initialDelaySeconds | int | `10` | | -| probes.readiness.spec.successThreshold | int | `1` | | -| probes.readiness.spec.timeoutSeconds | int | `5` | | -| probes.startup.custom | bool | `true` | | -| probes.startup.spec.failureThreshold | int | `60` | | -| probes.startup.spec.httpGet.path | string | `"/ready"` | | -| probes.startup.spec.httpGet.port | int | `8181` | | -| probes.startup.spec.httpGet.scheme | string | `"HTTP"` | | -| probes.startup.spec.initialDelaySeconds | int | `3` | | -| probes.startup.spec.periodSeconds | int | `5` | | -| probes.startup.spec.timeoutSeconds | int | `2` | | -| rbac | object | See below | Create a ClusterRole and ClusterRoleBinding | -| rbac.enabled | bool | `true` | Enables or disables the ClusterRole and ClusterRoleBinding | -| rbac.rules | list | `[{"apiGroups":[""],"resources":["services","namespaces"],"verbs":["list","watch"]},{"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"],"verbs":["list","watch"]}]` | Set Rules on the ClusterRole | -| secondary | string | `""` | Service name of a secondary DNS server (should be `serviceName.namespace`) | -| securityContext.runAsNonRoot | bool | `false` | | -| service.main.enabled | bool | `true` | | -| service.main.ports.main.port | int | `53` | | -| service.main.ports.main.protocol | string | `"UDP"` | | -| service.main.ports.main.targetPort | int | `53` | | -| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | -| ttl | int | `300` | TTL for non-apex responses (in seconds) | -| watchedResources | list | `[]` | Limit what kind of resources to watch, e.g. watchedResources: ["Ingress"] | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/k8s-gateway/4.0.7/ix_values.yaml b/stable/k8s-gateway/4.0.7/ix_values.yaml deleted file mode 100644 index 7976b9e6100..00000000000 --- a/stable/k8s-gateway/4.0.7/ix_values.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# Default values for Jackett. - -image: - repository: quay.io/oriedge/k8s_gateway - pullPolicy: IfNotPresent - tag: v0.1.8@sha256:4937e28bb5dc4bd9c700a72d28e50d43929b4a9e8f64b4a306346426e6ed01e2 - -securityContext: - runAsNonRoot: false - -podSecurityContext: - runAsUser: 0 - runAsGroup: 0 - -args: ["-conf", "/etc/coredns/Corefile"] - -# -- TTL for non-apex responses (in seconds) -ttl: 300 - -# -- Limit what kind of resources to watch, e.g. watchedResources: ["Ingress"] -watchedResources: [] - -# -- Service name of a secondary DNS server (should be `serviceName.namespace`) -secondary: "" - -# -- Override the default `serviceName.namespace` domain apex -apex: "" - -# -- list of processed domains -domains: - # -- Delegated domain - - domain: "example.com" - # -- Optional configuration option for DNS01 challenge that will redirect all acme - # challenge requests to external cloud domain (e.g. managed by cert-manager) - # See: https://cert-manager.io/docs/configuration/acme/dns01/ - dnsChallenge: - enabled: false - domain: dns01.clouddns.com - -forward: - enabled: true - primary: tls://1.1.1.1 - secondary: tls://1.0.0.1 - options: - - name: tls_servername - value: cloudflare-dns.com - -serviceAccount: - # -- Specifies whether a service account should be created - create: true - -# -- Create a ClusterRole and ClusterRoleBinding -# @default -- See below -rbac: - # -- Enables or disables the ClusterRole and ClusterRoleBinding - enabled: true - - # -- Set Rules on the ClusterRole - rules: - - apiGroups: - - "" - resources: - - services - - namespaces - verbs: - - list - - watch - - apiGroups: - - extensions - - networking.k8s.io - resources: - - ingresses - verbs: - - list - - watch - -service: - main: - enabled: true - ports: - main: - protocol: UDP - port: 53 - targetPort: 53 - -probes: - liveness: - custom: true - spec: - httpGet: - path: /health - port: 8080 - scheme: HTTP - initialDelaySeconds: 60 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 5 - - readiness: - custom: true - spec: - httpGet: - path: /ready - port: 8181 - scheme: HTTP - initialDelaySeconds: 10 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 5 - - startup: - custom: true - spec: - httpGet: - path: /ready - port: 8181 - scheme: HTTP - initialDelaySeconds: 3 - timeoutSeconds: 2 - periodSeconds: 5 - failureThreshold: 60 diff --git a/stable/k8s-gateway/4.0.7/questions.yaml b/stable/k8s-gateway/4.0.7/questions.yaml deleted file mode 100644 index 9769eb7b589..00000000000 --- a/stable/k8s-gateway/4.0.7/questions.yaml +++ /dev/null @@ -1,1404 +0,0 @@ -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: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -questions: - - variable: portal - group: "Container Image" - label: "Configure Portal Button" - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "Enable" - description: "enable the portal button" - schema: - hidden: true - editable: false - type: boolean - default: false - - variable: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced Controller Settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: "RollingUpdate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: 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: 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: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: domains - group: "App Configuration" - label: "Domains" - description: "Please refer to CoreDNS docs for options" - schema: - type: list - default: [] - items: - - variable: domainEntry - label: "" - schema: - type: dict - attrs: - - variable: domain - label: "Domain name" - schema: - type: string - required: true - default: "example.com" - - variable: dnsChallenge - label: "Forward dnsChallenge" - description: "Optional configuration option for DNS01 challenge that will redirect all acme" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: domain - label: "Forward to Domain" - schema: - type: string - required: true - default: "dns01.clouddns.com" - - - variable: forward - group: "App Configuration" - label: "Forward DNS To" - schema: - type: dict - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - show_subquestions_if: true - subquestions: - - variable: primary - label: "Primary" - schema: - type: string - required: true - default: "1.1.1.1" - - variable: secondary - label: "Secondary" - schema: - type: string - required: true - default: "1.0.0.1" - - variable: options - label: "Forward Options" - description: "Please refer to CoreDNS docs for options" - schema: - type: list - default: [] - items: - - variable: optionEntry - label: "Option" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: value - label: "Value" - schema: - type: string - required: true - default: "" - - - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "UDP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 53 - - - variable: port - label: "Container Port" - schema: - type: int - default: 53 - editable: true - required: true - - - - variable: serviceexpert - group: "Networking and Services" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostNetwork - group: "Networking and Services" - label: "Host-Networking (Complicated)" - schema: - type: boolean - default: false - - - variable: dnsPolicy - group: "Networking and Services" - label: "dnsPolicy" - schema: - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - value: "None" - description: "None" - - - variable: dnsConfig - label: "DNS Configuration" - group: "Networking and Services" - description: "Specify custom DNS configuration which will be applied to the pod" - schema: - type: dict - attrs: - - variable: nameservers - label: "Nameservers" - schema: - default: [] - type: list - items: - - variable: nameserver - label: "Nameserver" - schema: - type: string - - variable: options - label: "options" - schema: - default: [] - type: list - items: - - variable: option - label: "Option Entry" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: searches - label: "Searches" - schema: - default: [] - type: list - items: - - variable: search - label: "Search Entry" - schema: - type: string - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External IP's" - description: "External IP's" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: list - default: [] - items: - - variable: externalIP - label: "External IP" - schema: - type: string - - variable: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - required: true - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort" - schema: - type: int - min: 9000 - max: 65535 - - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name (optional)" - description: "Not required, please set to config when mounting /config or temp when mounting /tmp" - schema: - type: string - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simpleHP" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - 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: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: advancedSecurity - label: "Show Advanced Security Settings" - group: "Security and Permissions" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: securityContext - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: true - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 0 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - - variable: advancedresources - label: "Set Custom Resource Limits/Requests (Advanced)" - group: "Resources and Devices" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: resources - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/k8s-gateway/4.0.7/templates/_configmap.tpl b/stable/k8s-gateway/4.0.7/templates/_configmap.tpl deleted file mode 100644 index 2c6c2c35b67..00000000000 --- a/stable/k8s-gateway/4.0.7/templates/_configmap.tpl +++ /dev/null @@ -1,64 +0,0 @@ -{{/* -Create the matchable regex from domain -*/}} -{{- define "k8s-gateway.configmap.regex" -}} -{{- if .Values.domain }} -{{- .Values.domain | replace "." "[.]" -}} -{{- else -}} - {{ "unset" }} -{{- end }} -{{- end -}} - -{{/* Define the configmap */}} -{{- define "k8s-gateway.configmap" -}} -{{- $values := .Values }} -{{- $fqdn := ( include "common.names.fqdn" . ) }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "common.names.fullname" . }}-corefile - labels: - {{- include "common.labels" . | nindent 4 }} -data: - Corefile: |- - .:53 { - errors - log - health { - lameduck 5s - } - ready - {{- range .Values.domains }} - {{- if .dnsChallenge.enabled }} - template IN ANY {{ required "Delegated domain ('domain') is mandatory " .domain }} { - match "_acme-challenge[.](.*)[.]{{ include "k8s-gateway.configmap.regex" . }}" - answer "{{ "{{" }} .Name {{ "}}" }} 5 IN CNAME {{ "{{" }} index .Match 1 {{ "}}" }}.{{ required "DNS01 challenge domain is mandatory " $values.dnsChallenge.domain }}" - fallthrough - } - {{- end }} - k8s_gateway "{{ required "Delegated domain ('domain') is mandatory " .domain }}" { - apex {{ $values.apex | default $fqdn }} - ttl {{ $values.ttl }} - {{- if $values.secondary }} - secondary {{ $values.secondary }} - {{- end }} - {{- if $values.watchedResources }} - resources {{ join " " $values.watchedResources }} - {{- end }} - fallthrough - } - {{- end }} - prometheus 0.0.0.0:9153 - {{- if .Values.forward.enabled }} - forward . {{ .Values.forward.primary }} {{ .Values.forward.secondary }} { - {{- range .Values.forward.options }} - {{ .name }} {{ .value }} - {{- end }} - } - {{- end }} - loop - reload - loadbalance - } -{{- end -}} diff --git a/stable/k8s-gateway/4.0.7/templates/common.yaml b/stable/k8s-gateway/4.0.7/templates/common.yaml deleted file mode 100644 index 80cb9a9cb39..00000000000 --- a/stable/k8s-gateway/4.0.7/templates/common.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{/* Make sure all variables are set properly */}} -{{- include "common.setup" . }} - - -{{/* Render configmap for nextcloud */}} -{{- include "k8s-gateway.configmap" . }} - -{{/* Append the general configMap volume to the volumes */}} -{{- define "k8s-gateway.configvolume" -}} -enabled: "true" -mountPath: "/etc/coredns" -readOnly: true -type: "custom" -volumeSpec: - configMap: - name: {{ include "common.names.fullname" . }}-corefile - items: - - key: Corefile - path: Corefile -{{- end -}} - -{{- $_ := set .Values.persistence "config-volume" (include "k8s-gateway.configvolume" . | fromYaml) -}} -{{/* Render the templates */}} -{{ include "common.postSetup" . }} diff --git a/stable/k8s-gateway/4.0.7/values.yaml b/stable/k8s-gateway/4.0.7/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/k8s-gateway/item.yaml b/stable/k8s-gateway/item.yaml deleted file mode 100644 index 7c5ad5d5847..00000000000 --- a/stable/k8s-gateway/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: https://cncf-branding.netlify.app/img/projects/coredns/icon/black/coredns-icon-black.png -categories: -- networking - diff --git a/stable/traefik/10.0.8/CHANGELOG.md b/stable/traefik/10.0.8/CHANGELOG.md deleted file mode 100644 index e95f6cc57c6..00000000000 --- a/stable/traefik/10.0.8/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - -
-### [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) - -#### Chore - -* Adapt for TrueNAS SCALE RC1 - - - - -### [traefik-9.0.19](https://github.com/truecharts/apps/compare/traefik-9.0.16...traefik-9.0.19) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 -* update non-major deps helm releases ([#1213](https://github.com/truecharts/apps/issues/1213)) - -#### Fix - -* reenable postgresql migration scripting and bump all to force update -* use correct PVC storageClass when using postgresql as a dependency on SCALE ([#1212](https://github.com/truecharts/apps/issues/1212)) diff --git a/stable/traefik/10.0.8/CONFIG.md b/stable/traefik/10.0.8/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/traefik/10.0.8/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# Configuration Options - -##### Connecting to other apps -If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### Available config options -In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/traefik/10.0.8/Chart.lock b/stable/traefik/10.0.8/Chart.lock deleted file mode 100644 index 98efc21c9ba..00000000000 --- a/stable/traefik/10.0.8/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -digest: sha256:0cc5e4101e5ff85c878493dc322d39b7b26b300badde2db93ffddaf6575dafa4 -generated: "2021-11-07T20:04:04.854389867Z" diff --git a/stable/traefik/10.0.8/Chart.yaml b/stable/traefik/10.0.8/Chart.yaml deleted file mode 100644 index 4154c252b43..00000000000 --- a/stable/traefik/10.0.8/Chart.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v2 -appVersion: "2.5.3" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -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.8 -annotations: - truecharts.org/catagories: | - - network - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/traefik/10.0.8/README.md b/stable/traefik/10.0.8/README.md deleted file mode 100644 index bbad5eaedf7..00000000000 --- a/stable/traefik/10.0.8/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# 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.3 | - -## 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/stable/traefik/10.0.8/app-readme.md b/stable/traefik/10.0.8/app-readme.md deleted file mode 100644 index 823c75135e0..00000000000 --- a/stable/traefik/10.0.8/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -Test App for Traefik - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/traefik/10.0.8/charts/common-8.5.3.tgz b/stable/traefik/10.0.8/charts/common-8.5.3.tgz deleted file mode 100644 index ff54eea096da235c7ed0e5bf48f21c472b843387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33624 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�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 AssI20 diff --git a/stable/traefik/10.0.8/crds/ingressroute.yaml b/stable/traefik/10.0.8/crds/ingressroute.yaml deleted file mode 100644 index 3391ba532a4..00000000000 --- a/stable/traefik/10.0.8/crds/ingressroute.yaml +++ /dev/null @@ -1,198 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressroutes.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRoute - listKind: IngressRouteList - plural: ingressroutes - singular: ingressroute - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRoute is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteSpec is a specification for a IngressRouteSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: Route contains the set of routes. - properties: - kind: - enum: - - Rule - type: string - match: - type: string - middlewares: - items: - description: MiddlewareRef is a ref to the Middleware resources. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - priority: - type: integer - services: - items: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The - differentiation between the two is specified in the - Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration - based on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name - references a TraefikService object (and to be precise, - one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - required: - - kind - - match - type: object - type: array - tls: - description: "TLS contains the TLS certificates configuration of the - routes. To enable Let's Encrypt, use an empty TLS struct, e.g. in - YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: - # block format" - properties: - certResolver: - type: string - domains: - items: - description: Domain holds a domain name with SANs. - properties: - main: - type: string - sans: - items: - type: string - type: array - type: object - type: array - options: - description: Options is a reference to a TLSOption, that specifies - the parameters of the TLS connection. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store is a reference to a TLSStore, that specifies - the parameters of the TLS store. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/ingressroutetcp.yaml b/stable/traefik/10.0.8/crds/ingressroutetcp.yaml deleted file mode 100644 index 67e099b47da..00000000000 --- a/stable/traefik/10.0.8/crds/ingressroutetcp.yaml +++ /dev/null @@ -1,160 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressroutetcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteTCP - listKind: IngressRouteTCPList - plural: ingressroutetcps - singular: ingressroutetcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteTCP is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteTCPSpec is a specification for a IngressRouteTCPSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: RouteTCP contains the set of routes. - properties: - match: - type: string - middlewares: - description: Middlewares contains references to MiddlewareTCP - resources. - items: - description: ObjectReference is a generic reference to a Traefik - resource. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - services: - items: - description: ServiceTCP defines an upstream to proxy traffic. - properties: - name: - type: string - namespace: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - proxyProtocol: - description: ProxyProtocol holds the ProxyProtocol configuration. - properties: - version: - type: integer - type: object - terminationDelay: - type: integer - weight: - type: integer - required: - - name - - port - type: object - type: array - required: - - match - type: object - type: array - tls: - description: "TLSTCP contains the TLS certificates configuration of - the routes. To enable Let's Encrypt, use an empty TLS struct, e.g. - in YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: - # block format" - properties: - certResolver: - type: string - domains: - items: - description: Domain holds a domain name with SANs. - properties: - main: - type: string - sans: - items: - type: string - type: array - type: object - type: array - options: - description: Options is a reference to a TLSOption, that specifies - the parameters of the TLS connection. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - passthrough: - type: boolean - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store is a reference to a TLSStore, that specifies - the parameters of the TLS store. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/ingressrouteudp.yaml b/stable/traefik/10.0.8/crds/ingressrouteudp.yaml deleted file mode 100644 index 910acd6c270..00000000000 --- a/stable/traefik/10.0.8/crds/ingressrouteudp.yaml +++ /dev/null @@ -1,84 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressrouteudps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteUDP - listKind: IngressRouteUDPList - plural: ingressrouteudps - singular: ingressrouteudp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteUDP is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteUDPSpec is a specification for a IngressRouteUDPSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: RouteUDP contains the set of routes. - properties: - services: - items: - description: ServiceUDP defines an upstream to proxy traffic. - properties: - name: - type: string - namespace: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - weight: - type: integer - required: - - name - - port - type: object - type: array - type: object - type: array - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/middlewares.yaml b/stable/traefik/10.0.8/crds/middlewares.yaml deleted file mode 100644 index 1770587a327..00000000000 --- a/stable/traefik/10.0.8/crds/middlewares.yaml +++ /dev/null @@ -1,563 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: middlewares.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: Middleware - listKind: MiddlewareList - plural: middlewares - singular: middleware - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: Middleware is a specification for a Middleware resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareSpec holds the Middleware configuration. - properties: - addPrefix: - description: AddPrefix holds the AddPrefix configuration. - properties: - prefix: - type: string - type: object - basicAuth: - description: BasicAuth holds the HTTP basic authentication configuration. - properties: - headerField: - type: string - realm: - type: string - removeHeader: - type: boolean - secret: - type: string - type: object - buffering: - description: Buffering holds the request/response buffering configuration. - properties: - maxRequestBodyBytes: - format: int64 - type: integer - maxResponseBodyBytes: - format: int64 - type: integer - memRequestBodyBytes: - format: int64 - type: integer - memResponseBodyBytes: - format: int64 - type: integer - retryExpression: - type: string - type: object - chain: - description: Chain holds a chain of middlewares. - properties: - middlewares: - items: - description: MiddlewareRef is a ref to the Middleware resources. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - type: object - circuitBreaker: - description: CircuitBreaker holds the circuit breaker configuration. - properties: - expression: - type: string - type: object - compress: - description: Compress holds the compress configuration. - properties: - excludedContentTypes: - items: - type: string - type: array - type: object - contentType: - description: ContentType middleware - or rather its unique `autoDetect` - option - specifies whether to let the `Content-Type` header, if - it has not been set by the backend, be automatically set to a value - derived from the contents of the response. As a proxy, the default - behavior should be to leave the header alone, regardless of what - the backend did with it. However, the historic default was to always - auto-detect and set the header if it was nil, and it is going to - be kept that way in order to support users currently relying on - it. This middleware exists to enable the correct behavior until - at least the default one can be changed in a future version. - properties: - autoDetect: - type: boolean - type: object - digestAuth: - description: DigestAuth holds the Digest HTTP authentication configuration. - properties: - headerField: - type: string - realm: - type: string - removeHeader: - type: boolean - secret: - type: string - type: object - errors: - description: ErrorPage holds the custom error page configuration. - properties: - query: - type: string - service: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service object - (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for the - forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - status: - items: - type: string - type: array - type: object - forwardAuth: - description: ForwardAuth holds the http forward authentication configuration. - properties: - address: - type: string - authRequestHeaders: - items: - type: string - type: array - authResponseHeaders: - items: - type: string - type: array - authResponseHeadersRegex: - type: string - tls: - description: ClientTLS holds TLS specific configurations as client. - properties: - caOptional: - type: boolean - caSecret: - type: string - certSecret: - type: string - insecureSkipVerify: - type: boolean - type: object - trustForwardHeader: - type: boolean - type: object - headers: - description: Headers holds the custom header configuration. - properties: - accessControlAllowCredentials: - description: AccessControlAllowCredentials is only valid if true. - false is ignored. - type: boolean - accessControlAllowHeaders: - description: AccessControlAllowHeaders must be used in response - to a preflight request with Access-Control-Request-Headers set. - items: - type: string - type: array - accessControlAllowMethods: - description: AccessControlAllowMethods must be used in response - to a preflight request with Access-Control-Request-Method set. - items: - type: string - type: array - accessControlAllowOriginList: - description: AccessControlAllowOriginList is a list of allowable - origins. Can also be a wildcard origin "*". - items: - type: string - type: array - accessControlAllowOriginListRegex: - description: AccessControlAllowOriginListRegex is a list of allowable - origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). - items: - type: string - type: array - accessControlExposeHeaders: - description: AccessControlExposeHeaders sets valid headers for - the response. - items: - type: string - type: array - accessControlMaxAge: - description: AccessControlMaxAge sets the time that a preflight - request may be cached. - format: int64 - type: integer - addVaryHeader: - description: AddVaryHeader controls if the Vary header is automatically - added/updated when the AccessControlAllowOriginList is set. - type: boolean - allowedHosts: - items: - type: string - type: array - browserXssFilter: - type: boolean - contentSecurityPolicy: - type: string - contentTypeNosniff: - type: boolean - customBrowserXSSValue: - type: string - customFrameOptionsValue: - type: string - customRequestHeaders: - additionalProperties: - type: string - type: object - customResponseHeaders: - additionalProperties: - type: string - type: object - featurePolicy: - type: string - forceSTSHeader: - type: boolean - frameDeny: - type: boolean - hostsProxyHeaders: - items: - type: string - type: array - isDevelopment: - type: boolean - publicKey: - type: string - referrerPolicy: - type: string - sslForceHost: - description: 'Deprecated: use RedirectRegex instead.' - type: boolean - sslHost: - description: 'Deprecated: use RedirectRegex instead.' - type: string - sslProxyHeaders: - additionalProperties: - type: string - type: object - sslRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - sslTemporaryRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - stsIncludeSubdomains: - type: boolean - stsPreload: - type: boolean - stsSeconds: - format: int64 - type: integer - type: object - inFlightReq: - description: InFlightReq limits the number of requests being processed - and served concurrently. - properties: - amount: - format: int64 - type: integer - sourceCriterion: - description: SourceCriterion defines what criterion is used to - group requests as originating from a common source. If none - are set, the default is to use the request's remote address - field. All fields are mutually exclusive. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - requestHeaderName: - type: string - requestHost: - type: boolean - type: object - type: object - ipWhiteList: - description: IPWhiteList holds the ip white list configuration. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - sourceRange: - items: - type: string - type: array - type: object - passTLSClientCert: - description: PassTLSClientCert holds the TLS client cert headers configuration. - properties: - info: - description: TLSClientCertificateInfo holds the client TLS certificate - info configuration. - properties: - issuer: - description: TLSCLientCertificateDNInfo holds the client TLS - certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 - properties: - commonName: - type: boolean - country: - type: boolean - domainComponent: - type: boolean - locality: - type: boolean - organization: - type: boolean - province: - type: boolean - serialNumber: - type: boolean - type: object - notAfter: - type: boolean - notBefore: - type: boolean - sans: - type: boolean - serialNumber: - type: boolean - subject: - description: TLSCLientCertificateDNInfo holds the client TLS - certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 - properties: - commonName: - type: boolean - country: - type: boolean - domainComponent: - type: boolean - locality: - type: boolean - organization: - type: boolean - province: - type: boolean - serialNumber: - type: boolean - type: object - type: object - pem: - type: boolean - type: object - plugin: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - type: object - rateLimit: - description: RateLimit holds the rate limiting configuration for a - given router. - properties: - average: - format: int64 - type: integer - burst: - format: int64 - type: integer - period: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - sourceCriterion: - description: SourceCriterion defines what criterion is used to - group requests as originating from a common source. If none - are set, the default is to use the request's remote address - field. All fields are mutually exclusive. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - requestHeaderName: - type: string - requestHost: - type: boolean - type: object - type: object - redirectRegex: - description: RedirectRegex holds the redirection configuration. - properties: - permanent: - type: boolean - regex: - type: string - replacement: - type: string - type: object - redirectScheme: - description: RedirectScheme holds the scheme redirection configuration. - properties: - permanent: - type: boolean - port: - type: string - scheme: - type: string - type: object - replacePath: - description: ReplacePath holds the ReplacePath configuration. - properties: - path: - type: string - type: object - replacePathRegex: - description: ReplacePathRegex holds the ReplacePathRegex configuration. - properties: - regex: - type: string - replacement: - type: string - type: object - retry: - description: Retry holds the retry configuration. - properties: - attempts: - type: integer - initialInterval: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - stripPrefix: - description: StripPrefix holds the StripPrefix configuration. - properties: - forceSlash: - type: boolean - prefixes: - items: - type: string - type: array - type: object - stripPrefixRegex: - description: StripPrefixRegex holds the StripPrefixRegex configuration. - properties: - regex: - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/middlewarestcp.yaml b/stable/traefik/10.0.8/crds/middlewarestcp.yaml deleted file mode 100644 index f0d1d5640bd..00000000000 --- a/stable/traefik/10.0.8/crds/middlewarestcp.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: middlewaretcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: MiddlewareTCP - listKind: MiddlewareTCPList - plural: middlewaretcps - singular: middlewaretcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: MiddlewareTCP is a specification for a MiddlewareTCP resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareTCPSpec holds the MiddlewareTCP configuration. - properties: - ipWhiteList: - description: TCPIPWhiteList holds the TCP ip white list configuration. - properties: - sourceRange: - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/serverstransports.yaml b/stable/traefik/10.0.8/crds/serverstransports.yaml deleted file mode 100644 index 78241697d1a..00000000000 --- a/stable/traefik/10.0.8/crds/serverstransports.yaml +++ /dev/null @@ -1,101 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: serverstransports.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: ServersTransport - listKind: ServersTransportList - plural: serverstransports - singular: serverstransport - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServersTransport is a specification for a ServersTransport resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServersTransportSpec options to configure communication between - Traefik and the servers. - properties: - certificatesSecrets: - description: Certificates for mTLS. - items: - type: string - type: array - disableHTTP2: - description: Disable HTTP/2 for connections with backend servers. - type: boolean - forwardingTimeouts: - description: Timeouts for requests forwarded to the backend servers. - properties: - dialTimeout: - anyOf: - - type: integer - - type: string - description: The amount of time to wait until a connection to - a backend server can be established. If zero, no timeout exists. - x-kubernetes-int-or-string: true - idleConnTimeout: - anyOf: - - type: integer - - type: string - description: The maximum period for which an idle HTTP keep-alive - connection will remain open before closing itself. - x-kubernetes-int-or-string: true - responseHeaderTimeout: - anyOf: - - type: integer - - type: string - description: The amount of time to wait for a server's response - headers after fully writing the request (including its body, - if any). If zero, no timeout exists. - x-kubernetes-int-or-string: true - type: object - insecureSkipVerify: - description: Disable SSL certificate verification. - type: boolean - maxIdleConnsPerHost: - description: If non-zero, controls the maximum idle (keep-alive) to - keep per-host. If zero, DefaultMaxIdleConnsPerHost is used. - type: integer - rootCAsSecrets: - description: Add cert file for self-signed certificate. - items: - type: string - type: array - serverName: - description: ServerName used to contact the server. - type: string - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/tlsoptions.yaml b/stable/traefik/10.0.8/crds/tlsoptions.yaml deleted file mode 100644 index c901ac2df5e..00000000000 --- a/stable/traefik/10.0.8/crds/tlsoptions.yaml +++ /dev/null @@ -1,87 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: tlsoptions.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSOption - listKind: TLSOptionList - plural: tlsoptions - singular: tlsoption - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TLSOption is a specification for a TLSOption resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSOptionSpec configures TLS for an entry point. - properties: - cipherSuites: - items: - type: string - type: array - clientAuth: - description: ClientAuth defines the parameters of the client authentication - part of the TLS connection, if any. - properties: - clientAuthType: - description: ClientAuthType defines the client authentication - type to apply. - enum: - - NoClientCert - - RequestClientCert - - VerifyClientCertIfGiven - - RequireAndVerifyClientCert - type: string - secretNames: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - items: - type: string - type: array - type: object - curvePreferences: - items: - type: string - type: array - maxVersion: - type: string - minVersion: - type: string - preferServerCipherSuites: - type: boolean - sniStrict: - type: boolean - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/tlsstores.yaml b/stable/traefik/10.0.8/crds/tlsstores.yaml deleted file mode 100644 index 7bb6193b026..00000000000 --- a/stable/traefik/10.0.8/crds/tlsstores.yaml +++ /dev/null @@ -1,64 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: tlsstores.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSStore - listKind: TLSStoreList - plural: tlsstores - singular: tlsstore - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TLSStore is a specification for a TLSStore resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSStoreSpec configures a TLSStore resource. - properties: - defaultCertificate: - description: DefaultCertificate holds a secret name for the TLSOption - resource. - properties: - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - required: - - secretName - type: object - required: - - defaultCertificate - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/crds/traefikservices.yaml b/stable/traefik/10.0.8/crds/traefikservices.yaml deleted file mode 100644 index 1d98c25d68d..00000000000 --- a/stable/traefik/10.0.8/crds/traefikservices.yaml +++ /dev/null @@ -1,270 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: traefikservices.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TraefikService - listKind: TraefikServiceList - plural: traefikservices - singular: traefikservice - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TraefikService is the specification for a service (that an IngressRoute - refers to) that is usually not a terminal service (i.e. not a pod of servers), - as opposed to a Kubernetes Service. That is to say, it usually refers to - other (children) services, which themselves can be TraefikServices or Services. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServiceSpec defines whether a TraefikService is a load-balancer - of services or a mirroring service. - properties: - mirroring: - description: Mirroring defines a mirroring service, which is composed - of a main load-balancer, and a list of mirrors. - properties: - kind: - enum: - - Service - - TraefikService - type: string - maxBodySize: - format: int64 - type: integer - mirrors: - items: - description: MirrorService defines one of the mirrors of a Mirroring - service. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - percent: - type: integer - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - name: - description: Name is a reference to a Kubernetes Service object - (for a load-balancer of servers), or to a TraefikService object - (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for the forward - of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based on - cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - weighted: - description: WeightedRoundRobin defines a load-balancer of services. - properties: - services: - items: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based on - cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.8/helm-values.md b/stable/traefik/10.0.8/helm-values.md deleted file mode 100644 index 406018617c6..00000000000 --- a/stable/traefik/10.0.8/helm-values.md +++ /dev/null @@ -1,48 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| additionalArguments[0] | string | `"--metrics.prometheus"` | | -| additionalArguments[1] | string | `"--ping"` | | -| additionalArguments[2] | string | `"--serverstransport.insecureskipverify=true"` | | -| additionalArguments[3] | string | `"--providers.kubernetesingress.allowexternalnameservices=true"` | | -| globalArguments[0] | string | `"--global.checknewversion"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"traefik"` | | -| image.tag | string | `"v2.5.3@sha256:f40028d9771cb29a35392b4cbdd655625596a319b915061e306c503059d0b6f4"` | | -| ingressClass | object | `{"enabled":false,"fallbackApiVersion":"","isDefaultClass":false}` | Use ingressClass. Ignored if Traefik version < 2.3 / kubernetes < 1.18.x | -| ingressRoute | object | `{"dashboard":{"annotations":{},"enabled":true,"labels":{}}}` | Create an IngressRoute for the dashboard | -| logs | object | `{"access":{"enabled":false,"fields":{"general":{"defaultmode":"keep","names":{}},"headers":{"defaultmode":"drop","names":{}}},"filters":{}},"general":{"level":"ERROR"}}` | Logs https://docs.traefik.io/observability/logs/ | -| metrics.prometheus.entryPoint | string | `"metrics"` | | -| middlewares | object | `{"basicAuth":[],"chain":[],"forwardAuth":[],"ipWhiteList":[],"rateLimit":[],"redirectRegex":[],"redirectScheme":[]}` | SCALE Middleware Handlers | -| pilot | object | `{"enabled":false,"token":""}` | Activate Pilot integration | -| portalhook.enabled | bool | `true` | | -| probes.liveness | object | See below | Liveness probe configuration | -| probes.liveness.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.liveness.type | string | "TCP" | sets the probe type when not using a custom probe | -| probes.readiness | object | See below | Redainess probe configuration | -| probes.readiness.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.readiness.type | string | "TCP" | sets the probe type when not using a custom probe | -| probes.startup | object | See below | Startup probe configuration | -| probes.startup.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.startup.type | string | "TCP" | sets the probe type when not using a custom probe | -| providers.kubernetesCRD.enabled | bool | `true` | | -| providers.kubernetesCRD.namespaces | list | `[]` | | -| providers.kubernetesIngress.enabled | bool | `true` | | -| providers.kubernetesIngress.namespaces | list | `[]` | | -| providers.kubernetesIngress.publishedService.enabled | bool | `true` | | -| rbac | object | `{"enabled":true,"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","middlewaretcps","tlsoptions","tlsstores","traefikservices","serverstransports"],"verbs":["get","list","watch"]}]}` | Whether Role Based Access Control objects like roles and rolebindings should be created | -| service | object | `{"main":{"enabled":true,"ports":{"main":{"enabled":true,"port":9000,"protocol":"HTTP","targetPort":9000}},"type":"LoadBalancer"},"metrics":{"enabled":true,"ports":{"metrics":{"enabled":true,"port":9100,"protocol":"HTTP","targetPort":9100}},"type":"LoadBalancer"},"tcp":{"enabled":true,"ports":{"web":{"enabled":true,"port":9080,"protocol":"HTTP","redirectTo":"websecure"},"websecure":{"enabled":true,"port":9443,"protocol":"HTTPS"}},"type":"LoadBalancer"},"udp":{"enabled":false}}` | Options for the main traefik service, where the entrypoints traffic comes from from. | -| serviceAccount | object | `{"create":true}` | The service account the pods will use to interact with the Kubernetes API | -| tlsOptions | object | `{"default":{"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"],"curvePreferences":["CurveP521","CurveP384"],"minVersion":"VersionTLS12","sniStrict":false}}` | TLS Options to be created as TLSOption CRDs https://doc.traefik.io/traefik/https/tls/#tls-options Example: | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/10.0.8/ix_values.yaml b/stable/traefik/10.0.8/ix_values.yaml deleted file mode 100644 index 078b539b594..00000000000 --- a/stable/traefik/10.0.8/ix_values.yaml +++ /dev/null @@ -1,312 +0,0 @@ -# Default values for Traefik -image: - repository: traefik - # defaults to appVersion - tag: v2.5.3@sha256:f40028d9771cb29a35392b4cbdd655625596a319b915061e306c503059d0b6f4 - pullPolicy: IfNotPresent - -# -- 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 - -# -- 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: {} - -# -# -- 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: true - # Published Kubernetes Service to copy status from. Format: namespace/servicename - # By default this Traefik service - # pathOverride: "" - -# -- 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: ERROR - 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 - -metrics: - # datadog: - # address: 127.0.0.1:8125 - # influxdb: - # address: localhost:8089 - # protocol: udp - prometheus: - entryPoint: metrics - # statsd: - # address: localhost:8125 - -globalArguments: - - "--global.checknewversion" - -## -# -- 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" - - "--providers.kubernetesingress.allowexternalnameservices=true" - -# -- TLS Options to be 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 -# from. -service: - main: - enabled: true - type: LoadBalancer - ports: - main: - enabled: true - port: 9000 - targetPort: 9000 - protocol: HTTP - tcp: - enabled: true - type: LoadBalancer - ports: - web: - enabled: true - port: 9080 - protocol: HTTP - redirectTo: websecure - websecure: - enabled: true - port: 9443 - protocol: HTTPS -# tcpexample: -# enabled: true -# targetPort: 9443 -# protocol: TCP -# tls: -# enabled: false -# # this is the name of a TLSOption definition -# options: "" -# certResolver: "" -# domains: [] -# # - main: example.com -# # sans: -# # - foo.example.com -# # - bar.example.com - metrics: - enabled: true - type: LoadBalancer - ports: - metrics: - enabled: true - port: 9100 - targetPort: 9100 - protocol: HTTP - udp: - enabled: false - -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: "/ping" - - # -- 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: "/ping" - - # -- 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: "/ping" - -# -- Whether Role Based Access Control objects like roles and rolebindings should be created -rbac: - enabled: true - 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 - - middlewaretcps - - tlsoptions - - tlsstores - - traefikservices - - serverstransports - verbs: - - get - - list - - watch - -# -- The service account the pods will use to interact with the Kubernetes API -serviceAccount: - create: true - -# -- 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 - chain: [] - # - name: chainname - # middlewares: - # - name: compress - redirectScheme: [] - # - name: redirectSchemeName - # scheme: https - # permanent: true - rateLimit: [] - # - name: rateLimitName - # average: 300 - # burst: 200 - redirectRegex: [] - # - name: redirectRegexName - # regex: putregexhere - # replacement: replacementurlhere - # permanent: false - ipWhiteList: [] - # - name: ipWhiteListName - # sourceRange: [] - # ipStrategy: - # depth: 2 - # excludedIPs: [] - -portalhook: - enabled: true diff --git a/stable/traefik/10.0.8/questions.yaml b/stable/traefik/10.0.8/questions.yaml deleted file mode 100644 index 25edfe7f56f..00000000000 --- a/stable/traefik/10.0.8/questions.yaml +++ /dev/null @@ -1,1684 +0,0 @@ -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: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$kubernetes-resource_configmap_portal_host" - ports: - - "$kubernetes-resource_configmap_portal_port" - path: "/dashboard/" -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: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced Controller Settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: "RollingUpdate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: 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: 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: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: pilot - label: "Traefik Pilot" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: token - label: "token" - schema: - type: string - default: "" - - variable: dashboard - label: "Pilot Dashboard" - schema: - type: boolean - default: false - - - variable: ingressClass - label: "ingressClass" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: isDefaultClass - label: "isDefaultClass" - schema: - type: boolean - default: false - - - variable: logs - label: "Logs" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: general - label: "General Logs" - schema: - type: dict - attrs: - - variable: level - label: "Log Level" - schema: - type: string - default: "ERROR" - enum: - - value: "INFO" - description: "Info" - - value: "WARN" - description: "Warnings" - - value: "ERROR" - description: "Errors" - - value: "FATAL" - description: "Fatal Errors" - - value: "PANIC" - description: "Panics" - - value: "DEBUG" - description: "Debug" - - variable: access - label: "Access Logs" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: enabledFilters - label: "Enable Filters" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: filters - label: "Filters" - schema: - type: dict - attrs: - - variable: statuscodes - label: "Status codes" - schema: - type: string - default: "200,300-302" - - variable: retryattempts - label: "retryattempts" - schema: - type: boolean - default: true - - variable: minduration - label: "minduration" - schema: - type: string - default: "10ms" - - variable: fields - label: "Fields" - schema: - type: dict - attrs: - - variable: general - label: "General" - schema: - type: dict - attrs: - - variable: defaultmode - label: "Default Mode" - schema: - type: string - default: "keep" - enum: - - value: "keep" - description: "Keep" - - value: "drop" - description: "Drop" - - variable: headers - label: "Headers" - schema: - type: dict - attrs: - - variable: defaultmode - label: "Default Mode" - schema: - type: string - default: "drop" - enum: - - value: "keep" - description: "Keep" - - value: "drop" - description: "Drop" - - - variable: middlewares - label: "" - group: "Middlewares" - schema: - type: dict - attrs: - - variable: basicAuth - label: "basicAuth" - schema: - type: list - default: [] - items: - - variable: basicAuthEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: users - label: "Users" - schema: - type: list - default: [] - items: - - variable: usersEntry - label: "" - schema: - type: dict - attrs: - - variable: username - label: "Username" - schema: - type: string - required: true - default: "" - - variable: password - label: "Password" - schema: - type: string - required: true - default: "" - - - variable: forwardAuth - label: "forwardAuth" - schema: - type: list - default: [] - items: - - variable: basicAuthEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: address - label: "Address" - schema: - type: string - required: true - default: "" - - variable: trustForwardHeader - label: "trustForwardHeader" - schema: - type: boolean - default: false - - variable: authResponseHeadersRegex - label: "authResponseHeadersRegex" - schema: - type: string - default: "" - - variable: authResponseHeaders - label: "authResponseHeaders" - schema: - type: list - default: [] - items: - - variable: authResponseHeadersEntry - label: "" - schema: - type: string - default: "" - - variable: authRequestHeaders - label: "authRequestHeaders" - schema: - type: list - default: [] - items: - - variable: authRequestHeadersEntry - label: "" - schema: - type: string - default: "" - - variable: chain - label: "chain" - schema: - type: list - default: [] - items: - - variable: chainEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: middlewares - label: "Middlewares to Chain" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - - variable: redirectScheme - label: "redirectScheme" - schema: - type: list - default: [] - items: - - variable: redirectSchemeEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: scheme - label: "Scheme" - schema: - type: string - required: true - default: "https" - enum: - - value: "https" - description: "https" - - value: "http" - description: "http" - - variable: permanent - label: "Permanent" - schema: - type: boolean - required: true - default: false - - - variable: rateLimit - label: "rateLimit" - schema: - type: list - default: [] - items: - - variable: rateLimitEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: average - label: "Average" - schema: - type: int - required: true - default: 300 - - variable: burst - label: "Burst" - schema: - type: int - required: true - default: 200 - - variable: redirectRegex - label: "redirectRegex" - schema: - type: list - default: [] - items: - - variable: redirectRegexEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: regex - label: "Regex" - schema: - type: string - required: true - default: "" - - variable: replacement - label: "Replacement" - schema: - type: string - required: true - default: "" - - variable: permanent - label: "Permanent" - schema: - type: boolean - required: true - default: false - - - variable: ipWhiteList - label: "ipWhiteList" - schema: - type: list - default: [] - items: - - variable: ipWhiteListEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: sourceRange - label: "Source Range" - schema: - type: list - default: [] - items: - - variable: sourceRangeEntry - label: "" - schema: - type: string - required: true - default: "" - - variable: ipStrategy - label: "IP Strategy" - schema: - type: dict - attrs: - - variable: depth - label: "Depth" - schema: - type: int - required: true - - variable: excludedIPs - label: "Excluded IPs" - schema: - type: list - default: [] - items: - - variable: excludedIPsEntry - label: "" - schema: - type: string - required: true - default: "" - - - - variable: service - group: "Networking and Services" - label: "Configure Service Entrypoint" - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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 Entrypoint Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9000 - - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9000 - editable: true - required: true - - variable: tcp - label: "TCP Service" - description: "The tcp Entrypoint service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: web - label: "web Entrypoint Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9080 - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9080 - editable: true - required: true - - variable: redirectTo - label: "Redirect to" - schema: - type: string - default: "websecure" - - variable: websecure - label: "websecure Entrypoints Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTPS" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9443 - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9443 - editable: true - required: true - - variable: tls - label: "websecure Entrypoints Configuration" - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - hidden: true - - variable: portsList - label: "Additional TCP Entrypoints" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom Entrypoints" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Entrypoints Name" - schema: - type: string - default: "" - - variable: protocol - label: "Entrypoints Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - variable: port - label: "Container Port" - schema: - type: int - required: true - - variable: tls - label: "websecure Entrypoints Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - - variable: metrics - label: "metrics Service" - description: "The metrics Entrypoint service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: metrics - label: "metrics Entrypoints Configurations" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9100 - - - variable: port - label: "Container Port" - schema: - type: int - default: 9100 - editable: true - required: true - - default: 9100 - - - variable: advancedSecurity - label: "Show Advanced Security Settings" - group: "Security and Permissions" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: securityContext - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: true - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: true - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 568 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - - variable: advancedresources - label: "Set Custom Resource Limits/Requests (Advanced)" - group: "Resources and Devices" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: resources - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/traefik/10.0.8/templates/_args.tpl b/stable/traefik/10.0.8/templates/_args.tpl deleted file mode 100644 index 41e7e44b8fd..00000000000 --- a/stable/traefik/10.0.8/templates/_args.tpl +++ /dev/null @@ -1,141 +0,0 @@ -{{/* Define the args */}} -{{- define "traefik.args" -}} -args: - {{/* merge all ports */}} - {{- $ports := dict }} - {{- range $.Values.service }} - {{- range $name, $value := .ports }} - {{- $_ := set $ports $name $value }} - {{- end }} - {{- end }} - {{/* start of actual arguments */}} - {{- with .Values.globalArguments }} - {{- range . }} - - {{ . | quote }} - {{- end }} - {{- end }} - {{- range $name, $config := $ports }} - {{- if $config }} - {{- if or ( eq $config.protocol "HTTP" ) ( eq $config.protocol "HTTPS" ) ( eq $config.protocol "TCP" ) }} - {{- $_ := set $config "protocol" "TCP" }} - {{- end }} - - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" - {{- end }} - {{- end }} - - "--api.dashboard=true" - - "--ping=true" - {{- if .Values.metrics }} - {{- if .Values.metrics.datadog }} - - "--metrics.datadog=true" - - "--metrics.datadog.address={{ .Values.metrics.datadog.address }}" - {{- end }} - {{- if .Values.metrics.influxdb }} - - "--metrics.influxdb=true" - - "--metrics.influxdb.address={{ .Values.metrics.influxdb.address }}" - - "--metrics.influxdb.protocol={{ .Values.metrics.influxdb.protocol }}" - {{- end }} - {{- if .Values.metrics.prometheus }} - - "--metrics.prometheus=true" - - "--metrics.prometheus.entrypoint={{ .Values.metrics.prometheus.entryPoint }}" - {{- end }} - {{- if .Values.metrics.statsd }} - - "--metrics.statsd=true" - - "--metrics.statsd.address={{ .Values.metrics.statsd.address }}" - {{- end }} - {{- end }} - {{- if .Values.providers.kubernetesCRD.enabled }} - - "--providers.kubernetescrd" - {{- end }} - {{- if .Values.providers.kubernetesIngress.enabled }} - - "--providers.kubernetesingress" - {{- if and .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 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 := $ports }} - {{- if $config.redirectTo }} - {{- $toPort := index $ports $config.redirectTo }} - - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.port }}" - - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" - {{- end }} - {{- if or ( $config.tls ) ( eq $config.protocol "HTTPS" ) }} - {{- if or ( $config.tls.enabled ) ( eq $config.protocol "HTTPS" ) }} - - "--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 }} -{{- end -}} diff --git a/stable/traefik/10.0.8/templates/_helpers.tpl b/stable/traefik/10.0.8/templates/_helpers.tpl deleted file mode 100644 index 8c6c4ac96bc..00000000000 --- a/stable/traefik/10.0.8/templates/_helpers.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{{/* -Construct the path for the providers.kubernetesingress.ingressendpoint.publishedservice. -By convention this will simply use the / to match the name of the -service generated. -Users can provide an override for an explicit service they want bound via `.Values.providers.kubernetesIngress.publishedService.pathOverride` -*/}} -{{- define "providers.kubernetesIngress.publishedServicePath" -}} -{{- $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/stable/traefik/10.0.8/templates/_ingressclass.tpl b/stable/traefik/10.0.8/templates/_ingressclass.tpl deleted file mode 100644 index 27f8467fc9e..00000000000 --- a/stable/traefik/10.0.8/templates/_ingressclass.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{{/* 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/stable/traefik/10.0.8/templates/_ingressroute.tpl b/stable/traefik/10.0.8/templates/_ingressroute.tpl deleted file mode 100644 index f848bc108fc..00000000000 --- a/stable/traefik/10.0.8/templates/_ingressroute.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{{/* 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/stable/traefik/10.0.8/templates/_portalhook.tpl b/stable/traefik/10.0.8/templates/_portalhook.tpl deleted file mode 100644 index e3586c5d4e9..00000000000 --- a/stable/traefik/10.0.8/templates/_portalhook.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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/stable/traefik/10.0.8/templates/_tlsoptions.tpl b/stable/traefik/10.0.8/templates/_tlsoptions.tpl deleted file mode 100644 index 3e5aad3bee9..00000000000 --- a/stable/traefik/10.0.8/templates/_tlsoptions.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{{/* 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/stable/traefik/10.0.8/templates/common.yaml b/stable/traefik/10.0.8/templates/common.yaml deleted file mode 100644 index 72c57659973..00000000000 --- a/stable/traefik/10.0.8/templates/common.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{/* 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/stable/traefik/10.0.8/templates/middlewares/basic-middleware.yaml b/stable/traefik/10.0.8/templates/middlewares/basic-middleware.yaml deleted file mode 100644 index fca94384953..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/basic-middleware.yaml +++ /dev/null @@ -1,65 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/basicauth.yaml b/stable/traefik/10.0.8/templates/middlewares/basicauth.yaml deleted file mode 100644 index ccb541742f0..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/basicauth.yaml +++ /dev/null @@ -1,34 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/chain.yaml b/stable/traefik/10.0.8/templates/middlewares/chain.yaml deleted file mode 100644 index e22eb312207..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/chain.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/forwardauth.yaml b/stable/traefik/10.0.8/templates/middlewares/forwardauth.yaml deleted file mode 100644 index 7a3e32fdbf7..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/forwardauth.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/ipwhitelist.yaml b/stable/traefik/10.0.8/templates/middlewares/ipwhitelist.yaml deleted file mode 100644 index 82467dea0b9..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/ipwhitelist.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/ratelimit.yaml b/stable/traefik/10.0.8/templates/middlewares/ratelimit.yaml deleted file mode 100644 index 144b9d8bf38..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/ratelimit.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/redirectScheme.yaml b/stable/traefik/10.0.8/templates/middlewares/redirectScheme.yaml deleted file mode 100644 index f2413f84e19..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/redirectScheme.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/redirectregex.yaml b/stable/traefik/10.0.8/templates/middlewares/redirectregex.yaml deleted file mode 100644 index 683aec93d72..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/redirectregex.yaml +++ /dev/null @@ -1,20 +0,0 @@ -{{- $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/stable/traefik/10.0.8/templates/middlewares/tc-nextcloud.yaml b/stable/traefik/10.0.8/templates/middlewares/tc-nextcloud.yaml deleted file mode 100644 index 6a3019d56c5..00000000000 --- a/stable/traefik/10.0.8/templates/middlewares/tc-nextcloud.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- $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/stable/traefik/10.0.8/values.yaml b/stable/traefik/10.0.8/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/traefik/10.0.9/CHANGELOG.md b/stable/traefik/10.0.9/CHANGELOG.md deleted file mode 100644 index dc9d6f0dd04..00000000000 --- a/stable/traefik/10.0.9/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - -
-### [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) - -#### Chore - -* Adapt for TrueNAS SCALE RC1 - - - - -### [traefik-9.0.19](https://github.com/truecharts/apps/compare/traefik-9.0.16...traefik-9.0.19) (2021-10-20) diff --git a/stable/traefik/10.0.9/CONFIG.md b/stable/traefik/10.0.9/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/traefik/10.0.9/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# Configuration Options - -##### Connecting to other apps -If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### Available config options -In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/traefik/10.0.9/Chart.lock b/stable/traefik/10.0.9/Chart.lock deleted file mode 100644 index 8eb29ceffbd..00000000000 --- a/stable/traefik/10.0.9/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.4 -digest: sha256:5bb2d31930ed6ceb6a350de804cbd9b297888a3f6b7b3aa0aaabe8a8d0ed8861 -generated: "2021-11-09T12:01:34.800328288Z" diff --git a/stable/traefik/10.0.9/Chart.yaml b/stable/traefik/10.0.9/Chart.yaml deleted file mode 100644 index 2068561ca39..00000000000 --- a/stable/traefik/10.0.9/Chart.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v2 -appVersion: "2.5.4" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.4 -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.9 -annotations: - truecharts.org/catagories: | - - network - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/traefik/10.0.9/README.md b/stable/traefik/10.0.9/README.md deleted file mode 100644 index 92cd1ff75f8..00000000000 --- a/stable/traefik/10.0.9/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# 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.4 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/10.0.9/app-readme.md b/stable/traefik/10.0.9/app-readme.md deleted file mode 100644 index 823c75135e0..00000000000 --- a/stable/traefik/10.0.9/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -Test App for Traefik - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/traefik/10.0.9/charts/common-8.5.4.tgz b/stable/traefik/10.0.9/charts/common-8.5.4.tgz deleted file mode 100644 index 64862f3bab9e33c1a91c467927fdd79dd3532cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33689 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 N|NnR5%a{NJ0|27!9WMX? diff --git a/stable/traefik/10.0.9/crds/ingressroute.yaml b/stable/traefik/10.0.9/crds/ingressroute.yaml deleted file mode 100644 index 3391ba532a4..00000000000 --- a/stable/traefik/10.0.9/crds/ingressroute.yaml +++ /dev/null @@ -1,198 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressroutes.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRoute - listKind: IngressRouteList - plural: ingressroutes - singular: ingressroute - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRoute is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteSpec is a specification for a IngressRouteSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: Route contains the set of routes. - properties: - kind: - enum: - - Rule - type: string - match: - type: string - middlewares: - items: - description: MiddlewareRef is a ref to the Middleware resources. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - priority: - type: integer - services: - items: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The - differentiation between the two is specified in the - Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration - based on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name - references a TraefikService object (and to be precise, - one that embeds a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - required: - - kind - - match - type: object - type: array - tls: - description: "TLS contains the TLS certificates configuration of the - routes. To enable Let's Encrypt, use an empty TLS struct, e.g. in - YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: - # block format" - properties: - certResolver: - type: string - domains: - items: - description: Domain holds a domain name with SANs. - properties: - main: - type: string - sans: - items: - type: string - type: array - type: object - type: array - options: - description: Options is a reference to a TLSOption, that specifies - the parameters of the TLS connection. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store is a reference to a TLSStore, that specifies - the parameters of the TLS store. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/ingressroutetcp.yaml b/stable/traefik/10.0.9/crds/ingressroutetcp.yaml deleted file mode 100644 index 67e099b47da..00000000000 --- a/stable/traefik/10.0.9/crds/ingressroutetcp.yaml +++ /dev/null @@ -1,160 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressroutetcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteTCP - listKind: IngressRouteTCPList - plural: ingressroutetcps - singular: ingressroutetcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteTCP is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteTCPSpec is a specification for a IngressRouteTCPSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: RouteTCP contains the set of routes. - properties: - match: - type: string - middlewares: - description: Middlewares contains references to MiddlewareTCP - resources. - items: - description: ObjectReference is a generic reference to a Traefik - resource. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - services: - items: - description: ServiceTCP defines an upstream to proxy traffic. - properties: - name: - type: string - namespace: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - proxyProtocol: - description: ProxyProtocol holds the ProxyProtocol configuration. - properties: - version: - type: integer - type: object - terminationDelay: - type: integer - weight: - type: integer - required: - - name - - port - type: object - type: array - required: - - match - type: object - type: array - tls: - description: "TLSTCP contains the TLS certificates configuration of - the routes. To enable Let's Encrypt, use an empty TLS struct, e.g. - in YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: - # block format" - properties: - certResolver: - type: string - domains: - items: - description: Domain holds a domain name with SANs. - properties: - main: - type: string - sans: - items: - type: string - type: array - type: object - type: array - options: - description: Options is a reference to a TLSOption, that specifies - the parameters of the TLS connection. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - passthrough: - type: boolean - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - store: - description: Store is a reference to a TLSStore, that specifies - the parameters of the TLS store. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: object - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/ingressrouteudp.yaml b/stable/traefik/10.0.9/crds/ingressrouteudp.yaml deleted file mode 100644 index 910acd6c270..00000000000 --- a/stable/traefik/10.0.9/crds/ingressrouteudp.yaml +++ /dev/null @@ -1,84 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: ingressrouteudps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: IngressRouteUDP - listKind: IngressRouteUDPList - plural: ingressrouteudps - singular: ingressrouteudp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: IngressRouteUDP is an Ingress CRD specification. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: IngressRouteUDPSpec is a specification for a IngressRouteUDPSpec - resource. - properties: - entryPoints: - items: - type: string - type: array - routes: - items: - description: RouteUDP contains the set of routes. - properties: - services: - items: - description: ServiceUDP defines an upstream to proxy traffic. - properties: - name: - type: string - namespace: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - weight: - type: integer - required: - - name - - port - type: object - type: array - type: object - type: array - required: - - routes - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/middlewares.yaml b/stable/traefik/10.0.9/crds/middlewares.yaml deleted file mode 100644 index 1770587a327..00000000000 --- a/stable/traefik/10.0.9/crds/middlewares.yaml +++ /dev/null @@ -1,563 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: middlewares.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: Middleware - listKind: MiddlewareList - plural: middlewares - singular: middleware - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: Middleware is a specification for a Middleware resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareSpec holds the Middleware configuration. - properties: - addPrefix: - description: AddPrefix holds the AddPrefix configuration. - properties: - prefix: - type: string - type: object - basicAuth: - description: BasicAuth holds the HTTP basic authentication configuration. - properties: - headerField: - type: string - realm: - type: string - removeHeader: - type: boolean - secret: - type: string - type: object - buffering: - description: Buffering holds the request/response buffering configuration. - properties: - maxRequestBodyBytes: - format: int64 - type: integer - maxResponseBodyBytes: - format: int64 - type: integer - memRequestBodyBytes: - format: int64 - type: integer - memResponseBodyBytes: - format: int64 - type: integer - retryExpression: - type: string - type: object - chain: - description: Chain holds a chain of middlewares. - properties: - middlewares: - items: - description: MiddlewareRef is a ref to the Middleware resources. - properties: - name: - type: string - namespace: - type: string - required: - - name - type: object - type: array - type: object - circuitBreaker: - description: CircuitBreaker holds the circuit breaker configuration. - properties: - expression: - type: string - type: object - compress: - description: Compress holds the compress configuration. - properties: - excludedContentTypes: - items: - type: string - type: array - type: object - contentType: - description: ContentType middleware - or rather its unique `autoDetect` - option - specifies whether to let the `Content-Type` header, if - it has not been set by the backend, be automatically set to a value - derived from the contents of the response. As a proxy, the default - behavior should be to leave the header alone, regardless of what - the backend did with it. However, the historic default was to always - auto-detect and set the header if it was nil, and it is going to - be kept that way in order to support users currently relying on - it. This middleware exists to enable the correct behavior until - at least the default one can be changed in a future version. - properties: - autoDetect: - type: boolean - type: object - digestAuth: - description: DigestAuth holds the Digest HTTP authentication configuration. - properties: - headerField: - type: string - realm: - type: string - removeHeader: - type: boolean - secret: - type: string - type: object - errors: - description: ErrorPage holds the custom error page configuration. - properties: - query: - type: string - service: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service object - (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for the - forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - status: - items: - type: string - type: array - type: object - forwardAuth: - description: ForwardAuth holds the http forward authentication configuration. - properties: - address: - type: string - authRequestHeaders: - items: - type: string - type: array - authResponseHeaders: - items: - type: string - type: array - authResponseHeadersRegex: - type: string - tls: - description: ClientTLS holds TLS specific configurations as client. - properties: - caOptional: - type: boolean - caSecret: - type: string - certSecret: - type: string - insecureSkipVerify: - type: boolean - type: object - trustForwardHeader: - type: boolean - type: object - headers: - description: Headers holds the custom header configuration. - properties: - accessControlAllowCredentials: - description: AccessControlAllowCredentials is only valid if true. - false is ignored. - type: boolean - accessControlAllowHeaders: - description: AccessControlAllowHeaders must be used in response - to a preflight request with Access-Control-Request-Headers set. - items: - type: string - type: array - accessControlAllowMethods: - description: AccessControlAllowMethods must be used in response - to a preflight request with Access-Control-Request-Method set. - items: - type: string - type: array - accessControlAllowOriginList: - description: AccessControlAllowOriginList is a list of allowable - origins. Can also be a wildcard origin "*". - items: - type: string - type: array - accessControlAllowOriginListRegex: - description: AccessControlAllowOriginListRegex is a list of allowable - origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). - items: - type: string - type: array - accessControlExposeHeaders: - description: AccessControlExposeHeaders sets valid headers for - the response. - items: - type: string - type: array - accessControlMaxAge: - description: AccessControlMaxAge sets the time that a preflight - request may be cached. - format: int64 - type: integer - addVaryHeader: - description: AddVaryHeader controls if the Vary header is automatically - added/updated when the AccessControlAllowOriginList is set. - type: boolean - allowedHosts: - items: - type: string - type: array - browserXssFilter: - type: boolean - contentSecurityPolicy: - type: string - contentTypeNosniff: - type: boolean - customBrowserXSSValue: - type: string - customFrameOptionsValue: - type: string - customRequestHeaders: - additionalProperties: - type: string - type: object - customResponseHeaders: - additionalProperties: - type: string - type: object - featurePolicy: - type: string - forceSTSHeader: - type: boolean - frameDeny: - type: boolean - hostsProxyHeaders: - items: - type: string - type: array - isDevelopment: - type: boolean - publicKey: - type: string - referrerPolicy: - type: string - sslForceHost: - description: 'Deprecated: use RedirectRegex instead.' - type: boolean - sslHost: - description: 'Deprecated: use RedirectRegex instead.' - type: string - sslProxyHeaders: - additionalProperties: - type: string - type: object - sslRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - sslTemporaryRedirect: - description: 'Deprecated: use EntryPoint redirection or RedirectScheme - instead.' - type: boolean - stsIncludeSubdomains: - type: boolean - stsPreload: - type: boolean - stsSeconds: - format: int64 - type: integer - type: object - inFlightReq: - description: InFlightReq limits the number of requests being processed - and served concurrently. - properties: - amount: - format: int64 - type: integer - sourceCriterion: - description: SourceCriterion defines what criterion is used to - group requests as originating from a common source. If none - are set, the default is to use the request's remote address - field. All fields are mutually exclusive. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - requestHeaderName: - type: string - requestHost: - type: boolean - type: object - type: object - ipWhiteList: - description: IPWhiteList holds the ip white list configuration. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - sourceRange: - items: - type: string - type: array - type: object - passTLSClientCert: - description: PassTLSClientCert holds the TLS client cert headers configuration. - properties: - info: - description: TLSClientCertificateInfo holds the client TLS certificate - info configuration. - properties: - issuer: - description: TLSCLientCertificateDNInfo holds the client TLS - certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 - properties: - commonName: - type: boolean - country: - type: boolean - domainComponent: - type: boolean - locality: - type: boolean - organization: - type: boolean - province: - type: boolean - serialNumber: - type: boolean - type: object - notAfter: - type: boolean - notBefore: - type: boolean - sans: - type: boolean - serialNumber: - type: boolean - subject: - description: TLSCLientCertificateDNInfo holds the client TLS - certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 - properties: - commonName: - type: boolean - country: - type: boolean - domainComponent: - type: boolean - locality: - type: boolean - organization: - type: boolean - province: - type: boolean - serialNumber: - type: boolean - type: object - type: object - pem: - type: boolean - type: object - plugin: - additionalProperties: - x-kubernetes-preserve-unknown-fields: true - type: object - rateLimit: - description: RateLimit holds the rate limiting configuration for a - given router. - properties: - average: - format: int64 - type: integer - burst: - format: int64 - type: integer - period: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - sourceCriterion: - description: SourceCriterion defines what criterion is used to - group requests as originating from a common source. If none - are set, the default is to use the request's remote address - field. All fields are mutually exclusive. - properties: - ipStrategy: - description: IPStrategy holds the ip strategy configuration. - properties: - depth: - type: integer - excludedIPs: - items: - type: string - type: array - type: object - requestHeaderName: - type: string - requestHost: - type: boolean - type: object - type: object - redirectRegex: - description: RedirectRegex holds the redirection configuration. - properties: - permanent: - type: boolean - regex: - type: string - replacement: - type: string - type: object - redirectScheme: - description: RedirectScheme holds the scheme redirection configuration. - properties: - permanent: - type: boolean - port: - type: string - scheme: - type: string - type: object - replacePath: - description: ReplacePath holds the ReplacePath configuration. - properties: - path: - type: string - type: object - replacePathRegex: - description: ReplacePathRegex holds the ReplacePathRegex configuration. - properties: - regex: - type: string - replacement: - type: string - type: object - retry: - description: Retry holds the retry configuration. - properties: - attempts: - type: integer - initialInterval: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - stripPrefix: - description: StripPrefix holds the StripPrefix configuration. - properties: - forceSlash: - type: boolean - prefixes: - items: - type: string - type: array - type: object - stripPrefixRegex: - description: StripPrefixRegex holds the StripPrefixRegex configuration. - properties: - regex: - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/middlewarestcp.yaml b/stable/traefik/10.0.9/crds/middlewarestcp.yaml deleted file mode 100644 index f0d1d5640bd..00000000000 --- a/stable/traefik/10.0.9/crds/middlewarestcp.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: middlewaretcps.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: MiddlewareTCP - listKind: MiddlewareTCPList - plural: middlewaretcps - singular: middlewaretcp - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: MiddlewareTCP is a specification for a MiddlewareTCP resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MiddlewareTCPSpec holds the MiddlewareTCP configuration. - properties: - ipWhiteList: - description: TCPIPWhiteList holds the TCP ip white list configuration. - properties: - sourceRange: - items: - type: string - type: array - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/serverstransports.yaml b/stable/traefik/10.0.9/crds/serverstransports.yaml deleted file mode 100644 index 78241697d1a..00000000000 --- a/stable/traefik/10.0.9/crds/serverstransports.yaml +++ /dev/null @@ -1,101 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: serverstransports.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: ServersTransport - listKind: ServersTransportList - plural: serverstransports - singular: serverstransport - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServersTransport is a specification for a ServersTransport resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServersTransportSpec options to configure communication between - Traefik and the servers. - properties: - certificatesSecrets: - description: Certificates for mTLS. - items: - type: string - type: array - disableHTTP2: - description: Disable HTTP/2 for connections with backend servers. - type: boolean - forwardingTimeouts: - description: Timeouts for requests forwarded to the backend servers. - properties: - dialTimeout: - anyOf: - - type: integer - - type: string - description: The amount of time to wait until a connection to - a backend server can be established. If zero, no timeout exists. - x-kubernetes-int-or-string: true - idleConnTimeout: - anyOf: - - type: integer - - type: string - description: The maximum period for which an idle HTTP keep-alive - connection will remain open before closing itself. - x-kubernetes-int-or-string: true - responseHeaderTimeout: - anyOf: - - type: integer - - type: string - description: The amount of time to wait for a server's response - headers after fully writing the request (including its body, - if any). If zero, no timeout exists. - x-kubernetes-int-or-string: true - type: object - insecureSkipVerify: - description: Disable SSL certificate verification. - type: boolean - maxIdleConnsPerHost: - description: If non-zero, controls the maximum idle (keep-alive) to - keep per-host. If zero, DefaultMaxIdleConnsPerHost is used. - type: integer - rootCAsSecrets: - description: Add cert file for self-signed certificate. - items: - type: string - type: array - serverName: - description: ServerName used to contact the server. - type: string - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/tlsoptions.yaml b/stable/traefik/10.0.9/crds/tlsoptions.yaml deleted file mode 100644 index c901ac2df5e..00000000000 --- a/stable/traefik/10.0.9/crds/tlsoptions.yaml +++ /dev/null @@ -1,87 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: tlsoptions.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSOption - listKind: TLSOptionList - plural: tlsoptions - singular: tlsoption - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TLSOption is a specification for a TLSOption resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSOptionSpec configures TLS for an entry point. - properties: - cipherSuites: - items: - type: string - type: array - clientAuth: - description: ClientAuth defines the parameters of the client authentication - part of the TLS connection, if any. - properties: - clientAuthType: - description: ClientAuthType defines the client authentication - type to apply. - enum: - - NoClientCert - - RequestClientCert - - VerifyClientCertIfGiven - - RequireAndVerifyClientCert - type: string - secretNames: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - items: - type: string - type: array - type: object - curvePreferences: - items: - type: string - type: array - maxVersion: - type: string - minVersion: - type: string - preferServerCipherSuites: - type: boolean - sniStrict: - type: boolean - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/tlsstores.yaml b/stable/traefik/10.0.9/crds/tlsstores.yaml deleted file mode 100644 index 7bb6193b026..00000000000 --- a/stable/traefik/10.0.9/crds/tlsstores.yaml +++ /dev/null @@ -1,64 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: tlsstores.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TLSStore - listKind: TLSStoreList - plural: tlsstores - singular: tlsstore - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TLSStore is a specification for a TLSStore resource. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TLSStoreSpec configures a TLSStore resource. - properties: - defaultCertificate: - description: DefaultCertificate holds a secret name for the TLSOption - resource. - properties: - secretName: - description: SecretName is the name of the referenced Kubernetes - Secret to specify the certificate details. - type: string - required: - - secretName - type: object - required: - - defaultCertificate - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/crds/traefikservices.yaml b/stable/traefik/10.0.9/crds/traefikservices.yaml deleted file mode 100644 index 1d98c25d68d..00000000000 --- a/stable/traefik/10.0.9/crds/traefikservices.yaml +++ /dev/null @@ -1,270 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - "helm.sh/resource-policy": keep - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - controller-gen.kubebuilder.io/version: v0.4.1 - creationTimestamp: null - name: traefikservices.traefik.containo.us -spec: - group: traefik.containo.us - names: - kind: TraefikService - listKind: TraefikServiceList - plural: traefikservices - singular: traefikservice - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: TraefikService is the specification for a service (that an IngressRoute - refers to) that is usually not a terminal service (i.e. not a pod of servers), - as opposed to a Kubernetes Service. That is to say, it usually refers to - other (children) services, which themselves can be TraefikServices or Services. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServiceSpec defines whether a TraefikService is a load-balancer - of services or a mirroring service. - properties: - mirroring: - description: Mirroring defines a mirroring service, which is composed - of a main load-balancer, and a list of mirrors. - properties: - kind: - enum: - - Service - - TraefikService - type: string - maxBodySize: - format: int64 - type: integer - mirrors: - items: - description: MirrorService defines one of the mirrors of a Mirroring - service. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - percent: - type: integer - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - name: - description: Name is a reference to a Kubernetes Service object - (for a load-balancer of servers), or to a TraefikService object - (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for the forward - of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based on - cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - weighted: - description: WeightedRoundRobin defines a load-balancer of services. - properties: - services: - items: - description: Service defines an upstream to proxy traffic. - properties: - kind: - enum: - - Service - - TraefikService - type: string - name: - description: Name is a reference to a Kubernetes Service - object (for a load-balancer of servers), or to a TraefikService - object (service load-balancer, mirroring, etc). The differentiation - between the two is specified in the Kind field. - type: string - namespace: - type: string - passHostHeader: - type: boolean - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - responseForwarding: - description: ResponseForwarding holds configuration for - the forward of the response. - properties: - flushInterval: - type: string - type: object - scheme: - type: string - serversTransport: - type: string - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based - on cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - strategy: - type: string - weight: - description: Weight should only be specified when Name references - a TraefikService object (and to be precise, one that embeds - a Weighted Round Robin). - type: integer - required: - - name - type: object - type: array - sticky: - description: Sticky holds the sticky configuration. - properties: - cookie: - description: Cookie holds the sticky configuration based on - cookie. - properties: - httpOnly: - type: boolean - name: - type: string - sameSite: - type: string - secure: - type: boolean - type: object - type: object - type: object - type: object - required: - - metadata - - spec - type: object - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/stable/traefik/10.0.9/helm-values.md b/stable/traefik/10.0.9/helm-values.md deleted file mode 100644 index 9b0c24be6a9..00000000000 --- a/stable/traefik/10.0.9/helm-values.md +++ /dev/null @@ -1,48 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| additionalArguments[0] | string | `"--metrics.prometheus"` | | -| additionalArguments[1] | string | `"--ping"` | | -| additionalArguments[2] | string | `"--serverstransport.insecureskipverify=true"` | | -| additionalArguments[3] | string | `"--providers.kubernetesingress.allowexternalnameservices=true"` | | -| globalArguments[0] | string | `"--global.checknewversion"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"traefik"` | | -| image.tag | string | `"v2.5.4@sha256:87863e384e0a6466bd88fe6295b5d76d26f4280d95cb58af91d8fc7160e35a50"` | | -| ingressClass | object | `{"enabled":false,"fallbackApiVersion":"","isDefaultClass":false}` | Use ingressClass. Ignored if Traefik version < 2.3 / kubernetes < 1.18.x | -| ingressRoute | object | `{"dashboard":{"annotations":{},"enabled":true,"labels":{}}}` | Create an IngressRoute for the dashboard | -| logs | object | `{"access":{"enabled":false,"fields":{"general":{"defaultmode":"keep","names":{}},"headers":{"defaultmode":"drop","names":{}}},"filters":{}},"general":{"level":"ERROR"}}` | Logs https://docs.traefik.io/observability/logs/ | -| metrics.prometheus.entryPoint | string | `"metrics"` | | -| middlewares | object | `{"basicAuth":[],"chain":[],"forwardAuth":[],"ipWhiteList":[],"rateLimit":[],"redirectRegex":[],"redirectScheme":[]}` | SCALE Middleware Handlers | -| pilot | object | `{"enabled":false,"token":""}` | Activate Pilot integration | -| portalhook.enabled | bool | `true` | | -| probes.liveness | object | See below | Liveness probe configuration | -| probes.liveness.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.liveness.type | string | "TCP" | sets the probe type when not using a custom probe | -| probes.readiness | object | See below | Redainess probe configuration | -| probes.readiness.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.readiness.type | string | "TCP" | sets the probe type when not using a custom probe | -| probes.startup | object | See below | Startup probe configuration | -| probes.startup.path | string | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used | -| probes.startup.type | string | "TCP" | sets the probe type when not using a custom probe | -| providers.kubernetesCRD.enabled | bool | `true` | | -| providers.kubernetesCRD.namespaces | list | `[]` | | -| providers.kubernetesIngress.enabled | bool | `true` | | -| providers.kubernetesIngress.namespaces | list | `[]` | | -| providers.kubernetesIngress.publishedService.enabled | bool | `true` | | -| rbac | object | `{"enabled":true,"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","middlewaretcps","tlsoptions","tlsstores","traefikservices","serverstransports"],"verbs":["get","list","watch"]}]}` | Whether Role Based Access Control objects like roles and rolebindings should be created | -| service | object | `{"main":{"enabled":true,"ports":{"main":{"enabled":true,"port":9000,"protocol":"HTTP","targetPort":9000}},"type":"LoadBalancer"},"metrics":{"enabled":true,"ports":{"metrics":{"enabled":true,"port":9100,"protocol":"HTTP","targetPort":9100}},"type":"LoadBalancer"},"tcp":{"enabled":true,"ports":{"web":{"enabled":true,"port":9080,"protocol":"HTTP","redirectTo":"websecure"},"websecure":{"enabled":true,"port":9443,"protocol":"HTTPS"}},"type":"LoadBalancer"},"udp":{"enabled":false}}` | Options for the main traefik service, where the entrypoints traffic comes from from. | -| serviceAccount | object | `{"create":true}` | The service account the pods will use to interact with the Kubernetes API | -| tlsOptions | object | `{"default":{"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"],"curvePreferences":["CurveP521","CurveP384"],"minVersion":"VersionTLS12","sniStrict":false}}` | TLS Options to be created as TLSOption CRDs https://doc.traefik.io/traefik/https/tls/#tls-options Example: | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/10.0.9/ix_values.yaml b/stable/traefik/10.0.9/ix_values.yaml deleted file mode 100644 index e199357f1b1..00000000000 --- a/stable/traefik/10.0.9/ix_values.yaml +++ /dev/null @@ -1,312 +0,0 @@ -# Default values for Traefik -image: - repository: traefik - # defaults to appVersion - tag: v2.5.4@sha256:87863e384e0a6466bd88fe6295b5d76d26f4280d95cb58af91d8fc7160e35a50 - pullPolicy: IfNotPresent - -# -- 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 - -# -- 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: {} - -# -# -- 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: true - # Published Kubernetes Service to copy status from. Format: namespace/servicename - # By default this Traefik service - # pathOverride: "" - -# -- 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: ERROR - 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 - -metrics: - # datadog: - # address: 127.0.0.1:8125 - # influxdb: - # address: localhost:8089 - # protocol: udp - prometheus: - entryPoint: metrics - # statsd: - # address: localhost:8125 - -globalArguments: - - "--global.checknewversion" - -## -# -- 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" - - "--providers.kubernetesingress.allowexternalnameservices=true" - -# -- TLS Options to be 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 -# from. -service: - main: - enabled: true - type: LoadBalancer - ports: - main: - enabled: true - port: 9000 - targetPort: 9000 - protocol: HTTP - tcp: - enabled: true - type: LoadBalancer - ports: - web: - enabled: true - port: 9080 - protocol: HTTP - redirectTo: websecure - websecure: - enabled: true - port: 9443 - protocol: HTTPS -# tcpexample: -# enabled: true -# targetPort: 9443 -# protocol: TCP -# tls: -# enabled: false -# # this is the name of a TLSOption definition -# options: "" -# certResolver: "" -# domains: [] -# # - main: example.com -# # sans: -# # - foo.example.com -# # - bar.example.com - metrics: - enabled: true - type: LoadBalancer - ports: - metrics: - enabled: true - port: 9100 - targetPort: 9100 - protocol: HTTP - udp: - enabled: false - -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: "/ping" - - # -- 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: "/ping" - - # -- 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: "/ping" - -# -- Whether Role Based Access Control objects like roles and rolebindings should be created -rbac: - enabled: true - 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 - - middlewaretcps - - tlsoptions - - tlsstores - - traefikservices - - serverstransports - verbs: - - get - - list - - watch - -# -- The service account the pods will use to interact with the Kubernetes API -serviceAccount: - create: true - -# -- 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 - chain: [] - # - name: chainname - # middlewares: - # - name: compress - redirectScheme: [] - # - name: redirectSchemeName - # scheme: https - # permanent: true - rateLimit: [] - # - name: rateLimitName - # average: 300 - # burst: 200 - redirectRegex: [] - # - name: redirectRegexName - # regex: putregexhere - # replacement: replacementurlhere - # permanent: false - ipWhiteList: [] - # - name: ipWhiteListName - # sourceRange: [] - # ipStrategy: - # depth: 2 - # excludedIPs: [] - -portalhook: - enabled: true diff --git a/stable/traefik/10.0.9/questions.yaml b/stable/traefik/10.0.9/questions.yaml deleted file mode 100644 index 25edfe7f56f..00000000000 --- a/stable/traefik/10.0.9/questions.yaml +++ /dev/null @@ -1,1684 +0,0 @@ -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: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$kubernetes-resource_configmap_portal_host" - ports: - - "$kubernetes-resource_configmap_portal_port" - path: "/dashboard/" -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: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced Controller Settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: "RollingUpdate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: 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: 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: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: pilot - label: "Traefik Pilot" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: token - label: "token" - schema: - type: string - default: "" - - variable: dashboard - label: "Pilot Dashboard" - schema: - type: boolean - default: false - - - variable: ingressClass - label: "ingressClass" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: isDefaultClass - label: "isDefaultClass" - schema: - type: boolean - default: false - - - variable: logs - label: "Logs" - group: "App Configuration" - schema: - type: dict - attrs: - - variable: general - label: "General Logs" - schema: - type: dict - attrs: - - variable: level - label: "Log Level" - schema: - type: string - default: "ERROR" - enum: - - value: "INFO" - description: "Info" - - value: "WARN" - description: "Warnings" - - value: "ERROR" - description: "Errors" - - value: "FATAL" - description: "Fatal Errors" - - value: "PANIC" - description: "Panics" - - value: "DEBUG" - description: "Debug" - - variable: access - label: "Access Logs" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: enabledFilters - label: "Enable Filters" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: filters - label: "Filters" - schema: - type: dict - attrs: - - variable: statuscodes - label: "Status codes" - schema: - type: string - default: "200,300-302" - - variable: retryattempts - label: "retryattempts" - schema: - type: boolean - default: true - - variable: minduration - label: "minduration" - schema: - type: string - default: "10ms" - - variable: fields - label: "Fields" - schema: - type: dict - attrs: - - variable: general - label: "General" - schema: - type: dict - attrs: - - variable: defaultmode - label: "Default Mode" - schema: - type: string - default: "keep" - enum: - - value: "keep" - description: "Keep" - - value: "drop" - description: "Drop" - - variable: headers - label: "Headers" - schema: - type: dict - attrs: - - variable: defaultmode - label: "Default Mode" - schema: - type: string - default: "drop" - enum: - - value: "keep" - description: "Keep" - - value: "drop" - description: "Drop" - - - variable: middlewares - label: "" - group: "Middlewares" - schema: - type: dict - attrs: - - variable: basicAuth - label: "basicAuth" - schema: - type: list - default: [] - items: - - variable: basicAuthEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: users - label: "Users" - schema: - type: list - default: [] - items: - - variable: usersEntry - label: "" - schema: - type: dict - attrs: - - variable: username - label: "Username" - schema: - type: string - required: true - default: "" - - variable: password - label: "Password" - schema: - type: string - required: true - default: "" - - - variable: forwardAuth - label: "forwardAuth" - schema: - type: list - default: [] - items: - - variable: basicAuthEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: address - label: "Address" - schema: - type: string - required: true - default: "" - - variable: trustForwardHeader - label: "trustForwardHeader" - schema: - type: boolean - default: false - - variable: authResponseHeadersRegex - label: "authResponseHeadersRegex" - schema: - type: string - default: "" - - variable: authResponseHeaders - label: "authResponseHeaders" - schema: - type: list - default: [] - items: - - variable: authResponseHeadersEntry - label: "" - schema: - type: string - default: "" - - variable: authRequestHeaders - label: "authRequestHeaders" - schema: - type: list - default: [] - items: - - variable: authRequestHeadersEntry - label: "" - schema: - type: string - default: "" - - variable: chain - label: "chain" - schema: - type: list - default: [] - items: - - variable: chainEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: middlewares - label: "Middlewares to Chain" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - - variable: redirectScheme - label: "redirectScheme" - schema: - type: list - default: [] - items: - - variable: redirectSchemeEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: scheme - label: "Scheme" - schema: - type: string - required: true - default: "https" - enum: - - value: "https" - description: "https" - - value: "http" - description: "http" - - variable: permanent - label: "Permanent" - schema: - type: boolean - required: true - default: false - - - variable: rateLimit - label: "rateLimit" - schema: - type: list - default: [] - items: - - variable: rateLimitEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: average - label: "Average" - schema: - type: int - required: true - default: 300 - - variable: burst - label: "Burst" - schema: - type: int - required: true - default: 200 - - variable: redirectRegex - label: "redirectRegex" - schema: - type: list - default: [] - items: - - variable: redirectRegexEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: regex - label: "Regex" - schema: - type: string - required: true - default: "" - - variable: replacement - label: "Replacement" - schema: - type: string - required: true - default: "" - - variable: permanent - label: "Permanent" - schema: - type: boolean - required: true - default: false - - - variable: ipWhiteList - label: "ipWhiteList" - schema: - type: list - default: [] - items: - - variable: ipWhiteListEntry - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - default: "" - - variable: sourceRange - label: "Source Range" - schema: - type: list - default: [] - items: - - variable: sourceRangeEntry - label: "" - schema: - type: string - required: true - default: "" - - variable: ipStrategy - label: "IP Strategy" - schema: - type: dict - attrs: - - variable: depth - label: "Depth" - schema: - type: int - required: true - - variable: excludedIPs - label: "Excluded IPs" - schema: - type: list - default: [] - items: - - variable: excludedIPsEntry - label: "" - schema: - type: string - required: true - default: "" - - - - variable: service - group: "Networking and Services" - label: "Configure Service Entrypoint" - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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 Entrypoint Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9000 - - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9000 - editable: true - required: true - - variable: tcp - label: "TCP Service" - description: "The tcp Entrypoint service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: web - label: "web Entrypoint Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9080 - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9080 - editable: true - required: true - - variable: redirectTo - label: "Redirect to" - schema: - type: string - default: "websecure" - - variable: websecure - label: "websecure Entrypoints Configuration" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTPS" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9443 - - variable: port - label: "Entrypoints Port" - schema: - type: int - default: 9443 - editable: true - required: true - - variable: tls - label: "websecure Entrypoints Configuration" - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - hidden: true - - variable: portsList - label: "Additional TCP Entrypoints" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom Entrypoints" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Entrypoints Name" - schema: - type: string - default: "" - - variable: protocol - label: "Entrypoints Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - variable: port - label: "Container Port" - schema: - type: int - required: true - - variable: tls - label: "websecure Entrypoints Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - - variable: metrics - label: "metrics Service" - description: "The metrics Entrypoint service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: metrics - label: "metrics Entrypoints Configurations" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - 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: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 9100 - - - variable: port - label: "Container Port" - schema: - type: int - default: 9100 - editable: true - required: true - - default: 9100 - - - variable: advancedSecurity - label: "Show Advanced Security Settings" - group: "Security and Permissions" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: securityContext - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: true - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: true - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 568 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - - variable: advancedresources - label: "Set Custom Resource Limits/Requests (Advanced)" - group: "Resources and Devices" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: resources - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/traefik/10.0.9/templates/_args.tpl b/stable/traefik/10.0.9/templates/_args.tpl deleted file mode 100644 index 41e7e44b8fd..00000000000 --- a/stable/traefik/10.0.9/templates/_args.tpl +++ /dev/null @@ -1,141 +0,0 @@ -{{/* Define the args */}} -{{- define "traefik.args" -}} -args: - {{/* merge all ports */}} - {{- $ports := dict }} - {{- range $.Values.service }} - {{- range $name, $value := .ports }} - {{- $_ := set $ports $name $value }} - {{- end }} - {{- end }} - {{/* start of actual arguments */}} - {{- with .Values.globalArguments }} - {{- range . }} - - {{ . | quote }} - {{- end }} - {{- end }} - {{- range $name, $config := $ports }} - {{- if $config }} - {{- if or ( eq $config.protocol "HTTP" ) ( eq $config.protocol "HTTPS" ) ( eq $config.protocol "TCP" ) }} - {{- $_ := set $config "protocol" "TCP" }} - {{- end }} - - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" - {{- end }} - {{- end }} - - "--api.dashboard=true" - - "--ping=true" - {{- if .Values.metrics }} - {{- if .Values.metrics.datadog }} - - "--metrics.datadog=true" - - "--metrics.datadog.address={{ .Values.metrics.datadog.address }}" - {{- end }} - {{- if .Values.metrics.influxdb }} - - "--metrics.influxdb=true" - - "--metrics.influxdb.address={{ .Values.metrics.influxdb.address }}" - - "--metrics.influxdb.protocol={{ .Values.metrics.influxdb.protocol }}" - {{- end }} - {{- if .Values.metrics.prometheus }} - - "--metrics.prometheus=true" - - "--metrics.prometheus.entrypoint={{ .Values.metrics.prometheus.entryPoint }}" - {{- end }} - {{- if .Values.metrics.statsd }} - - "--metrics.statsd=true" - - "--metrics.statsd.address={{ .Values.metrics.statsd.address }}" - {{- end }} - {{- end }} - {{- if .Values.providers.kubernetesCRD.enabled }} - - "--providers.kubernetescrd" - {{- end }} - {{- if .Values.providers.kubernetesIngress.enabled }} - - "--providers.kubernetesingress" - {{- if and .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 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 := $ports }} - {{- if $config.redirectTo }} - {{- $toPort := index $ports $config.redirectTo }} - - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.port }}" - - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" - {{- end }} - {{- if or ( $config.tls ) ( eq $config.protocol "HTTPS" ) }} - {{- if or ( $config.tls.enabled ) ( eq $config.protocol "HTTPS" ) }} - - "--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 }} -{{- end -}} diff --git a/stable/traefik/10.0.9/templates/_helpers.tpl b/stable/traefik/10.0.9/templates/_helpers.tpl deleted file mode 100644 index 8c6c4ac96bc..00000000000 --- a/stable/traefik/10.0.9/templates/_helpers.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{{/* -Construct the path for the providers.kubernetesingress.ingressendpoint.publishedservice. -By convention this will simply use the / to match the name of the -service generated. -Users can provide an override for an explicit service they want bound via `.Values.providers.kubernetesIngress.publishedService.pathOverride` -*/}} -{{- define "providers.kubernetesIngress.publishedServicePath" -}} -{{- $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/stable/traefik/10.0.9/templates/_ingressclass.tpl b/stable/traefik/10.0.9/templates/_ingressclass.tpl deleted file mode 100644 index 27f8467fc9e..00000000000 --- a/stable/traefik/10.0.9/templates/_ingressclass.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{{/* 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/stable/traefik/10.0.9/templates/_ingressroute.tpl b/stable/traefik/10.0.9/templates/_ingressroute.tpl deleted file mode 100644 index f848bc108fc..00000000000 --- a/stable/traefik/10.0.9/templates/_ingressroute.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{{/* 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/stable/traefik/10.0.9/templates/_portalhook.tpl b/stable/traefik/10.0.9/templates/_portalhook.tpl deleted file mode 100644 index e3586c5d4e9..00000000000 --- a/stable/traefik/10.0.9/templates/_portalhook.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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/stable/traefik/10.0.9/templates/_tlsoptions.tpl b/stable/traefik/10.0.9/templates/_tlsoptions.tpl deleted file mode 100644 index 3e5aad3bee9..00000000000 --- a/stable/traefik/10.0.9/templates/_tlsoptions.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{{/* 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/stable/traefik/10.0.9/templates/common.yaml b/stable/traefik/10.0.9/templates/common.yaml deleted file mode 100644 index 72c57659973..00000000000 --- a/stable/traefik/10.0.9/templates/common.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{/* 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/stable/traefik/10.0.9/templates/middlewares/basic-middleware.yaml b/stable/traefik/10.0.9/templates/middlewares/basic-middleware.yaml deleted file mode 100644 index fca94384953..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/basic-middleware.yaml +++ /dev/null @@ -1,65 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/basicauth.yaml b/stable/traefik/10.0.9/templates/middlewares/basicauth.yaml deleted file mode 100644 index ccb541742f0..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/basicauth.yaml +++ /dev/null @@ -1,34 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/chain.yaml b/stable/traefik/10.0.9/templates/middlewares/chain.yaml deleted file mode 100644 index e22eb312207..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/chain.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/forwardauth.yaml b/stable/traefik/10.0.9/templates/middlewares/forwardauth.yaml deleted file mode 100644 index 7a3e32fdbf7..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/forwardauth.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/ipwhitelist.yaml b/stable/traefik/10.0.9/templates/middlewares/ipwhitelist.yaml deleted file mode 100644 index 82467dea0b9..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/ipwhitelist.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/ratelimit.yaml b/stable/traefik/10.0.9/templates/middlewares/ratelimit.yaml deleted file mode 100644 index 144b9d8bf38..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/ratelimit.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/redirectScheme.yaml b/stable/traefik/10.0.9/templates/middlewares/redirectScheme.yaml deleted file mode 100644 index f2413f84e19..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/redirectScheme.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/redirectregex.yaml b/stable/traefik/10.0.9/templates/middlewares/redirectregex.yaml deleted file mode 100644 index 683aec93d72..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/redirectregex.yaml +++ /dev/null @@ -1,20 +0,0 @@ -{{- $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/stable/traefik/10.0.9/templates/middlewares/tc-nextcloud.yaml b/stable/traefik/10.0.9/templates/middlewares/tc-nextcloud.yaml deleted file mode 100644 index 6a3019d56c5..00000000000 --- a/stable/traefik/10.0.9/templates/middlewares/tc-nextcloud.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- $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/stable/traefik/10.0.9/values.yaml b/stable/traefik/10.0.9/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/traefik/item.yaml b/stable/traefik/item.yaml deleted file mode 100644 index bcb10699a3f..00000000000 --- a/stable/traefik/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png -categories: -- network -