-
Notifications
You must be signed in to change notification settings - Fork 385
Conversation
This is needed because in some cases Kubernetes will refuse udp traffic.
When `server.exposeGossipAndRPCPorts` is true, expose server's serf WAN port as a host port on 8302. This is needed for specific cases where serf attempts to use the WAN network because the advertise IP is the host IP and so it will attempt to use hostIP and 8302. This port does not need to be configurable (unlike serf LAN) because clients don't expose a serf WAN port, only servers and so it won't collide with client ports.
UDP traffic would not be routed properly. | ||
|
||
In addition, if `server.exposeGossipAndRPCPorts` is true, expose the WAN port | ||
(`8302`) as a host port. [[GH-839](https://github.com/hashicorp/consul-helm/pull/839)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, were you able to see any error logs without this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, only the failing of the API call.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💥 nice
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥
It turns out that we do need to expose the server wan port as a host port when the advertise IP is the node IP in order for the
/operator/keyring
to work. There may be other reasons as well but we know this doesn't work without it.Changes proposed in this PR:
serfwan
intoserfwan-tcp
andserfwan-udp
(similar toserflan-tcp/udp
) because when exposed as ahostPort
if the UDP protocol port doesn't exist then the/operator/keyring
API failsserfwan
as a host port whenserver.exposeGossipAndRPCPorts
istrue
FIxes #838, re-opens and concludes #762.
How I've tested this PR:
kubectl create secret generic consul-gossip-encryption-key --from-literal=key=$(consul keygen)
Use values.yaml
Install with latest helm chart
Run
kubectl exec consul-server-0 -- curl -sS localhost:8500/v1/operator/keyring
Uninstall
Install with this branch
Run
kubectl exec consul-server-0 -- curl -sS localhost:8500/v1/operator/keyring
How I expect reviewers to test this PR:
Checklist: