$ cat > ~/.tanzu/tkg/providers/ytt/03_customizations/add_ntp.yaml <<EOF
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")
#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
---
spec:
kubeadmConfigSpec:
#@overlay/match missing_ok=True
ntp:
enabled: true
servers:
- 1.2.3.4
#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"}),expects="1+"
---
spec:
template:
spec:
#@overlay/match missing_ok=True
ntp:
enabled: true
servers:
- 1.2.3.4
EOF
$ tanzu cluster create dryrun-cluster --dry-run --file cluster-config.yaml > dryrun-cluster.yaml
$ cat dryrun-cluster.yaml | yq e 'select(.kind == "KubeadmControlPlane") | .spec.kubeadmConfigSpec.ntp' -
enabled: true
servers:
- 1.2.3.4
$ kubectl get secrets mgmt-control-plane-98zlp -o json | jq '.data.value' -r | base64 -d | grep ntp -A 4
ntp:
enabled: true
servers:
- 1.2.3.4
$ cat /etc/chrony/chrony.conf | grep server
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# servers
server 1.2.3.4 iburst
# Add NTP servers manually
vim /etc/chrony/chrony.conf
server 172.16.X.X iburst
server 172.16.Y.Y iburst
# Restart
systemctl restart chronyd.service
systemctl status chronyd.service
# Check
chronyc sources -v
chronyc tracking
systemd-timesyncd (PhotonOS)
# Add NTP servers manually
vi /etc/systemd/timesyncd.conf
[Time]
NTP=192.168.X.X 192.168.Y.Y
# Restart
systemctl restart systemd-timesyncd
systemctl status systemd-timesyncd
# Check
timedatectl timesync-status
timedatectl status
timedatectl show-timesync