environment variable for defining FST name
There can be cases (e.g. multi-home networking) where a system reports hostname -f
as an internal private network name e.g. eos-fst-2.cluster.internal, while the public name for reaching that system may be something else, e.g. eos-fst-2.example.org. In some cases a system might not even be aware of its own public name or IP address, and moreover be incapable of determining that, because it is handled by network routing layers not visible to the system itself (for example a VM using an Openstack floating IP address, applications running behind a LBaaS or Kubernetes services or ingress controllers, etc.)
If I understand correctly, the MGM needs to know the names of all FSTs so it can tell clients to redirect to that externally reachable name.
So, in such cases mentioned above where an EOS server can not know its own public name or IP, I think we would need a config option or env variable e.g. FST_HOST_NAME
that can be used to tell FSTs what name to use when they register with the MGM, so the MGM can tell clients what name to redirect to.
As far as I can tell this will be required to run an EOS installation on Kubernetes that is externally accessible to clients outside the cluster.
I am not sure if this would be required for MGMs too. If the only redirection is from MGM to FST, it should not be. As long as the traffic gets delivered to the MGM, presumably it should not matter whether the MGM knows its own public IP and address or not.
To briefly summarize we need a way to run EOS components in an environment where they perceive their host names as e.g. eos-fst-2.cluster.internal, but the private subdomain "cluster.internal" must never be exposed to external clients because they will not be able to resolve it.