tripleo-heat-templates/puppet/services/time/ntp.yaml
Alex Schultz a866f55691 Add host prep step for ntp time sync
Docker doesn't like it when the time shifts so if we're building
containers when the ntp time sync actually occurs it can lead to
deployment failures. To prevent this, let's force a ntpdate on the host
during step1 to ensure the hardware time is properly synced before
proceeding.

Change-Id: I812c7da90ae06120707fd8795a41e4fd867f510e
Closes-Bug: #1776869
2018-06-20 13:08:52 -06:00

102 lines
3.4 KiB
YAML

heat_template_version: rocky
description: >
NTP service deployment using puppet, this YAML file
creates the interface between the HOT template
and the puppet manifest that actually installs
and configure NTP.
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
NtpServer:
default: ['pool.ntp.org']
description: NTP servers list. Defaulted to pool.ntp.org in order to
have a sane default for Pacemaker deployments when
not configuring this parameter by default.
type: comma_delimited_list
NtpIburstEnable:
default: true
description: Specifies whether to enable the iburst option for every NTP
peer. If iburst is enabled, when the ntp server is unreachable
ntp will send a burst of eight packages instead of one. This
is designed to speed up the initial syncrhonization.
type: boolean
MaxPoll:
description: Specify maximum poll interval of upstream servers for NTP
messages, in seconds to the power of two.
The maximum poll interval defaults to 10 (1,024 s).
Allowed values are 4 to 17.
type: number
default: 10
constraints:
- range: { min: 4, max: 17 }
MinPoll:
description: Specify minimum poll interval of upstream servers for NTP
messages, in seconds to the power of two.
The minimum poll interval defaults to 6 (64 s).
Allowed values are 4 to 17.
type: number
default: 6
constraints:
- range: { min: 4, max: 17 }
EnablePackageInstall:
default: 'false'
description: Set to true to enable package installation at deploy time
type: boolean
outputs:
role_data:
description: Role ntp using composable services.
value:
service_name: ntp
config_settings:
ntp::servers: {get_param: NtpServer}
ntp::iburst_enable: {get_param: NtpIburstEnable}
ntp::maxpoll:: {get_param: MaxPoll}
ntp::minpoll:: {get_param: MinPoll}
tripleo.ntp.firewall_rules:
'105 ntp':
dport: 123
proto: udp
step_config: |
include ::tripleo::profile::base::time::ntp
host_prep_tasks:
- name: NTP settings
set_fact:
ntp_servers: {get_param: NtpServer}
ntp_install_packages: {get_param: EnablePackageInstall}
- block:
- name: Install ntpdate
package:
name: ntpdate
state: present
when: ntp_install_packages|bool
- name: Ensure system is NTP time synced
command: ntpdate -u {{ ntp_servers | join(" ") }}
when: ntp_servers