Hi team looks like Temporal by default does not support IPv6. Is there any guidelines for the same?
We are on version 1.18.1
Yeah looks like it. So the code was merged around Oct 26th, 2022. I have been looking at releases after that but don’t see the IPv6 comment in any. Looked Release v1.18.3 · temporalio/temporal · GitHub onwards. I am assuming there would be a comment on the release ?
Also found this open issue from Nov 19 2022 which seem to say it is not supported
[temporalio/auto-setup] bindOnIP does not work with ipv6 · Issue #3629 · temporalio/temporal · GitHub @tihomir
Besides also found this https://github.com/temporalio/temporal/pull/1472 but the above issue is still open on this one. Also am not sure why don’t I see the commits in release am I missing something?
Based on my understanding the v1.9.0 had the support added [not sure about the SQL part as mentioned in the pull request]. And the later one is fixing the entry point issue. Fix entrypoint when running in IPv6 by PenguinToast · Pull Request #68 · temporalio/docker-builds · GitHub . I suppose even if I don’t upgrade the server and just add the bind IP change it should make it Ipv6 compatible. However, will further look on what release is the last commit part of. i think that is just on the docker build. @tihomir thoughts?
Hi @Anshumali_Prasad - I’m actively looking into ipv6 support and I’ll update here with what I find.
Any information you’re able to provide on the environment temporal is running in and the deployment method would be helpful.
to update this thread - temporal does fully support ipv6 provided config specifies ipv6 addresses. this can be challenging right now in dual stack environments if your active cluster rpc address / public client address is a domain name that serves both A and AAAA records as as the default dns resolution in golang favors ipv4 addresses.
suggested ways to try to work around this:
- specify a well known ipv6 as the cluster rpc / public client addresses
- if well known ipv6 isn’t an option, specify only AAAA in cluster DNS entries
- to support dual stack clients, create a second DNS entry to serve A and AAAA for clients and one that only serves AAAA for the cluster rpc address / public client address for server config