Adds memcached as a composable service
authormarios <marios@redhat.com>
Thu, 5 May 2016 11:10:02 +0000 (14:10 +0300)
committermarios <marios@redhat.com>
Fri, 20 May 2016 07:16:08 +0000 (10:16 +0300)
Implements: blueprint composable-services-within-roles
Depends-On: Icd504aef7dda144582c286c56c925a78566af72c
Change-Id: I8802c2a0cf1e5fa1a6d1fab5e87f6014bea2f517

environments/puppet-pacemaker.yaml
overcloud-resource-registry-puppet.yaml
overcloud.yaml
puppet/manifests/overcloud_controller.pp
puppet/manifests/overcloud_controller_pacemaker.pp
puppet/services/memcached.yaml [new file with mode: 0644]
puppet/services/pacemaker/memcached.yaml [new file with mode: 0644]

index 4dede42..3089885 100644 (file)
@@ -17,3 +17,4 @@ resource_registry:
   OS::TripleO::Services::NeutronMetadataAgent: ../puppet/services/pacemaker/neutron-metadata.yaml
   OS::TripleO::Services::RabbitMQ: ../puppet/services/pacemaker/rabbitmq.yaml
   OS::TripleO::Services::Loadbalancer: ../puppet/services/pacemaker/loadbalancer.yaml
+  OS::TripleO::Services::Memcached: ../puppet/services/pacemaker/memcached.yaml
index 55ce7c3..9b01f05 100644 (file)
@@ -131,6 +131,7 @@ resource_registry:
   OS::TripleO::Services::NeutronMetadataAgent: puppet/services/neutron-metadata.yaml
   OS::TripleO::Services::RabbitMQ: puppet/services/rabbitmq.yaml
   OS::TripleO::Services::Loadbalancer: puppet/services/loadbalancer.yaml
+  OS::TripleO::Services::Memcached: puppet/services/memcached.yaml
 
 parameter_defaults:
   EnablePackageInstall: false
index 71a544f..147065c 100644 (file)
@@ -659,6 +659,7 @@ parameters:
       - OS::TripleO::Services::NeutronMetadataAgent
       - OS::TripleO::Services::RabbitMQ
       - OS::TripleO::Services::Loadbalancer
+      - OS::TripleO::Services::Memcached
     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.
index 833a3e0..9a2249d 100644 (file)
@@ -452,7 +452,6 @@ if hiera('step') >= 4 {
   }
 
   # swift proxy
-  include ::memcached
   include ::swift::proxy
   include ::swift::proxy::proxy_logging
   include ::swift::proxy::healthcheck
index 9159366..f24c94f 100644 (file)
@@ -110,11 +110,6 @@ if hiera('step') >= 1 {
     }
   }
 
-  # Memcached
-  class {'::memcached' :
-    service_manage => false,
-  }
-
   # Redis
   class { '::redis' :
     service_manage => false,
@@ -206,11 +201,6 @@ if hiera('step') >= 2 {
       clone_params   => true,
     }
 
-    pacemaker::resource::service { $::memcached::params::service_name :
-      clone_params => 'interleave=true',
-      require      => Class['::memcached'],
-    }
-
     if downcase(hiera('ceilometer_backend')) == 'mongodb' {
       pacemaker::resource::service { $::mongodb::params::service_name :
         op_params    => 'start timeout=370s stop timeout=200s',
@@ -916,15 +906,6 @@ if hiera('step') >= 5 {
       require         => [Pacemaker::Resource::Service[$::apache::params::service_name],
                           Pacemaker::Resource::Ocf['openstack-core']],
     }
-    pacemaker::constraint::base { 'memcached-then-openstack-core-constraint':
-      constraint_type => 'order',
-      first_resource  => 'memcached-clone',
-      second_resource => 'openstack-core-clone',
-      first_action    => 'start',
-      second_action   => 'start',
-      require         => [Pacemaker::Resource::Service['memcached'],
-                          Pacemaker::Resource::Ocf['openstack-core']],
-    }
     pacemaker::constraint::base { 'galera-then-openstack-core-constraint':
       constraint_type => 'order',
       first_resource  => 'galera-master',
diff --git a/puppet/services/memcached.yaml b/puppet/services/memcached.yaml
new file mode 100644 (file)
index 0000000..1833fbf
--- /dev/null
@@ -0,0 +1,23 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Memcached service configured with Puppet
+
+parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  MysqlVirtualIPUri:
+    type: string
+    default: ''
+
+outputs:
+  role_data:
+    description: Role data for the Memcached role.
+    value:
+      config_settings:
+      step_config: |
+        include ::tripleo::profile::base::memcached
+
diff --git a/puppet/services/pacemaker/memcached.yaml b/puppet/services/pacemaker/memcached.yaml
new file mode 100644 (file)
index 0000000..306f805
--- /dev/null
@@ -0,0 +1,31 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Mecached service with Pacemaker configured with Puppet
+
+parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  MysqlVirtualIPUri:
+    type: string
+    default: ''
+
+resources:
+
+  MemcachedServiceBase:
+    type: ../memcached.yaml
+
+outputs:
+  role_data:
+    description: Role data for the Memcached pacemaker role.
+    value:
+      config_settings:
+        map_merge:
+          - get_attr: [MemcachedServiceBase, role_data, config_settings]
+          - memcached::service_manage: false
+      step_config: |
+        include ::tripleo::profile::pacemaker::memcached
+