From 084291469ce8b0435aab8e95b07c234aafc3877e Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Wed, 15 Feb 2017 11:47:32 +0000 Subject: [PATCH] Stop using dhcp ntp and fix the options used on OSX The options added in https://github.com/docker/moby/commit/de6e7f9cbe5afb8b66dcbf06f56573494d60944d were not applied for ntp configured servers. As the address is always the same, stop using dhcp and just hard code this. This should make sync work how it used to, ie quite well. Also trust the GCP ntp server, as it is local and provided by infrastructure. Signed-off-by: Justin Cormack --- alpine/etc/dhcpcd.conf | 2 +- alpine/packages/chronyd/etc/init.d/chronyd | 4 +- .../usr/lib/dhcpcd/dhcpcd-hooks/50-ntp.conf | 141 ------------------ 3 files changed, 3 insertions(+), 144 deletions(-) delete mode 100644 alpine/usr/lib/dhcpcd/dhcpcd-hooks/50-ntp.conf diff --git a/alpine/etc/dhcpcd.conf b/alpine/etc/dhcpcd.conf index 3101181ba..e06ace538 100644 --- a/alpine/etc/dhcpcd.conf +++ b/alpine/etc/dhcpcd.conf @@ -26,7 +26,7 @@ option rapid_commit option domain_name_servers, domain_name, domain_search, host_name option classless_static_routes # Most distributions have NTP support. -option ntp_servers +# option ntp_servers # Respect the network MTU. This is applied to DHCP routes. option interface_mtu diff --git a/alpine/packages/chronyd/etc/init.d/chronyd b/alpine/packages/chronyd/etc/init.d/chronyd index 4aaa94197..a637e432a 100755 --- a/alpine/packages/chronyd/etc/init.d/chronyd +++ b/alpine/packages/chronyd/etc/init.d/chronyd @@ -51,13 +51,13 @@ start() { exit 0 ;; "mac") - sed -i '/pool pool.ntp.org/d' /etc/chrony/chrony.conf + sed -i -e "s/^pool [^ ]\+/server 192.168.65.1 trust/g" /etc/chrony/chrony.conf ;; "aws") sed -i -e "s/^pool [^ ]\+/pool 0.amazon.pool.ntp.org/g" /etc/chrony/chrony.conf ;; "gcp") - sed -i -e "s/^pool [^ ]\+/server metadata.google.internal/g" /etc/chrony/chrony.conf + sed -i -e "s/^pool [^ ]\+/server metadata.google.internal trust/g" /etc/chrony/chrony.conf ;; "azure") # TODO needs an ntp solution diff --git a/alpine/usr/lib/dhcpcd/dhcpcd-hooks/50-ntp.conf b/alpine/usr/lib/dhcpcd/dhcpcd-hooks/50-ntp.conf deleted file mode 100644 index 1772badea..000000000 --- a/alpine/usr/lib/dhcpcd/dhcpcd-hooks/50-ntp.conf +++ /dev/null @@ -1,141 +0,0 @@ -# Sample dhcpcd hook script for NTP -# It will configure either one of NTP, OpenNTP or Chrony (in that order) -# and will default to NTP if no default config is found. - -# Like our resolv.conf hook script, we store a database of ntp.conf files -# and merge into /etc/ntp.conf - -# You can set the env var NTP_CONF to override the derived default on -# systems with >1 NTP client installed. -# Here is an example for OpenNTP -# dhcpcd -e NTP_CONF=/usr/pkg/etc/ntpd.conf -# or by adding this to /etc/dhcpcd.conf -# env NTP_CONF=/usr/pkg/etc/ntpd.conf -# or by adding this to /etc/dhcpcd.enter-hook -# NTP_CONF=/usr/pkg/etc/ntpd.conf -# To use Chrony instead, simply change ntpd.conf to chrony.conf in the -# above examples. - -: ${ntp_confs:=ntp.conf ntpd.conf chrony.conf} -: ${ntp_conf_dirs=/etc /usr/pkg/etc /usr/local/etc /etc/chrony} -ntp_conf_dir="$state_dir/ntp.conf" - -# If NTP_CONF is not set, work out a good default -if [ -z "$NTP_CONF" ]; then - for d in ${ntp_conf_dirs}; do - for f in ${ntp_confs}; do - if [ -e "$d/$f" ]; then - NTP_CONF="$d/$f" - break 2 - fi - done - done - [ -e "$NTP_CONF" ] || NTP_CONF=/etc/ntp.conf -fi - -# Derive service name from configuration -if [ -z "$ntp_service" ]; then - case "$NTP_CONF" in - *chrony.conf) ntp_service=chronyd;; - *) ntp_service=ntpd;; - esac -fi - -# Debian has a seperate file for DHCP config to avoid stamping on -# the master. -if [ "$ntp_service" = ntpd ] && type invoke-rc.d >/dev/null 2>&1; then - [ -e /var/lib/ntp ] || mkdir /var/lib/ntp - : ${ntp_service:=ntp} - : ${NTP_DHCP_CONF:=/var/lib/ntp/ntp.conf.dhcp} -fi - -: ${ntp_restart_cmd:=service_condcommand $ntp_service restart} - -ntp_conf=${NTP_CONF} -NL=" -" - -build_ntp_conf() -{ - local cf="$state_dir/ntp.conf.$ifname" - local interfaces= header= srvs= servers= x= - - # Build a list of interfaces - interfaces=$(list_interfaces "$ntp_conf_dir") - - if [ -n "$interfaces" ]; then - # Build the header - for x in ${interfaces}; do - header="$header${header:+, }$x" - done - - # Build a server list - srvs=$(cd "$ntp_conf_dir"; - key_get_value "server " $interfaces) - if [ -n "$srvs" ]; then - for x in $(uniqify $srvs); do - servers="${servers}server $x$NL" - done - fi - fi - - # Merge our config into ntp.conf - [ -e "$cf" ] && rm -f "$cf" - [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" - - if [ -n "$NTP_DHCP_CONF" ]; then - [ -e "$ntp_conf" ] && cp "$ntp_conf" "$cf" - ntp_conf="$NTP_DHCP_CONF" - elif [ -e "$ntp_conf" ]; then - remove_markers "$signature_base" "$signature_base_end" \ - "$ntp_conf" > "$cf" - fi - - if [ -n "$servers" ]; then - echo "$signature_base${header:+ $from }$header" >> "$cf" - printf %s "$servers" >> "$cf" - echo "$signature_base_end${header:+ $from }$header" >> "$cf" - else - [ -e "$ntp_conf" -a -e "$cf" ] || return - fi - - # If we changed anything, restart ntpd - if change_file "$ntp_conf" "$cf"; then - [ -n "$ntp_restart_cmd" ] && eval $ntp_restart_cmd - fi -} - -add_ntp_conf() -{ - local cf="$ntp_conf_dir/$ifname" x= - - [ -e "$cf" ] && rm "$cf" - [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" - if [ -n "$new_ntp_servers" ]; then - for x in $new_ntp_servers; do - echo "server $x" >> "$cf" - done - fi - build_ntp_conf -} - -remove_ntp_conf() -{ - if [ -e "$ntp_conf_dir/$ifname" ]; then - rm "$ntp_conf_dir/$ifname" - fi - build_ntp_conf -} - -# For ease of use, map DHCP6 names onto our DHCP4 names -case "$reason" in -BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) - new_ntp_servers="$new_dhcp6_sntp_servers" -;; -esac - -if $if_up; then - add_ntp_conf -elif $if_down; then - remove_ntp_conf -fi