Composable roles within services - NTP
authorCarlos Camacho <ccamacho@redhat.com>
Wed, 27 Apr 2016 11:57:21 +0000 (13:57 +0200)
committerCarlos Camacho <ccamacho@redhat.com>
Tue, 21 Jun 2016 10:20:11 +0000 (12:20 +0200)
Add NTP as a composable service.

Also, the scope of this patch is to serve as
basis for the blueprint related to the
composable services walkthrough.

This will be the use case documented.

The puppet manifests updated to remove the current
configuration for NTP is also added.

Change-Id: I1d3d6229d53f48c380e6a775a7c50de8715fe949

overcloud-resource-registry-puppet.yaml
overcloud.yaml
puppet/controller.yaml
puppet/manifests/overcloud_controller.pp
puppet/manifests/overcloud_controller_pacemaker.pp
puppet/services/time/ntp.yaml [new file with mode: 0644]

index 4fab246..a532efa 100644 (file)
@@ -156,6 +156,7 @@ resource_registry:
   OS::TripleO::Services::NovaConsoleauth: puppet/services/nova-consoleauth.yaml
   OS::TripleO::Services::NovaVncproxy: puppet/services/nova-vncproxy.yaml
   OS::TripleO::Services::NovaCompute: puppet/services/nova-compute.yaml
+  OS::TripleO::Services::Ntp: puppet/services/time/ntp.yaml
 
 parameter_defaults:
   EnablePackageInstall: false
index d8955b9..76f4491 100644 (file)
@@ -221,6 +221,7 @@ parameters:
     description: The password for the nova service account, used by nova-api.
     type: string
     hidden: true
+  #TODO(ccamacho): Remove after landing Ntp in all roles
   NtpServer:
     default: ''
     description: Comma-separated list of ntp servers
@@ -594,6 +595,7 @@ parameters:
       - OS::TripleO::Services::NovaScheduler
       - OS::TripleO::Services::NovaConsoleauth
       - OS::TripleO::Services::NovaVncproxy
+      - OS::TripleO::Services::Ntp
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Controllers.
@@ -867,7 +869,6 @@ resources:
           NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
           NovaIPv6: {get_param: NovaIPv6}
           NovaPassword: {get_param: NovaPassword}
-          NtpServer: {get_param: NtpServer}
           PcsdPassword: {get_resource: PcsdPassword}
           PublicVirtualInterface: {get_param: PublicVirtualInterface}
           RabbitPassword: {get_param: RabbitPassword}
index 70989cc..be6c00c 100644 (file)
@@ -284,10 +284,6 @@ parameters:
     description: The password for the nova service and db account, used by nova-api.
     type: string
     hidden: true
-  NtpServer:
-    default: ''
-    description: Comma-separated list of ntp servers
-    type: comma_delimited_list
   PcsdPassword:
     type: string
     description: The password for the 'pcsd' user.
@@ -737,7 +733,6 @@ resources:
         rabbit_cookie: {get_param: RabbitCookie}
         rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
         rabbit_client_port: {get_param: RabbitClientPort}
-        ntp_servers: {get_param: NtpServer}
         timezone: {get_param: TimeZone}
         control_virtual_interface: {get_param: ControlVirtualInterface}
         public_virtual_interface: {get_param: PublicVirtualInterface}
@@ -1053,7 +1048,6 @@ resources:
                 # Misc
                 memcached_ipv6: {get_input: memcached_ipv6}
                 memcached::listen_ip: {get_input: memcached_network}
-                ntp::servers: {get_input: ntp_servers}
                 timezone::timezone: {get_input: timezone}
                 control_virtual_interface: {get_input: control_virtual_interface}
                 public_virtual_interface: {get_input: public_virtual_interface}
index 6084c95..2bd3b4e 100644 (file)
@@ -28,10 +28,6 @@ if hiera('step') >= 1 {
 
 if hiera('step') >= 2 {
 
-  if count(hiera('ntp::servers')) > 0 {
-    include ::ntp
-  }
-
   include ::timezone
 
   # MongoDB
index 1327111..902e668 100644 (file)
@@ -59,10 +59,6 @@ if hiera('step') >= 1 {
 
   include ::timezone
 
-  if count(hiera('ntp::servers')) > 0 {
-    include ::ntp
-  }
-
   $pacemaker_cluster_members = downcase(regsubst(hiera('controller_node_names'), ',', ' ', 'G'))
   $corosync_ipv6 = str2bool(hiera('corosync_ipv6', false))
   if $corosync_ipv6 {
diff --git a/puppet/services/time/ntp.yaml b/puppet/services/time/ntp.yaml
new file mode 100644 (file)
index 0000000..dbef6f9
--- /dev/null
@@ -0,0 +1,27 @@
+heat_template_version: 2016-04-08
+
+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:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  NtpServers:
+    default: []
+    description: NTP servers
+    type: comma_delimited_list
+
+outputs:
+  role_data:
+    description: Role ntp using composable services.
+    value:
+      config_settings:
+        ntp::ntpservers: {get_param: NtpServers}
+      step_config: |
+        include ::ntp
\ No newline at end of file