Sahara can support NTP (Network Time Protocol) for clusters instances. NTP is intended to synchronize time on all clusters instances. It can be useful for several services on Cloudera, HDP clusters (see  for reference).
Sahara should support configuring NTP on cluster instances since it’s required to HDP and Cloudera clusters.
First, it’s proposed to preinstall ntp daemon on all images via sahara-image-elements. For clean images will not configure ntp at all. Also installing ntp on instances of long living clusters can be prevented, as well.
As a second step we should add new common string config option to sahara in general section of cluster configs, that will allow to specify own NTP server for current cluster. This config option can be supported in all plugins and will allow to install NTP on all cluster instances with specified NTP server. As option, we can allow disabling NTP, at least for fake plugin. So, following plugin options we will have:
As the third step, we should provide new config for sahara.conf that will to specify default NTP server on current sahara installation. It can useful because default NTP server can be different in different regions. Also it would allow to use NTP server that was installed specially for current lab and current sahara installation.
Second step require to have common options for all plugins to avoid code duplication for all plugins. All options can be added to plugins/provisioning.py as well.
We can store ntp_url and ntp_enabled as cluster column, it’s looks like long story for being merged: sahara-side code -> python-saharaclient -> (long long story) horizon support.
We don’t need extra migrations, we will store information about NTP server in general section of cluster configs.
Storing NTP server in separate column in database not really useful, since we can store this information just in cluster configs.
User will have ability to specify own NTP server for current cluster and current sahara installation.
It’s required to preinstall NTP on all images.
Since Sahara already have ability to expose all general config options during cluster-template creation, we don’t need extra modifications on Horizon side.
Proposed change will contain following steps:
Depends on Openstack requirements
Feature will covered with integration tests as well.
Need to document feature and all config options, which will be used for NTP configuration.