Browse Source
Precision Time Protocol (PTP) is a protocol used to synchronize clocks throughout a network. When used in conjunction with hardware support, PTP is capable of sub-microsecond accuracy which is far better than is normally obtainable with NTP. Change-Id: I98a1833db28944cfd5a89e4f28c192bb9af8ebbb Depends-On: Idc78df3a90b73be504480bc9d33a3f0041d2d84fchanges/17/491317/25
26 changed files with 151 additions and 1 deletions
@ -0,0 +1,15 @@
|
||||
# A Heat environment file that can be used to deploy PTP service |
||||
|
||||
resource_registry: |
||||
OS::TripleO::Services::Ntp: OS::Heat::None |
||||
OS::TripleO::Services::Ptp: ../../puppet/services/time/ptp.yaml |
||||
|
||||
parameter_defaults: |
||||
# PTP hardware interface name |
||||
# PtpInterface: 'nic1' |
||||
|
||||
# Configure PTP clock in slave mode |
||||
PtpSlaveMode: 1 |
||||
|
||||
# Configure PTP message transport protocol |
||||
PtpMessageTransport: 'UDPv4' |
@ -0,0 +1,102 @@
|
||||
heat_template_version: queens |
||||
|
||||
description: > |
||||
PTP service deployment using puppet, this YAML file |
||||
creates the interface between the HOT template and |
||||
the puppet manifest that actually installs and |
||||
configure PTP. |
||||
|
||||
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 |
||||
PtpInterface: |
||||
default: nic1 |
||||
description: PTP interface name. |
||||
type: string |
||||
PtpSlaveMode: |
||||
default: 1 |
||||
description: Configure PTP clock in slave mode. |
||||
type: number |
||||
PtpMessageTransport: |
||||
default: UDPv4 |
||||
description: Configure PTP message transport protocol. |
||||
type: string |
||||
|
||||
resources: |
||||
RoleParametersValue: |
||||
type: OS::Heat::Value |
||||
properties: |
||||
type: json |
||||
value: |
||||
map_replace: |
||||
- map_replace: |
||||
- tripleo::profile::base::time::ptp::ptp4l_interface: PtpInterface |
||||
tripleo::profile::base::time::ptp::ptp4l_conf_slaveOnly: PtpSlaveMode |
||||
tripleo::profile::base::time::ptp::ptp4l_conf_network_transport: PtpMessageTransport |
||||
- values: {get_param: [RoleParameters]} |
||||
- values: |
||||
PtpInterface: {get_param: PtpInterface} |
||||
PtpSlaveMode: {get_param: PtpSlaveMode} |
||||
PtpMessageTransport: {get_param: PtpMessageTransport} |
||||
|
||||
outputs: |
||||
role_data: |
||||
description: Role ptp using commposable services. |
||||
value: |
||||
service_name: ptp |
||||
config_settings: |
||||
map_merge: |
||||
- get_attr: [RoleParametersValue, value] |
||||
- tripleo.ptp.firewall_rules: |
||||
'151 ptp': |
||||
proto: udp |
||||
dport: |
||||
- 319 |
||||
- 320 |
||||
step_config: | |
||||
include ::tripleo::profile::base::time::ptp |
||||
upgrade_tasks: |
||||
- name: Check if NTP is deployed |
||||
command: systemctl is-enabled ntpd |
||||
tags: common |
||||
ignore_errors: True |
||||
register: ntp_enabled |
||||
- name: Validation |
||||
shell: /usr/bin/systemctl show 'ntpd' --property ActiveState | grep '\bactive\b' |
||||
when: ntp_enabled.rc == 0 |
||||
tags: step0,validation |
||||
- name: Stop NTP service |
||||
service: name=ntpd state=stopped |
||||
when: ntp_enabled.rc == 0 |
||||
tags: step2 |
||||
- name: Disable NTP service |
||||
service: name=ntpd state=stopped |
||||
ignore_errors: True |
||||
when: ntp_enabled.rc == 0 |
||||
tags: step2 |
@ -0,0 +1,7 @@
|
||||
--- |
||||
features: |
||||
- Add the ability to deploy PTP. Precision Time Protocol (PTP) is a protocol |
||||
used to synchronize clocks throughout a compute network. With hardware |
||||
timestamping support on the host, PTP can achieve clock accuracy in the |
||||
sub-microsecond range. PTP can be used as an alternative to NTP for high |
||||
precision clock calibration. |
Loading…
Reference in new issue