a866f55691
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
102 lines
3.4 KiB
YAML
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
|