traefik / traefik-helm-chart

Traefik Proxy Helm Chart
https://traefik.io
Apache License 2.0
1.07k stars 752 forks source link

How to start traefik dashboard? #85

Closed MichelDiz closed 4 years ago

MichelDiz commented 4 years ago

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?

arlyon commented 4 years ago

Also struggling with this. Can access traefik (as evidenced by the 404 page) but dashboard is also a 404...

edit: the trailing / is mandatory so ${ip}/dashboard/

MichelDiz commented 4 years ago

The "workaround" I did was clone the repo, edit manually and helm install traefik ./

ldez commented 4 years ago

Hello,

You have to set: dashboard.enable=true and dashboard.ingressRoute=true

https://github.com/containous/traefik-helm-chart/blob/43d63f418836d7aaac03cfca5b54f4287c8acf9c/traefik/values.yaml#L76-L83

FYI this helm chart is now published in this repo: https://github.com/containous/traefik-helm-chart#installing

MichelDiz commented 4 years ago

Hi @ldez , the issue is that I have to clone instead of following the instructions in the readme. To make it work.

MichelDiz commented 4 years ago

You guys could add a new value in https://github.com/containous/traefik-helm-chart/blob/d7fc8d82551dd8c22a842948f32f4dc9233492e7/traefik/templates/dashboard-hook-ingressroute.yaml#L1 with "OR" operator we could do something like

helm install traefik traefik/traefik --set expose.dashboard=true

Just supposing about it, need to test out the hypothesis.

mmatur commented 4 years ago

Hi @MichelDiz,

The dashboard is now deployed by default only on traefik entry-point.

You can do the installation with the following command:

helm install traefik traefik/traefik

The dashboard is accessible with the following command:

kubectl port-forward traefik-xxxx-xxx 9000:9000

https://localhost:9000/

I'm closing this issue because I think the question is answered.

blasrodri commented 4 years ago

@mmatur I've installed it using

helm traefik treafik/treafik

Then I do:

$ kubectl port-forward traefik-6c4575d8b8-5w2z5 9000:9000
$ curl http://localhost:9000/ping
OK
$ curl http://localhost:9000/
404 page not found

Any idea of what I'm missing?

mmatur commented 4 years ago

@blasrodri

The dashboard is exposed on /dashboard

curl http://localhost:9000/dashboard/
blasrodri commented 4 years ago

Thanks @mmatur . But still having trouble. Forgot to add:

curl http://localhost:9000/dashboard
404 page not found
blasrodri commented 4 years ago

oh, is the trailing /? haha Got it, thanks!

nelsonyaccuzzi commented 4 years ago

Hi, I can't get to the dashboard

I've tried with the trailing dash and it doesn't work, but the ping endpoint works

➜ ~ kubectl port-forward $(kubectl get pods --selector "app.kubernetes.io/name=traefik" --output=name -n traefik-v2) 9000:9000 -n traefik-v2
Forwarding from 127.0.0.1:9000 -> 9000
Forwarding from [::1]:9000 -> 9000
➜  ~ curl http://localhost:9000/ping
OK%                                                                                                                              
➜  ~ curl http://localhost:9000/dashboard
404 page not found
➜  ~ curl http://localhost:9000/dashboard/
404 page not found
yusiwen commented 3 years ago

still got 404 when accessing http://localhost:9000/dashboard/ any updates?

dchernivetsky commented 3 years ago

+1 for this. Why is this closed without due investigation. We have a default chart installation with the following values.yaml:

traefik:
  enabled: true
  additionalArguments: 
    - "--providers.kubernetesingress"
    - "--providers.kubernetescrd.ingressclass=traefik-internal"
    - "--providers.kubernetesingress.ingressclass=traefik-internal"
    - "--metrics.prometheus=true"
    - "--metrics.prometheus.entrypoint=metrics"
    - "--entrypoints.metrics.address=0.0.0.0:9100"
  serviceType: LoadBalancer
  nameOverride: traefik-internal
  fullnameOverride: traefik-internal
  replicas: 1
  rbac:
    enabled: true
  resources:
    limits:
      cpu: 300m
      memory: 200Mi
    requests:
      cpu: 100m
      memory: 200Mi
  autoscaling:
    enabled: true
    minReplicas: 1
    maxReplicas: 20
    metrics:
    - type: Resource
      resource:
        name: cpu
        targetAverageUtilization: 60

It does seem to install the dashboard ingressroute

kubectl get ingressroute -n kube-system
NAME                         AGE
traefik-internal-dashboard   18m

However no dashboard shows up when port-forwarded:

$ curl http://localhost:9000/dashboard/
404 page not found
$ 

EDIT: For anyone else having trouble with this @nelsonyaccuzzi @yusiwen check that your ingressroute for the dashboard has the correct annotation for the ingress class, should look something like this

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  annotations:
    helm.sh/hook: post-install,post-upgrade
    kubernetes.io/ingress.class: traefik-internal
  labels:
    app: traefik-internal
  [...]

Note the kubernetes.io/ingress.class annotation. To be honest this is a poorly designed parameter. If we are expecting users to override the ingress class via a flag to the binary then we can't expect the users to know the effects this flag might have on other resources (ingressRoute in this example). ingress class should be moved to its own value parameter and modify any and all aspects of the chart that it influences.

TL;DR there's a bug in the chart with the way it handles ingress.class @ldez @mmatur /reopen

xrl commented 3 years ago

I cleared up this error on my side by tearing down the traefik helm release, reinstalling it. Something is screwed up with the CRDs, as the post directly above me indicates. But I wasn't doing anything to change the ingress classes so those changes didn't help me.

indigo423 commented 2 years ago

Ran into a similar issue deploying the Helm chart. What is really important, add the / in the URL when accessing it with port forwarding like here http://localhost:49599/dashboard/.

NicolasTr commented 2 years ago

I ran into a similar issue. I had to add the following to the helm values to be able to port forward to the dashboard:

ingressRoute:
  dashboard:
    enabled: true
broomfn commented 1 year ago

Why do we need the tailing "/" on "/dashboard/", It's really confusing, I thought one of the goals of Traefik was (and I quote)

"With Traefik, you spend time developing and deploying new features to your system, not on configuring and maintaining its working state."

I've spent hours trying to get this working, and things like having to add tailing backslashes really don't help :-(

lzd-1230 commented 7 months ago

I ran into a similar issue. I had to add the following to the helm values to be able to port forward to the dashboard:

ingressRoute:
  dashboard:
    enabled: true

That's real methods dude... It's weird that after open ingressRoute but without actual ingressRoute resource in k8s when using kubectl get ingressroute --all-namespace.

idpsycho commented 2 months ago

when running this: kubectl port-forward $(kubectl get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000

i got 404 even with slash at the end: http://127.0.0.1:9000/dashboard/

what fixed it was to create fix-traefik-dashboard.yaml with:

ingressRoute:
 dashboard:
   enabled: true

and run: helm upgrade --install traefik traefik/traefik -f fix-traefik-dashboard.yaml

now it works (no need to restart port forwarding either) (just summarizing, because there wasnt full summary answer anywhere in here)

EDIT: removed unnecessary part, and tested, works without it

mloiseleur commented 2 months ago

That's right, since v29.0.0, this IngressRoute has been disabled by default.

@idpsycho This part is not doing anything with this chart:

dashboard:
 enable: true

You can remove it. BTW, I opened a PR to improve current example on this subject, see #1134 . Wdyt ? Anything to add ?