Giter Site home page Giter Site logo

traefik / traefik-helm-chart Goto Github PK

View Code? Open in Web Editor NEW
971.0 26.0 738.0 1.06 MB

Traefik Proxy Helm Chart

Home Page: https://traefik.io

License: Apache License 2.0

Makefile 2.88% Smarty 83.77% Mustache 11.70% Shell 1.66%
traefik-v2 traefik helm-chart kubernetes

traefik-helm-chart's Introduction

Traefik

Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.

Introduction

Starting with v28.x, this chart now bootstraps Traefik Proxy version 3 as a Kubernetes ingress controller, using Custom Resources IngressRoute: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/.

It's possible to use this chart with Traefik Proxy v2 using v27.x This chart support policy is aligned with upstream support policy of Traefik Proxy.

See Migration guide from v2 to v3 and upgrading section of this chart on CRDs.

Philosophy

The Traefik HelmChart is focused on Traefik deployment configuration.

To keep this HelmChart as generic as possible we tend to avoid integrating any third party solutions nor any specific use cases.

Accordingly, the encouraged approach to fulfill your needs:

  1. Override the default Traefik configuration values (yaml file or cli)
  2. Append your own configurations (kubectl apply -f myconf.yaml)

Examples of common usage are provided.

If needed, one may use extraObjects or extend this HelmChart as a Subchart.

Installing

Prerequisites

  1. Helm v3 > 3.9.0 installed: helm version
  2. Traefik's chart repository: helm repo add traefik https://traefik.github.io/charts

Kubernetes Version Support

Due to changes in CRD version support, the following versions of the chart are usable and supported on the following Kubernetes versions:

Kubernetes v1.15 and below Kubernetes v1.16-v1.21 Kubernetes v1.22 and above
Chart v9.20.2 and below [x] [x]
Chart v10.0.0 and above [x] [x]
Chart v22.0.0 and above [x]

CRDs Support of Traefik Proxy

Due to changes in API Group of Traefik CRDs from containo.us to traefik.io, this Chart install CRDs needed by default Traefik Proxy version, following this table:

containo.us traefik.io
Chart v22.0.0 and below [x]
Chart v23.0.0 and above [x] [x]
Chart v28.0.0 and above [x]

Deploying Traefik

helm install traefik traefik/traefik

You can customize the install with a values file. There are some EXAMPLES provided. Complete documentation on all available parameters is in the default file.

helm install -f myvalues.yaml traefik traefik/traefik

๐Ÿ›‚ Warning: Helm v2 support was removed in the chart version 10.0.0.

Upgrading

One can check what has changed in the Changelog.

# Update repository
helm repo update
# See current Chart & Traefik version
helm search repo traefik/traefik
# Upgrade Traefik
helm upgrade traefik traefik/traefik

New major version indicates that there is an incompatible breaking change.

Upgrading CRDs

With Helm v3, CRDs created by this chart can not be updated, cf the Helm Documentation on CRDs. Please read carefully release notes of this chart before upgrading CRDs.

Upgrade from 27.X to 28.X+

๐Ÿ›‚ Warning: Traefik v3 totally removes the crd support for traefik.containo.us CRDs. Existing resources may silently fail to work after upgrade to Traefik v3.

See Migration guide from v2 to v3 for more details.

kubectl apply --server-side --force-conflicts -k https://github.com/traefik/traefik-helm-chart/traefik/crds/

Upgrade up to 27.X

kubectl apply --server-side --force-conflicts -k https://github.com/traefik/traefik-helm-chart/traefik/crds/?ref=v27

Upgrading after 18.X+

It's detailed in release notes.

Upgrading from 17.x to 18.x

Since v18.x, this chart by default merges TCP and UDP ports into a single (LoadBalancer) Service. Load balancers with mixed protocols are available since v1.20 and in beta as of Kubernetes v1.24. Availability may depend on your Kubernetes provider.

To retain the old default behavior, set service.single to false in your values.

When using TCP and UDP with a single service, you may encounter this issue from Kubernetes.

On HTTP/3, if you want to avoid this issue, you can set ports.websecure.http3.advertisedPort to an other value than 443

If you were previously using HTTP/3, you should update your values as follows:

  • Replace the old value (true) of ports.websecure.http3 with a key enabled: true
  • Remove experimental.http3.enabled=true entry

Upgrading from 16.x to 17.x

Since v17.x, this chart provides unified labels following Kubernetes recommendation.

This version needs to change an immutable field, which is not supported by Kubernetes and Helm, see this issue for more details. So you will have to delete your Service, Deployment or DaemonSet in order to be able to upgrade.

You may also upgrade by deploying another Traefik to a different namespace and removing after your first Traefik.

Alternatively, since version 20.3.0 of this chart, you may set instanceLabelOverride to the previous value of that label. This will override the new Release.Name-Release.Namespace pattern to avoid any (longer) downtime.

Contributing

If you want to contribute to this chart, please read the Contributing Guide.

Thanks to all the people who have already contributed!

traefik-helm-chart's People

Contributors

baarde avatar brandond avatar carles-figuerola avatar charlie-haley avatar darkweaver87 avatar davhdavh avatar davidalger avatar dduportal avatar dirtycajunrice avatar dtomcej avatar eddykaya avatar elthariel avatar faust64 avatar fty4 avatar grieshaber avatar hesstobi avatar jakubhajek avatar jnoordsij avatar kevinpollet avatar kevtainer avatar ldez avatar mloiseleur avatar mmatur avatar mojochao avatar project0 avatar renebarbosafl avatar renovate[bot] avatar santode avatar steven-sheehy avatar tommoulard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

traefik-helm-chart's Issues

feat: File Based Provider Support

We currently require routing to services that are outside Kubernetes. Without File based provider we cant route to them, so it would be nice if in the helm chart you can pass args to enable it

What keeps this repository from being "Production Ready"?

Hi team!

We're longtime users of the old chart and very excited to someday upgrade to 2.0. I've searched through the issues and a the pull requests to try and understand more about why the chart is labeled as not production ready. Is there any chance a contributor or maintainer could provide a little more insight into whats missing and what needs to be done?

We might be interested in participating in helping this along, as well.

prevent crd's are deleted when executing helm delete

Hi,

the traefik-crd's are deleted with every helm delete. After this, every application using e.g ingressRoute is not reachable anymore. From the k8s-docs:

"When you delete a CustomResourceDefinition, the server will uninstall the RESTful API endpoint and delete all custom objects stored in it."

So I fixed this by adding the following labels to each of the 4 crd's:

  annotations:
    helm.sh/hook: "crd-install"
    helm.sh/hook-delete-policy: "before-hook-creation"

With helm.sh/hook: "crd-install" the crd is no longer treated as a part of the helm release, so the crd is untouched when the helm release is deleted.

The label helm.sh/hook-delete-policy: "before-hook-creation" is needed for helm upgrade not throwing errors ressource already exists.

So may you can add these labels to the crd's in your chart.

Thanks,

Karsten.

helm update

Helm update does not seem to update the ingressroute

Error configuring TLS: secret does not exist when trying to access a secret from another namespace

Hi,

So, when I'm trying to use a TLS configuration from another namespace, traefik can't access the secret.

NAMESPACE traefik:

  • traefik
  • cert-manager deployment

NAMESPACE other-namespace:

  • service (any web service)
  • certificate generated from cert-manager (named service-certs)
  • ingressroute

When everything is in the same namespace, I don't have any issue.
When in separated namespaces, I get this : Error configuring TLS: secret other-namespace/service-certs does not exist

Everything seems right here though : https://github.com/containous/traefik-helm-chart/blob/master/templates/rbac/clusterrole.yaml. But my knowledge in RBAC is pretty limited.

Thanks !

Service deployment fails when using a loadBalancerIP

When using the values.yaml, the user will tend to uncomment some attributes to be used in the Helm chart.

Currently the values.yaml generates a YAML with an incorrect syntax when specifying a loadBalancerIP entry.

# helm install --name traefik-v22 \
#       --namespace=traefik-v2 ./traefik-helm-chart \
#       --debug --dry-run \
#       --set service.spec.loadBalancerIp=192.168.168.44

[....]

# Source: traefik/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: traefik-v22
  labels:
    app: traefik
    chart: "traefik-2.2.2"
    release: "traefik-v22"
    heritage: "Tiller"
spec:
  type: LoadBalancer
  loadBalancerIp: 192.168.168.44 <----- error when deploying
  
  selector:
    app: traefik
    release: traefik-v22
  ports:
  - port: 80
    name: web
    targetPort: "web"
  - port: 443
    name: websecure
    targetPort: "websecure"

It should be:

# Source: traefik/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: traefik-v22
  labels:
    app: traefik
    chart: "traefik-2.2.2"
    release: "traefik-v22"
    heritage: "Tiller"
spec:
  type: LoadBalancer
  loadBalancerIP: 192.168.168.44 <---- works  fine
  
  selector:
    app: traefik
    release: traefik-v22
  ports:
  - port: 80
    name: web
    targetPort: "web"
  - port: 443
    name: websecure
    targetPort: "websecure"

IngressRoute not discovered by Traefik

  1. Hi, i have the following simple setup of the chart:
helm install traefik -n ingress ./ --set additionalArguments="{--api.insecure=true}
  1. Also i have a bar service from other chart in foo namespace:
apiVersion: v1
kind: Service
metadata:
  labels:
    app: bar
  name: bar
  namespace: foo
spec:
  clusterIP: 10.210.220.230
  ports:
  - name: http
    port: 5555
    protocol: TCP
    targetPort: 5555
  selector:
    app: bar
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
  1. And Traefik IngressRoute CRD in the same namespace with bar service:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: bar-ingressroute
  namespace: foo
spec:
  entryPoints:
  - web
  routes:
  - kind: Rule
    match: Host(`bar.my.domain`) && PathPrefix(`/`)
    services:
    - kind: Serivce
      name: bar
      namespace: foo
      passHostHeader: true
      port: 5555
      scheme: http

What i expexted:

  1. Exposed bar service on http://bar.my.domain:80

What i got:

  1. Nothing on http://bar.my.domain:80
  2. Only internal Traefik services (api@internal, dashboard@internal, ping@internal)

Cluster setup:

  1. 3 nodes
  2. Correct DNS setup from bar.my.domain to each node IP

Any ideas where i get wrong?

[Feature Request] Add enabled fields

Please add service.enabled, deployment.enabled, rbac.enabled and crd.enabled to traefik chart so we can install parts of the chart.

Use case

We are using pulumi to automatize the install of traefik. We install crd-s in a different project before installing the rest of the chart, because installing crd and the custom resources (eg: an IngressRoute) together causes issues. We have been using the prometheus chart similarly without issues.

Adding catch-all router for SSL enforcement?

Hello! I am trying to implement the 'I want HTTPS redirection!' section of this blog post into helm, and I'm having some issues with routes not automatically receiving the middleware.
This is how im setting it up, in traefik-helm-chart/templates/httpsRedirect.yaml:

{{- if .Values.sslEnforced }}
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: redirect-to-https
spec:
  redirectScheme:
    scheme: https

---

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: {{ template "traefik.fullname" . }}-httpsredirect
  labels:
    app: {{ template "traefik.name" . }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: {{ .Release.Name | quote }}
    heritage: {{ .Release.Service | quote }}
spec:
  entryPoints:
    - web
  routes:
  - match: hostregexp(`{host:.+}`)
    kind: rule
    middlewares:
    - name: redirect-to-https
{{- end -}}

When I run helm template, the resources are rendered like this:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: redirect-to-https
spec:
  redirectScheme:
    scheme: https

---

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: release-name-dts-traefik-httpsredirect
  labels:
    app: dts-traefik
    chart: "dts-traefik-3.1.0"
    release: "release-name"
    heritage: "Tiller"
spec:
  entryPoints:
    - web
  routes:
  - match: hostregexp(`{host:.+}`)
    kind: rule
    middlewares:
    - name: redirect-to-https

and the resource I get on my cluster looks like this:

Name:         dts-traefik-httpsredirect
Namespace:    ingress-merd
Labels:       app=dts-traefik
              chart=dts-traefik-3.1.0
              heritage=Tiller
              release=dts-traefik
Annotations:  <none>
API Version:  traefik.containo.us/v1alpha1
Kind:         IngressRoute
Metadata:
  Creation Timestamp:  2020-01-24T21:09:59Z
  Generation:          4
  Resource Version:    6185161
Spec:
  Entry Points:
    web
  Routes:
    Kind:   rule
    Match:  hostregexp(`{host:.+}`)
    Middlewares:
      Name:  redirect-to-https
Events:      <none>

But when I look at the web dashboard, none of my HTTP routers have this middleware applied.
All of my routers run subdomains like Host(something.something.domain.com)

Has anybody tried implementing this in their cluster? Any luck?

EntryPoints limited to "web"

https://github.com/containous/traefik-helm-chart/blob/27a3e7b574bae576a507e027c06b4e5043185720/traefik/templates/dashboard-hook-ingressroute.yaml#L14-L15

According to the Traefik docs:

If not specified, HTTP routers will accept requests from all defined entry points. If you want to limit the router scope to a set of entry points, set the entryPoints option.

Can these lines be omitted (or templated) for folks like me who would like to use another or a different entryPoint? In my case, my domain name has HSTS, so I am almost always accessing it through websecure.

Happy to submit a PR if this is an acceptable change.

Setting Dashboard Domain

Was attempting to migrate from the stable 1.7 to the latest of this chart.

Where the heck did you guys put this?

Everything else works fine, far as I can tell, but I want my dashboard domain!
How else am I supposed to access my dashboard? I literally can't find it, and it's defaulted to enabled.

Please put that config option back.

Missing volume mount

I defined a volume in values.yaml, expecting it to be automatically mounted, however only the volume is defined in the final deployment.
values.yaml

volumes:
- name: traefik-configuration
  mountPath: "/config"
  type: configMap

traefik deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: traefik
  [...]
spec:
  [...]
  template:
    [...]
    spec:
      containers:
      - image: traefik:2.1.3
        name: traefik
        [...]
        volumeMounts:
        - mountPath: /data
          name: data
      [...]
      volumes:
      - emptyDir: {}
        name: data
      - configMap:
          defaultMode: 420
          name: traefik-configuration
        name: traefik-configuration

Is this a bug or are you supposed to define volume mounts separately in values.yaml (if so, what is the 'mountPath' field of volumes for)?

IngressRoute dashboard not created

I've issue with the actual helm chart. IngressRoute for dashboard is not create

If I comment annotation in IngressRoute, everything work fine

  annotations:
    helm.sh/hook: "post-install"

values.yaml

dashboard:
  # Enable the dashboard on Traefik
  enable: true

  # Expose the dashboard and api through an ingress route at /dashboard
  # and /api This is not secure and SHOULD NOT be enabled on production
  # deployments
  ingressRoute: true
Logs from tiller (without comment)
[tiller] 2020/01/03 16:18:02 preparing update for traefik
[storage] 2020/01/03 16:18:02 getting deployed releases from "traefik" history
[storage] 2020/01/03 16:18:02 getting last revision of "traefik"
[storage] 2020/01/03 16:18:02 getting release history for "traefik"
[tiller] 2020/01/03 16:18:02 rendering traefik chart using values
[kube] 2020/01/03 16:18:02 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[tiller] 2020/01/03 16:18:02 creating updated release for traefik
[storage] 2020/01/03 16:18:02 creating release "traefik.v8"
[tiller] 2020/01/03 16:18:02 performing update for traefik
[tiller] 2020/01/03 16:18:02 executing 1 pre-upgrade hooks for traefik
[tiller] 2020/01/03 16:18:02 hooks complete for pre-upgrade traefik
[kube] 2020/01/03 16:18:02 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:02 building resources from updated manifest
[kube] 2020/01/03 16:18:02 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:02 checking 10 resources for changes
[kube] 2020/01/03 16:18:02 Looks like there are no changes for ServiceAccount "traefik"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for CustomResourceDefinition "ingressroutes.traefik.containo.us"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for CustomResourceDefinition "ingressroutetcps.traefik.containo.us"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for CustomResourceDefinition "middlewares.traefik.containo.us"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for CustomResourceDefinition "tlsoptions.traefik.containo.us"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for CustomResourceDefinition "traefikservices.traefik.containo.us"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for ClusterRole "traefik"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for ClusterRoleBinding "traefik"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for Service "traefik"
[kube] 2020/01/03 16:18:02 Looks like there are no changes for DaemonSet "traefik"
[tiller] 2020/01/03 16:18:02 executing 1 post-upgrade hooks for traefik
[tiller] 2020/01/03 16:18:02 hooks complete for post-upgrade traefik
[storage] 2020/01/03 16:18:02 updating release "traefik.v7"
[tiller] 2020/01/03 16:18:02 updating status for updated release for traefik
[storage] 2020/01/03 16:18:02 updating release "traefik.v8"
[storage] 2020/01/03 16:18:02 getting last revision of "traefik"
[storage] 2020/01/03 16:18:02 getting release history for "traefik"
[kube] 2020/01/03 16:18:02 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:02 Doing get for ServiceAccount: "traefik"
[kube] 2020/01/03 16:18:02 get relation pod of object: default/ServiceAccount/traefik
[kube] 2020/01/03 16:18:02 Doing get for CustomResourceDefinition: "ingressroutes.traefik.containo.us"
[kube] 2020/01/03 16:18:02 get relation pod of object: /CustomResourceDefinition/ingressroutes.traefik.containo.us
[kube] 2020/01/03 16:18:02 Doing get for CustomResourceDefinition: "ingressroutetcps.traefik.containo.us"
[kube] 2020/01/03 16:18:02 get relation pod of object: /CustomResourceDefinition/ingressroutetcps.traefik.containo.us
[kube] 2020/01/03 16:18:02 Doing get for CustomResourceDefinition: "middlewares.traefik.containo.us"
[kube] 2020/01/03 16:18:02 get relation pod of object: /CustomResourceDefinition/middlewares.traefik.containo.us
[kube] 2020/01/03 16:18:02 Doing get for CustomResourceDefinition: "tlsoptions.traefik.containo.us"
[kube] 2020/01/03 16:18:02 get relation pod of object: /CustomResourceDefinition/tlsoptions.traefik.containo.us
[kube] 2020/01/03 16:18:02 Doing get for CustomResourceDefinition: "traefikservices.traefik.containo.us"
[kube] 2020/01/03 16:18:02 get relation pod of object: /CustomResourceDefinition/traefikservices.traefik.containo.us
[kube] 2020/01/03 16:18:02 Doing get for ClusterRole: "traefik"
[kube] 2020/01/03 16:18:02 get relation pod of object: /ClusterRole/traefik
[kube] 2020/01/03 16:18:02 Doing get for ClusterRoleBinding: "traefik"
[kube] 2020/01/03 16:18:02 get relation pod of object: /ClusterRoleBinding/traefik
[kube] 2020/01/03 16:18:02 Doing get for Service: "traefik"
[kube] 2020/01/03 16:18:02 get relation pod of object: default/Service/traefik
[kube] 2020/01/03 16:18:02 Doing get for DaemonSet: "traefik"
[kube] 2020/01/03 16:18:02 get relation pod of object: default/DaemonSet/traefik
Logs from tiller (with comment)
[tiller] 2020/01/03 16:18:58 preparing update for traefik
[storage] 2020/01/03 16:18:58 getting deployed releases from "traefik" history
[storage] 2020/01/03 16:18:58 getting last revision of "traefik"
[storage] 2020/01/03 16:18:58 getting release history for "traefik"
[tiller] 2020/01/03 16:18:58 rendering traefik chart using values
[kube] 2020/01/03 16:18:58 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[tiller] 2020/01/03 16:18:58 creating updated release for traefik
[storage] 2020/01/03 16:18:58 creating release "traefik.v9"
[tiller] 2020/01/03 16:18:58 performing update for traefik
[tiller] 2020/01/03 16:18:58 executing 0 pre-upgrade hooks for traefik
[tiller] 2020/01/03 16:18:58 hooks complete for pre-upgrade traefik
[kube] 2020/01/03 16:18:58 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:58 building resources from updated manifest
[kube] 2020/01/03 16:18:58 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:58 checking 11 resources for changes
[kube] 2020/01/03 16:18:58 Looks like there are no changes for ServiceAccount "traefik"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for CustomResourceDefinition "ingressroutes.traefik.containo.us"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for CustomResourceDefinition "ingressroutetcps.traefik.containo.us"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for CustomResourceDefinition "middlewares.traefik.containo.us"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for CustomResourceDefinition "tlsoptions.traefik.containo.us"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for CustomResourceDefinition "traefikservices.traefik.containo.us"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for ClusterRole "traefik"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for ClusterRoleBinding "traefik"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for Service "traefik"
[kube] 2020/01/03 16:18:59 Looks like there are no changes for DaemonSet "traefik"
[kube] 2020/01/03 16:18:59 Created a new IngressRoute called "traefik-dashboard"
[tiller] 2020/01/03 16:18:59 executing 0 post-upgrade hooks for traefik
[tiller] 2020/01/03 16:18:59 hooks complete for post-upgrade traefik
[storage] 2020/01/03 16:18:59 updating release "traefik.v8"
[tiller] 2020/01/03 16:18:59 updating status for updated release for traefik
[storage] 2020/01/03 16:18:59 updating release "traefik.v9"
[storage] 2020/01/03 16:18:59 getting last revision of "traefik"
[storage] 2020/01/03 16:18:59 getting release history for "traefik"
[kube] 2020/01/03 16:18:59 warning: failed to load schema: SchemaError(io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus): invalid object doesn't have additional properties
[kube] 2020/01/03 16:18:59 Doing get for ServiceAccount: "traefik"
[kube] 2020/01/03 16:18:59 get relation pod of object: default/ServiceAccount/traefik
[kube] 2020/01/03 16:18:59 Doing get for CustomResourceDefinition: "ingressroutes.traefik.containo.us"
[kube] 2020/01/03 16:18:59 get relation pod of object: /CustomResourceDefinition/ingressroutes.traefik.containo.us
[kube] 2020/01/03 16:18:59 Doing get for CustomResourceDefinition: "ingressroutetcps.traefik.containo.us"
[kube] 2020/01/03 16:18:59 get relation pod of object: /CustomResourceDefinition/ingressroutetcps.traefik.containo.us
[kube] 2020/01/03 16:18:59 Doing get for CustomResourceDefinition: "middlewares.traefik.containo.us"
[kube] 2020/01/03 16:18:59 get relation pod of object: /CustomResourceDefinition/middlewares.traefik.containo.us
[kube] 2020/01/03 16:18:59 Doing get for CustomResourceDefinition: "tlsoptions.traefik.containo.us"
[kube] 2020/01/03 16:18:59 get relation pod of object: /CustomResourceDefinition/tlsoptions.traefik.containo.us
[kube] 2020/01/03 16:18:59 Doing get for CustomResourceDefinition: "traefikservices.traefik.containo.us"
[kube] 2020/01/03 16:18:59 get relation pod of object: /CustomResourceDefinition/traefikservices.traefik.containo.us
[kube] 2020/01/03 16:18:59 Doing get for ClusterRole: "traefik"
[kube] 2020/01/03 16:18:59 get relation pod of object: /ClusterRole/traefik
[kube] 2020/01/03 16:18:59 Doing get for ClusterRoleBinding: "traefik"
[kube] 2020/01/03 16:18:59 get relation pod of object: /ClusterRoleBinding/traefik
[kube] 2020/01/03 16:18:59 Doing get for Service: "traefik"
[kube] 2020/01/03 16:18:59 get relation pod of object: default/Service/traefik
[kube] 2020/01/03 16:18:59 Doing get for DaemonSet: "traefik"
[kube] 2020/01/03 16:18:59 get relation pod of object: default/DaemonSet/traefik
[kube] 2020/01/03 16:18:59 Doing get for IngressRoute: "traefik-dashboard"
[kube] 2020/01/03 16:18:59 get relation pod of object: default/IngressRoute/traefik-dashboard

helm version

Client: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}

Disabling dashboard ingressroute does not delete it

If during initial setup you go with default settings then dashboard ingressroute is created. If you disable it afterwards and apply, ingressroute is still present and accessible.
I assume, if you disable dashboard, this ingress route should be deleted, even diff is showing that it will be deleted.
I suspect that actual problem is that the this route is created as hook.

How to start traefik dashboard?

In general, I would do:

helm install traefik traefik/traefik --set dashboard.ingressRoute="true"

By digging I tried

helm install traefik traefik/traefik --set="{--dashboard.ingressRoute=true}"

But it won't work at all.

What are the guides here?

Entry point redirection and default routers configuration

With the wonderful change in traefik/traefik#6417 it's now possible to configure automatic HTTP->HTTPS redirection for entrypoints. This issue proposes those changes to be configurable in the Helm chart as well.

Currently this could be done in values.yml like so:

additionalArguments:
  - --entrypoints.web.address=:80
  - --entrypoints.web.http.redirections.entryPoint.to=websecure
  - --entrypoints.web.http.redirections.entryPoint.scheme=https
  - --entrypoints.websecure.address=:443

Maybe something like it's configured in the YAML configuration:

entryPoints:
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure
          https: true

Add annotations if Prometheus is enabled

In the current (stable/traefik) helm chart, even if Prometheus metrics are enabled, the relevant annotations (prometheus.io/scrape etc) don't get added to the Deployment. I think it'd be much more user-friendly if those annotations were added automatically.

I know that this is a repo for the traefik 2 chart, but I couldn't figure a better place to open the issue.

Be able to specify volumes and --configfile flag

In order to be able to use custom config-file from a config-map or secret it would be nice to be able to specify volumes/volumeMounts for deployment resource and --configfile="" argument in deployment args.

Readiness probe succeeds, then fails

Readiness probe failed: Get http://10.1.0.120:9000/ping: dial tcp 10.1.0.120:9000: connect: connection refused

Athough the readiness probe and liveness probe succeeded in the past.

Security concern: API/Dashboard should not be exposed on entry "web" by default

Hi, Traefik API/dashboard is turned on and exposed on entry web by default, which is kind of scary, since the whole Internet may access them.

https://github.com/containous/traefik-helm-chart/blob/76cc1a80eefe0a00d17c2c5c71340cead1bad22e/traefik/templates/dashboard-hook-ingressroute.yaml#L13-L21

I propose to expose them on entry treafik to avoid bad things happen.

https://github.com/containous/traefik-helm-chart/blob/76cc1a80eefe0a00d17c2c5c71340cead1bad22e/traefik/values.yaml#L35-L45

I would like to draft a small PR if you guys consider it a good idea.

Brilliant work. I am enjoying it. Thank you.

Install with no values errors with "(...) nil pointer evaluating interface {}.externalTrafficPolicy"

Kind of Issue

Bug

What Happens

Installing the chart with latest master (commit 0899641) without any value leads to the following error:

Error: render error in "traefik/templates/service.yaml": template: traefik/templates/service.yaml:12:53: executing "traefik/templates/service.yaml" at <.Values.service.externalTrafficPolicy>: nil pointer evaluating interface {}.externalTrafficPolicy

Expectation

As per https://github.com/containous/traefik-helm-chart/blob/master/Guidelines.md,
the chart should install without error

Reproduction

# Create a Kubernetes cluster with k3d
k3d create --publish="80:80" --publish="443:443" --server-arg="--no-deploy=traefik"
export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"

# Initialize Helm
kubectl create serviceaccount tiller --namespace=kube-system
kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account=tiller
helm version # After 1-2 minutes, must shows both client and server initialized

# Install current Traefik helm chart, fails with error
helm install --name=traefik .

More Information

This is a Helm template issue: the default values should handle this case :)

IngressRouteUDP and TLSStore CRDs missing after upgrading to v2.2

Those new CRDs are missing because this Helm chart is for v2.1

https://docs.traefik.io/v2.2/reference/dynamic-configuration/kubernetes-crd/

Got the following errors:

E0309 02:11:37.883180       1 reflector.go:153] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105: Failed to list *v1alpha1.IngressRouteUDP: the server could not find the requested resource (get ingressrouteudps.traefik.containo.us)

E0309 02:11:38.884534       1 reflector.go:153] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105: Failed to list *v1alpha1.TLSStore: the server could not find the requested resource (get tlsstores.traefik.containo.us)

Created those missing CRDs and added in traefik ClusterRole both ingressrouteudps and tlsstores to resources list for traefik.containo.us apiGroup.

And it worked.

traefik-dashboard targetPort is traefik

I installed the current chart and wanted to access the traefik-dashboard.

The targetPort is set to targetPort: traefik and not as I would expect the port 9000

---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2019-10-25T14:51:40Z"
  labels:
    app: traefik
    chart: traefik-2.0.0
    heritage: Tiller
    release: traefik
  name: traefik-dashboard
  namespace: traefik
  resourceVersion: "3318720531"
  selfLink: /api/v1/namespaces/traefik/services/traefik-dashboard
  uid: 5489b487-be09-4bca-aa29-faf3999257e9
spec:
  clusterIP: 10.41.33.88
  ports:
  - name: traefik
    port: 80
    protocol: TCP
    targetPort: traefik
  selector:
    app: traefik
    release: traefik
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

Persistent volume claim

Can the chart be updated to use PVC to store the certs. right now every time the pod restarts it has to get certs from lets encrypt

[Feature] Be able to add many traefik ingress

Hello,

I've tried to install two times the ingress, one time per namespace on a cluster, but, second time, crd are already exists, so helm 3 return an error.
Maybe is it possible to wrap crd into a condition to be able to ignore crd setup ?
In the idea, on a cluster, I want to scope two teams in their respective namespaces.

Best regards !
Gaรซl

Ingress rule not reachable

I've just deployed traefik:

$ helm install traefik traefik/traefik --set dashboard.ingressRoute=true

I'm using a k3d cluster with 2 workers.

Once installed traefik, I've realized there are several ingress-like resources:

$ kubectl api-resources | grep ingress
NAME               SHORTNAMES   APIGROUP               NAMESPACED   KIND
ingresses          ing          extensions             true         Ingress
ingresses          ing          networking.k8s.io      true         Ingress
ingressroutes                   traefik.containo.us    true         IngressRoute
ingressroutetcps                traefik.containo.us    true         IngressRouteTCP

First question is: Why are there so many ingress-like resources?

I'm able to get access to my just desployed traefik dashboard under localhost/dashboard.

Nevertheless, I'm installed a straightforward service I'm not able to figure out why it's not reacheable.

Here, graylog.localhost ingress description:

$ kubectl describe ingresses.networking.k8s.io graylog-web
Name:             graylog-web
Namespace:        graylog
Address:          
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host               Path  Backends
  ----               ----  --------
  graylog.localhost  
                     /gelf   graylog-tcp:gelf (10.42.0.24:12201,10.42.1.33:12201)
                             graylog-web:graylog (10.42.0.24:9000,10.42.1.33:9000)
Annotations:
Events:  <none>

However, when I'm trying to get access to graylog.localhost:

$ curl graylog.localhost
404 page not found

This is the deployed traefik deployment:

$ kubectl describe deployments.apps traefik
Name:                   traefik
Namespace:              kube-system
CreationTimestamp:      Sun, 08 Mar 2020 20:51:09 +0100
Labels:                 app=traefik
                        chart=traefik-4.0.0
                        heritage=Helm
                        release=traefik
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=traefik,release=traefik
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:           app=traefik
                    chart=traefik-4.0.0
                    heritage=Helm
                    release=traefik
  Service Account:  traefik
  Containers:
   traefik:
    Image:       traefik:2.1.3
    Ports:       9000/TCP, 8000/TCP, 8443/TCP
    Host Ports:  0/TCP, 0/TCP, 0/TCP
    Args:
      --global.checknewversion=true
      --global.sendanonymoususage=true
      --entryPoints.traefik.address=:9000
      --entryPoints.web.address=:8000
      --entryPoints.websecure.address=:8443
      --api.dashboard=true
      --ping=true
      --providers.kubernetescrd
      --log.level=WARN
    Liveness:     http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=3
    Readiness:    http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=1
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   traefik-6c6c896889 (1/1 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  4d11h  deployment-controller  Scaled up replica set traefik-6c6c896889 to 1

And here you have traefik service description:

$ kubectl describe services traefik
Name:                     traefik
Namespace:                kube-system
Labels:                   app=traefik
                          chart=traefik-4.0.0
                          heritage=Helm
                          release=traefik
Annotations:              <none>
Selector:                 app=traefik,release=traefik
Type:                     LoadBalancer
IP:                       10.43.215.222
LoadBalancer Ingress:     172.20.0.2
Port:                     web  80/TCP
TargetPort:               web/TCP
NodePort:                 web  31000/TCP
Endpoints:                10.42.1.12:8000
Port:                     websecure  443/TCP
TargetPort:               websecure/TCP
NodePort:                 websecure  31856/TCP
Endpoints:                10.42.1.12:8443
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Any ideas?

How to configure static config file

I want to configure ingressClass and namespaces that ingress controller is listening.
I couldn't find any parameter for that in values.yaml I was thinking about passing those parameters as environment values but the Chart is not prepared to configure extraEnv.

What is the better way to configure static config within values.yaml?

Helm delete does not remove everything

Versions
Helm: 2.8.2
Kubernetes: 1.17.2
OS: Ubuntu 18.04

I'm new to pretty much all the technologies involved here, so forgive me if I'm missing something obvious. But I've been trying to get Traefik 2.1 setup using this helm chart by running:
helm install --replace --name traefik21 ./traefik-helm-chart/traefik/ --values traefik-chart2.yml

Since I have no idea what I'm doing... I've also been removing it a lot. I assume that when I do helm delete traefik21 it should delete everything but it does not. In fact I'm not sure what if anything it removes. Usually I then run kubectl delete deploy traefik21 and then install again.

Is there a better way to do this?

Also in general if I have other questions (why can't I access the dashboard, why are my certs wrong, etc.). Should I open other tickets here, on the main traefik github site, or somewhere else?

Don't delete persistence volume

First off: Great work on the latest changes. I could throw away a few home-baked things in favour of your updates. ๐Ÿ˜Š

The new persistence feature looks really nice. I tried it out and it works. But when I delete my Helm release, it also deletes this volume. This volume contains SSL certificates that are important and should not be thrown away that easily. I would prefer if the volume would stay intact, so you could easily do a helm delete ... and then helm install ... without losing precious SSL certificates.

Publish chart to public repo

I'm trying to use this with k3's embedded Tiller and the Helm CRD, but it fails as the chart needs to be hosted in a repo somewhere. Would it be possible to publish this (even in its current status) to a public repository?

Failing to setup traefik on AKS

Hello Today I tried to setup Traefik on AKS based on this chart.

helm version: v3.1.0
kubernetes: Client: v1.15.5, Server: v1.14.8

I did follow the steps on https://docs.traefik.io/providers/kubernetes-crd/ guide:

First I did apply the definitions and RBAC with kubectl apply -f <traefik-definitions.yml>

I created ingress resource:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: traefik
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: eps-backend
          servicePort: 80
        path: /api(/|$)(.*)
      - backend:
          serviceName: eps-frontend
          servicePort: 80
        path: /(.*)

I installed the helm chart with:

helm repo add traefik https://containous.github.io/traefik-helm-chart
helm repo update
helm install traefik traefik/traefik

Then created the resources:

k apply -f resources.yaml
traefikservice.traefik.containo.us/wrr2 created
traefikservice.traefik.containo.us/wrr1 created
traefikservice.traefik.containo.us/mirror1 created
traefikservice.traefik.containo.us/mirror2 created
ingressroute.traefik.containo.us/ingressroute created
ingressroutetcp.traefik.containo.us/ingressroutetcp.crd created

Now I see:

kubectl get svc
NAME           TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)                                                 AGE
eps-backend    ClusterIP      10.0.130.159   <none>          8008/TCP                                                6d
eps-frontend   ClusterIP      10.0.132.30    <none>          8000/TCP                                                6d
traefik        LoadBalancer   10.0.48.58     51.136.73.219   80:30263/TCP,443:30651/TCP                              13m

kubectl get pods
NAME                            READY   STATUS    RESTARTS   AGE
eps-backend-d8469f576-cxd89     1/1     Running   0          25h
eps-frontend-6b4c5b7c58-9v5vd   1/1     Running   0          25h
traefik-7bbdfbf9d7-x6sch        1/1     Running   0          15m
 
kubectl describe ing traefik
Name:             traefik
Namespace:        default
Address:
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *
        /api(/|$)(.*)   eps-backend:80 ()
        /(.*)           eps-frontend:80 ()
Annotations:
  kubectl.kubernetes.io/last-applied-configuration:  {"apiVersion":"networking.k8s.io/v1beta1","kind":"Ingress","metadata":{"annotations":{},"name":"traefik","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"serviceName":"eps-backend","servicePort":80},"path":"/api(/|$)(.*)"},{"backend":{"serviceName":"eps-frontend","servicePort":80},"path":"/(.*)"}]}}]}}

Events:  <none>

When I head to my IP http://51.136.73.219/traefik it displays 404 page not found

When I look Into kubectl logs traefik-7bbdfbf9d7-x6sch

time="2020-03-24T16:22:33Z" level=error msg="<nil>" namespace=default providerName=kubernetescrd ingress=ingressroute
time="2020-03-24T16:22:33Z" level=error msg="Unsupported match kind: . Only \"Rule\" is supported for now." providerName=kubernetescrd ingress=ingressroute namespace=default
time="2020-03-24T16:22:33Z" level=error msg="Unsupported match kind: . Only \"Rule\" is supported for now." namespace=default providerName=kubernetescrd ingress=ingressroute
time="2020-03-24T16:22:33Z" level=error msg="Unsupported match kind: . Only \"Rule\" is supported for now." namespace=default providerName=kubernetescrd ingress=ingressroute
time="2020-03-24T16:22:33Z" level=error msg="Unsupported match kind: . Only \"Rule\" is supported for now." ingress=ingressroute namespace=default providerName=kubernetescrd
time="2020-03-24T16:22:33Z" level=error msg="Error configuring TLS: secret default/foosecret does not exist" namespace=default providerName=kubernetescrd ingress=ingressroutetcp.crd
time="2020-03-24T16:22:33Z" level=error msg="Cannot create service: service not found" serviceName=whoamitcp servicePort=8080 ingress=ingressroutetcp.crd namespace=default providerName=kubernetescrd
time="2020-03-24T16:22:33Z" level=error msg="Error while building TraefikService: kubernetes service not found: default/s1" serviceName=wrr2 providerName=kubernetescrd
time="2020-03-24T16:22:33Z" level=error msg="Error while building TraefikService: kubernetes service not found: default/s3" providerName=kubernetescrd serviceName=wrr1
time="2020-03-24T16:22:33Z" level=error msg="Error while building TraefikService: kubernetes service not found: default/s1" providerName=kubernetescrd serviceName=mirror1
time="2020-03-24T16:22:33Z" level=error msg="Error while building TraefikService: kubernetes service not found: default/s2" providerName=kubernetescrd serviceName=mirror2

What steps did I do wrong? Why is the dashboard not accessible on http://51.138.48.137/traefik ?
What rules can be given in ingress resource?

Dashboard IngressRoute not deleted

The IngressRoute of the dashboard is not deleted when you perform a helm delete .... This probably got to do with the hook usage to install this ingress route, similar like this issue: #22

Change deployment & service for udp support

There should be support to add /udp to --entrypoint in the deployment, this should result in multiple changes to container ports and service port, i suggest to make it simple and add protocol to ports:

namespace "production" is ignored in cross-provider context

  1. Create namespace
kubectl create namespace traefik
  1. Install chart
helm install --namespace=traefik \
  --set additionalArguments="{--providers.kubernetesingress,--global.checknewversion=true}" \
  traefik ./traefik
  1. Follow logs of traefik pod
time="2019-12-05T17:56:17Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:17Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:17Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" serviceName=api@internal providerName=kubernetescrd
time="2019-12-05T17:56:18Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:19Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:19Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:19Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:19Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:20Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:21Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" serviceName=api@internal providerName=kubernetescrd
time="2019-12-05T17:56:21Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
time="2019-12-05T17:56:21Z" level=warning msg="namespace \"production\" is ignored in cross-provider context" providerName=kubernetescrd serviceName=api@internal
^CGot error: signal: interrupt

Any explanation about it?

Chart 3.3.0 error at upgrade

So I've upgraded to version 3.3.0 of this chart and suddenly got this error:

coalesce.go:196: warning: cannot overwrite table with non table for env (map[])

while running helm upgrade.

Expose hostNetwork customization

Opening issue for discussion as requested in #49.

I want to be able to run Traefik in the host network namespace when I deploy it with this chart for the following potential scenarios:

  • I don't want to use a cloud provider load balancer in front of Traefik due to cost or redundancy.
  • I want to run Traefik on bare metal and don't have the option of fronting it with another load balancer.
  • I need my Traefik pods to have the Node IP as the Pod IP (to use with, for example, https://github.com/kubernetes-sigs/external-dns which will automatically create a DNS record pointing to that IP)

For any or all of these use cases, I need to be able to run my Traefik pod in the host network because:

  • binding to port 80/443 is restricted (by default k8s only allows NodePort > 3000)

As noted in the Traefik Team reply here and included in my original PR, this will also require some anti-affinity rules to be added to force Traefik pods to spread out among the nodes.

@mmatur do you have any questions about this?

Traefik 3.x Helm Chart

Do you want to request a feature or report a bug?

Install Feature : Helm 3.x Install Chart

What did you expect to see?

I am deploying to k3s - and that Kubernetes Distro from Rancher has now moved to Helm 3 charts.

Would it be possible to expedite the development of a Helm 3 chart for Traefik so that K3S may move forward in picking up Traefik 2 (and migrating from Traefik 1.x) either as an option or well documented manual custom process.

Fresh installing K3S --without-traefik AND downgrading Helm to V2 is more hacking than is ideal.

Upgrade to 2.2.0 with helm upgrade

Seems the problem still exists #95
I'm trying to upgrade to 2.2.0 with command "helm upgrade"
and getting errors in container logs:
"Failed to list *v1alpha1.TLSStore: the server could not find the requested resource"

Does it mean 'helm upgrade' doesn't work correctly?

feat: Add Support For Sidecar Container

It would be great if one could define a second container to run alongside traefik as a sidecar. For example this could be used to setup ForwardAuth to send traffic to a sidecar for JWT authentication

index.yaml missing

when i try to install traefik2 without user intervention by putting this file in the manifests directory of k3s:

apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: traefik
  namespace: kube-system
spec:
  chart: stable/traefik
  repo: https://github.com/containous/traefik-helm-chart
  set:
    image.tag: "2.2"
    rbac.enabled: "true"
    ssl.enabled: "true"

i find this error in the log files:

+ helm_v3 repo add traefik https://github.com/containous/traefik-helm-chart
Error: looks like "https://github.com/containous/traefik-helm-chart" is not a valid chart repository or cannot be reached: failed to fetch https://github.com/containous/traefik-helm-chart/index.yaml : 404 Not Found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.