Add PTP composable service

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: Idc78df3a90b73be504480bc9d33a3f0041d2d84f
This commit is contained in:
zshi 2017-10-19 14:51:26 +08:00 committed by Zenghui Shi
parent 18cb9e067f
commit d0a92f1c20
26 changed files with 151 additions and 1 deletions

View File

@ -57,4 +57,4 @@ parameter_defaults:
- OS::TripleO::Services::RsyslogSidecar
- OS::TripleO::Services::LoginDefs
- OS::TripleO::Services::Rhsm
- OS::TripleO::Services::Ptp

View File

@ -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'

View File

@ -323,6 +323,7 @@ resource_registry:
OS::TripleO::Services::SkydiveAnalyzer: OS::Heat::None
OS::TripleO::Services::LoginDefs: OS::Heat::None
OS::TripleO::Services::ComputeInstanceHA: OS::Heat::None
OS::TripleO::Services::Ptp: OS::Heat::None
# Logging
OS::TripleO::Services::Logging::BarbicanApi: docker/services/logging/files/barbican-api.yaml

View File

@ -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

View File

@ -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.

View File

@ -35,3 +35,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -39,3 +39,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -35,3 +35,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -35,3 +35,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -32,3 +32,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -63,3 +63,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -54,3 +54,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -49,3 +49,4 @@
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Ptp

View File

@ -52,3 +52,4 @@
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Ptp

View File

@ -62,3 +62,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -54,3 +54,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -57,3 +57,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -158,3 +158,4 @@
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::Zaqar
- OS::TripleO::Services::Ptp

View File

@ -154,3 +154,4 @@
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::Zaqar
- OS::TripleO::Services::Ptp

View File

@ -129,3 +129,4 @@
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::Zaqar
- OS::TripleO::Services::Ptp

View File

@ -60,3 +60,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -56,3 +56,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -57,3 +57,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -56,3 +56,4 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp

View File

@ -42,3 +42,4 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp

View File

@ -161,6 +161,7 @@
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::Zaqar
- OS::TripleO::Services::Ptp
###############################################################################
# Role: Compute #
###############################################################################
@ -226,6 +227,7 @@
- OS::TripleO::Services::Vpp
- OS::TripleO::Services::OVNController
- OS::TripleO::Services::OVNMetadataAgent
- OS::TripleO::Services::Ptp
###############################################################################
# Role: BlockStorage #
###############################################################################
@ -263,6 +265,7 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp
###############################################################################
# Role: ObjectStorage #
###############################################################################
@ -307,6 +310,7 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp
###############################################################################
# Role: CephStorage #
###############################################################################
@ -341,4 +345,5 @@
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::Tuned
- OS::TripleO::Services::Ptp