mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 19:15:34 +00:00
cmd/k8s-operator: avoid port collision with metrics endpoint
When the operator enables metrics on a proxy, it uses the port 9001, and in the near future it will start using 9002 for the debug endpoint as well. Make sure we don't choose ports from a range that includes 9001 so that we never clash. Setting TS_SOCKS5_SERVER, TS_HEALTHCHECK_ADDR_PORT, TS_OUTBOUND_HTTP_PROXY_LISTEN, and PORT could also open arbitrary ports, so we will need to document that users should not choose ports from the 10000-20000 range for those settings. Updates #13406 Signed-off-by: Tom Proctor <tomhjp@users.noreply.github.com>
This commit is contained in:
parent
e3c6ca43d3
commit
59cbb82f6a
@ -540,13 +540,13 @@ func svcNameBase(s string) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// unusedPort returns a port in range [3000 - 4000). The caller must ensure that
|
// unusedPort returns a port in range [10000 - 20000). The caller must ensure that
|
||||||
// usedPorts does not contain all ports in range [3000 - 4000).
|
// usedPorts does not contain all ports in range [10000 - 20000).
|
||||||
func unusedPort(usedPorts sets.Set[int32]) int32 {
|
func unusedPort(usedPorts sets.Set[int32]) int32 {
|
||||||
foundFreePort := false
|
foundFreePort := false
|
||||||
var suggestPort int32
|
var suggestPort int32
|
||||||
for !foundFreePort {
|
for !foundFreePort {
|
||||||
suggestPort = rand.Int32N(maxPorts) + 3000
|
suggestPort = rand.Int32N(maxPorts) + 10000
|
||||||
if !usedPorts.Has(suggestPort) {
|
if !usedPorts.Has(suggestPort) {
|
||||||
foundFreePort = true
|
foundFreePort = true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user