Skip to content

Commit

Permalink
Install Chrony and disable NTP for 1804 (#626)
Browse files Browse the repository at this point in the history
* remove ntp and timesync install chrony instead

* Merge branch 'master' of https://github.com/Azure/AgentBaker into adadilli/addChrony

# Conflicts:
#	parts/linux/cloud-init/artifacts/cse_install.sh

* change install location

* move function to correct place

* make generate

* make ubuntu 18.04 specific

* move function inside cse_instal_ubuntu.sh

* make generate

* make generate

* add toggle

* make generate

* add also to types

Co-authored-by: Adil Adilli <[email protected]>
  • Loading branch information
2 people authored and Tony Xu committed Mar 6, 2021
1 parent 9c560ab commit d8f107b
Show file tree
Hide file tree
Showing 25 changed files with 794 additions and 10 deletions.
6 changes: 6 additions & 0 deletions parts/linux/cloud-init/artifacts/cse_main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ source {{GetCSEInstallScriptDistroFilepath}}
wait_for_file 3600 1 {{GetCSEConfigScriptFilepath}} || exit $ERR_FILE_WATCH_TIMEOUT
source {{GetCSEConfigScriptFilepath}}

{{- if EnableChronyFor1804}}
if [[ ${UBUNTU_RELEASE} == "18.04" ]]; then
disableNtpAndTimesyncdInstallChrony
fi
{{end}}

disable1804SystemdResolved

set +x
Expand Down
64 changes: 64 additions & 0 deletions parts/linux/cloud-init/artifacts/ubuntu/cse_install_ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,70 @@ installStandaloneContainerd() {
rm -Rf $CONTAINERD_DOWNLOADS_DIR &
fi
}


disableNtpAndTimesyncdInstallChrony() {
# Disable systemd-timesyncd
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
# Disable ntp
sudo systemctl stop ntp
sudo systemctl disable ntp

# Install chrony
apt-get update
apt-get install chrony -y
cat > /etc/chrony/chrony.conf <<EOF
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
#pool ntp.ubuntu.com iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys
# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift
# Uncomment the following line to turn logging on.
#log tracking measurements statistics
# Log files location.
logdir /var/log/chrony
# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0
# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync
# Settings come from: https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync
refclock PHC /dev/ptp0 poll 3 dpoll -2 offset 0
makestep 1.0 -1
EOF

systemctl restart chrony
}

downloadContainerd() {
CONTAINERD_VERSION=$1
# currently upstream maintains the package on a storage endpoint rather than an actual apt repo
Expand Down
3 changes: 3 additions & 0 deletions pkg/agent/baker.go
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,9 @@ func getContainerServiceFuncMap(config *datamodel.NodeBootstrappingConfiguration
"IsNSeriesSKU": func() bool {
return config.EnableNvidia
},
"EnableChronyFor1804": func() bool {
return config.Enable1804Chrony
},
"HasAvailabilityZones": func(profile *datamodel.AgentPoolProfile) bool {
return profile.HasAvailabilityZones()
},
Expand Down
1 change: 1 addition & 0 deletions pkg/agent/datamodel/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -1441,6 +1441,7 @@ type NodeBootstrappingConfiguration struct {
EnableKubeletConfigFile bool
EnableNvidia bool
EnableACRTeleportPlugin bool
Enable1804Chrony bool
TeleportdPluginURL string

// KubeletClientTLSBootstrapToken - kubelet client TLS bootstrap token to use.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ write_files:
encoding: gzip
owner: root
content: !!binary |
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


- path: /opt/azure/containers/provision_configs.sh
Expand Down
64 changes: 64 additions & 0 deletions pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/line48.sh
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,70 @@ installStandaloneContainerd() {
rm -Rf $CONTAINERD_DOWNLOADS_DIR &
fi
}


disableNtpAndTimesyncdInstallChrony() {
# Disable systemd-timesyncd
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
# Disable ntp
sudo systemctl stop ntp
sudo systemctl disable ntp

# Install chrony
apt-get update
apt-get install chrony -y
cat > /etc/chrony/chrony.conf <<EOF
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
#pool ntp.ubuntu.com iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys
# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift
# Uncomment the following line to turn logging on.
#log tracking measurements statistics
# Log files location.
logdir /var/log/chrony
# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0
# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync
# Settings come from: https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync
refclock PHC /dev/ptp0 poll 3 dpoll -2 offset 0
makestep 1.0 -1
EOF

systemctl restart chrony
}

downloadContainerd() {
CONTAINERD_VERSION=$1
# currently upstream maintains the package on a storage endpoint rather than an actual apt repo
Expand Down
Loading

0 comments on commit d8f107b

Please sign in to comment.