-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Ingress Template No Longer Works with Traefik #368
Comments
|
@nextgens I'm not sure if/how that solves the issue? |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
i am also experiencing this issue, upgraded the chart from the version 1, to the latest one i have a traefik reverse proxy as ingress in kubernetes with all my other workloads i did set up initially to have traefik being used for the web interface, but let the front pod deal with the mail related ports with a load balancer.
@nextgens does this means i need to apply the insecure flag in traefik? |
btw @dlford how about bring ya solution to this post? |
To be clear, this is a temporary workaround for Traefik, this issue should really be resolved upstream.
|
thanks @dlford it worked! I edited the front-pod service and added:
this made the web interface work right away, but i am wondering if there is a change to make it an open relay or something? |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
@migs35323 Adding the |
Again, the right solution is to do what upstream documents. Traefik should treat the traffic as TCP and forward it to mailu-front. IMHO Ingress is the wrong abstraction, it should be a Gateway with a TCPRoute or a LoadBalancer (https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |
I just setup the same workaround as @dlford. It makes no sense to make use of proxy-protocol for https, and it would also not fix the initial issue. |
I have yet to see someone propose a solution that works without. @dlford's clearly does not. It's doable but tricky enough that most get it wrong; See #3684 for examples as of why. The next major version of Mailu will most likely fingerprint clients, including their SSL stacks using JA3. At that point doing proxy-protocol will not be optional. |
@nextgens you aren't being very clear...
I get that proxy-protocol is great (when it actually works), but I don't think everyone wants this shoved down our throats with no alternative, especially considering how new it is and therefore not well documented or supported. |
Ultimately, the main issue is that this helm chart does not work out of the box with Traefik. Of the many hundreds of helm charts I use or have used in the past, exactly one fails to work out of the box, and it's this one. |
We don't make design decisions based on the lowest common denominator. Are you seriously suggesting this is what a tightly integrated tool like Mailu should do?
https://mailu.io/2024.06/reverse.html#traefik-as-reverse-proxy |
I am providing feedback and user opinion, this is clearly unwelcome, I will be seeking an alternative to Mailu and stopping my monthly donations. Thanks for your "help". |
I believe the issue is indeed the difference of behavior between ingress-nginx and traefik: ingress-nginx doesn't check the backend certificate by default (https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#backend-certificate-authentication) but traefik does. |
I made a first attempt at a fix in #390 but don't have a traefik setup to test it out. |
Describe the bug
The ingress template has changed since version 1.5.0 to use
https
instead ofhttp
. This results in Traefik responding with error500
because the certificate ofmailu-front
is not valid for the hostmailu-front.[namespace].svc.[cluster_domain]
.Environment
kubeadm
clusterAdditional context
There are two possible solutions for this:
http
instead ofhttps
ServersTransport
formailu-front
withinsecureSkipVerify: true
, and reference it in the ingress template to bypass TLS verification for that host.Option two will require some way of conditionally applying if Traefik is in use, of course.
EDIT to add: Option 3: make the
http
/https
behavior an option invalues.yaml
(defaulting tohttps
), this would be an easy solution.The text was updated successfully, but these errors were encountered: