Mailu / helm-charts

Development repo for helm charts
126 stars 130 forks source link

[BUG] mail submission fails "connection refused" after upgrade to 2024.06.1 from 2.0.43 #346

Closed christf closed 3 months ago

christf commented 3 months ago

Describe the bug

mail submission fails since the upgrade. Port 587 is configured in the mailu-front-ext and in the mailu-front service. the postfix pod has port 587 in its description but postfix does not open the port as verified by running netstat -tulpena inside the container.

This may be a mailu issue instead of the a problem with the chart. It may also be an issue with mailu now being incompatible with version 1.5.0. I am raising this issue for the chart first, as the issue tracker on mailu asks for this when using kubernetes.

Sure enough, submission is disabled in the container in master.cf.

With no ability to downgrade (as per release notes of mailu) this renders existing setups broken when they upgrade without a way to fix. This seems critical to me. How can I help understand the problem better / contribute to a fix?

Update this looks related to the changes around the PORTS variable of mailu which was introduced with 2024.06.1. It seems that this is an issue with the helm chart then, requiring support for the newly-introduced PORTS variable by mailu.

Environment

kooskaspers commented 3 months ago

Thanks for testing out the new mailu version. In that case I'll stay a bit longer on mailu version 2.0.22. @fastlorenzo are you still a helm-chart user? and willing to have a look making the helm-chart compatible with the latest mailu version?

christf commented 3 months ago

frankly, given the criticality of mail infrastructure and mailu being first-class citizen on kubernetes, it would have been nice if the chart works for every major release as part of the release process. In any case, it is no use crying about spilled milk now - that may be something to ask for in the future.

fastlorenzo commented 3 months ago

Thanks for testing out the new mailu version. In that case I'll stay a bit longer on mailu version 2.0.22. @fastlorenzo are you still a helm-chart user? and willing to have a look making the helm-chart compatible with the latest mailu version?

Yes, I didn't had time yet to upgrade the chart. It's on my to-do list. Bear in mind that I'm maintaining the chart in my free time, any PR is also welcome 😎

kooskaspers commented 3 months ago

Describe the bug Update this looks related to the changes around the PORTS variable of mailu which was introduced with 2024.06.1. It seems that this is an issue with the helm chart then, requiring support for the newly-introduced PORTS variable by mailu.

Found this about the PORTS variable in the changelog: The PORTS (default: β€˜25,80,443,465,993,995,4190’) setting determines which services should be enabled. It is a comma delimited list of ports numbers. If you need to re-enable IMAP, POP3 and Submission, you can append β€˜110,143,587’ to that list.

Doesn't look that complicated to implement in the helm-chart. Will have a look at it when I got time.

christf commented 3 months ago

I can see more errors in the log that may be related - please do let me know if this is a separate issue entierely. When fetching mail, my postfix container says:

Jun 19 21:22:30 mail postfix/error[1076]: 69B411E169C: to=<xxxx@xxx.com>, relay=none, delay=42356, delays=42226/130/0/0.04, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to mailu-front.default.svc.cluster.local[10.43.244.37]:2525: Operation timed out)

This happens since I attempted the upgrade. This is now v2024.06.3

devfaz commented 3 months ago

The "2525" is missing in the service "mailu-front" - just add the following entry to the ports-list.

  - name: lmtp
    port: 2525
    protocol: TCP
    targetPort: 2525

in

kubectl edit svc mailu-front

I will try to provide some PR this evening.

christf commented 3 months ago

The "2525" is missing in the service "mailu-front" - just add the following entry to the ports-list.

  - name: lmtp
    port: 2525
    protocol: TCP
    targetPort: 2525

in

kubectl edit svc mailu-front

I will try to provide some PR this evening.

With this change, Mail is getting delivered again, thank you for the hint

this is what I applied locally: https://github.com/Mailu/helm-charts/pull/347

fastlorenzo commented 3 months ago

closed in #347

christf commented 3 months ago

Please reopen. The lmtp delivery is a second topic. With the lmtp ports as defined in #347 delivery starts working. Mail submission still fails.

christf commented 3 months ago

thank you and congrats for releasing 2.0.0. I have verified, mail delivery continues to work with the 2.0.0 release while mail submission on port 587 is still (as expected) not working. The services and pods expose the correct port but the postfix process inside the container is not listening in port 587

christf commented 3 months ago

today I found a few moments to poke at this. I manually edited the configmap that is being created by https://github.com/Mailu/helm-charts/blob/master/mailu/templates/envvars-configmap.yaml#L14 to contain a PORTS variable like this

$ kubectl get cm mailu-envvars
...
data:
  PORTS: 25,80,443,465,993,995,4190,587

with this, mail submission does something. I have yet to verify whether it works.

Update: mail submission with this change does work.

fastlorenzo commented 3 months ago

thanks for the feedback, PORTS env var was indeed not set in 2.0.0. I've fixed it in #354 , this is in master for now if you'd like to try it out. I'm still fixing a few other things before releasing a new version of the chart.