After deployment today we have hard-coded DNS and NTP fields on all nodes that
referred to master node. So if master node will not have internet access to NTP
servers that ships by default with ISO or if master node will disabled after
deployment then all nodes can have wrong time. It’s right for DNS also.
Moreover, usually companies have internal NTP servers to sync over and internal
DNS to work over, but now user can’t provide them to Fuel for slave nodes.

Provide ability to change NTP and DNS servers for controllers through Fuel UI.
We can do it relatively simply by adding appropriate fields for external
DNS and NTP servers, then forward data from that fields to astute.yaml,
transfer it to nodes and apply data on nodes.
It is important to note that slave nodes /etc/resolve.conf files will be
pointed to controller DNS and controllers will resolve all clients queries by
next logic:

User can do all stuff about adding NTP and DNS records on all nodes
himself (manually).

Pros:

We don’t need to change any code at all.

Cons:

It inconvinient, can lead to typo errors and, as result, to
delay in work of all system.

If customer’s ntp server will N/A for long time, time synchronization
between controllers and computes will be lost. After this Nova will
mark nodes with different time as failed. Openstack env starts spoiling

So as we don’t have any implementation of major environments upgrade, we will
not support upgrade from old environments where we hadn’t vrouter [1] for
external DNS and NTP to new environment where we have one. Downgrade also will
not support.