Browse Source

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
changes/17/491317/25
zshi 5 years ago committed by Zenghui Shi
parent
commit
d0a92f1c20
  1. 2
      environments/hyperconverged-ceph.yaml
  2. 15
      environments/services/ptp.yaml
  3. 1
      overcloud-resource-registry-puppet.j2.yaml
  4. 102
      puppet/services/time/ptp.yaml
  5. 7
      releasenotes/notes/ptp-a1bf70fbfddd1830.yaml
  6. 1
      roles/BlockStorage.yaml
  7. 1
      roles/CephAll.yaml
  8. 1
      roles/CephFile.yaml
  9. 1
      roles/CephObject.yaml
  10. 1
      roles/CephStorage.yaml
  11. 1
      roles/Compute.yaml
  12. 1
      roles/ComputeHCI.yaml
  13. 1
      roles/ComputeOvsDpdk.yaml
  14. 1
      roles/ComputeOvsDpdkRT.yaml
  15. 1
      roles/ComputeRealTime.yaml
  16. 1
      roles/ComputeSriov.yaml
  17. 1
      roles/ComputeSriovRT.yaml
  18. 1
      roles/Controller.yaml
  19. 1
      roles/ControllerNoCeph.yaml
  20. 1
      roles/ControllerOpenstack.yaml
  21. 1
      roles/HciCephAll.yaml
  22. 1
      roles/HciCephFile.yaml
  23. 1
      roles/HciCephMon.yaml
  24. 1
      roles/HciCephObject.yaml
  25. 1
      roles/ObjectStorage.yaml
  26. 5
      roles_data.yaml

2
environments/hyperconverged-ceph.yaml

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

15
environments/services/ptp.yaml

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

1
overcloud-resource-registry-puppet.j2.yaml

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

102
puppet/services/time/ptp.yaml

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

7
releasenotes/notes/ptp-a1bf70fbfddd1830.yaml

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

1
roles/BlockStorage.yaml

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

1
roles/CephAll.yaml

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

1
roles/CephFile.yaml

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

1
roles/CephObject.yaml

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

1
roles/CephStorage.yaml

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

1
roles/Compute.yaml

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

1
roles/ComputeHCI.yaml

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

1
roles/ComputeOvsDpdk.yaml

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

1
roles/ComputeOvsDpdkRT.yaml

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

1
roles/ComputeRealTime.yaml

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

1
roles/ComputeSriov.yaml

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

1
roles/ComputeSriovRT.yaml

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

1
roles/Controller.yaml

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

1
roles/ControllerNoCeph.yaml

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

1
roles/ControllerOpenstack.yaml

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

1
roles/HciCephAll.yaml

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

1
roles/HciCephFile.yaml

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

1
roles/HciCephMon.yaml

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

1
roles/HciCephObject.yaml

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

1
roles/ObjectStorage.yaml

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

5
roles_data.yaml

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

Loading…
Cancel
Save