Merge "Provide list of memcached servers to Nova"
authorJenkins <jenkins@review.openstack.org>
Thu, 23 Jul 2015 09:53:23 +0000 (09:53 +0000)
committerGerrit Code Review <review@openstack.org>
Thu, 23 Jul 2015 09:53:23 +0000 (09:53 +0000)
cinder-storage.yaml
overcloud-without-mergepy.yaml
puppet/cinder-storage-puppet.yaml
puppet/compute-puppet.yaml
puppet/manifests/overcloud_controller_pacemaker.pp

index be088d6..f65d928 100644 (file)
@@ -62,6 +62,11 @@ parameters:
           }
         }
     type: json
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      Role specific additional configuration to inject into the cluster.
+    type: json
   Flavor:
     description: Flavor for block storage nodes to request when deploying.
     type: string
index 5e1470f..ed0a097 100644 (file)
@@ -562,6 +562,12 @@ parameters:
     type: string
     constraints:
       - custom_constraint: nova.flavor
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      BlockStorage specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
 
 # Object storage specific parameters
   ObjectStorageCount:
@@ -881,6 +887,8 @@ resources:
                 '%stackname%': {get_param: 'OS::stack_name'}
           ServiceNetMap: {get_param: ServiceNetMap}
           MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
+          ExtraConfig: {get_param: ExtraConfig}
+          BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
 
   ObjectStorage:
     type: OS::Heat::ResourceGroup
index 77d0cee..091d1f1 100644 (file)
@@ -31,40 +31,13 @@ parameters:
   ExtraConfig:
     default: {}
     description: |
-      Additional configuration to inject into the cluster. The JSON should have
-      the following structure:
-        {"FILEKEY":
-          {"config":
-            [{"section": "SECTIONNAME",
-              "values":
-                [{"option": "OPTIONNAME",
-                  "value": "VALUENAME"
-                 }
-                ]
-             }
-            ]
-          }
-        }
-      For instance:
-        {"nova":
-          {"config":
-            [{"section": "default",
-              "values":
-                [{"option": "force_config_drive",
-                  "value": "always"
-                 }
-                ]
-             },
-             {"section": "cells",
-              "values":
-                [{"option": "driver",
-                  "value": "nova.cells.rpc_driver.CellsRPCDriver"
-                 }
-                ]
-             }
-            ]
-          }
-        }
+      Additional hiera configuration to inject into the cluster. Note
+      that BlockStorageExtraConfig takes precedence over ExtraConfig.
+    type: json
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      Role specific additional hiera configuration to inject into the cluster.
     type: json
   Flavor:
     description: Flavor for block storage nodes to request when deploying.
@@ -235,6 +208,8 @@ resources:
         hiera:
           hierarchy:
             - heat_config_%{::deploy_config_name}
+            - volume_extraconfig
+            - extraconfig
             - volume
             - all_nodes # provided by allNodesConfig
             - '"%{::osfamily}"'
@@ -242,6 +217,10 @@ resources:
           datafiles:
             common:
               raw_data: {get_file: hieradata/common.yaml}
+            volume_extraconfig:
+              mapped_data: {get_param: BlockStorageExtraConfig}
+            extraconfig:
+              mapped_data: {get_param: ExtraConfig}
             volume:
               raw_data: {get_file: hieradata/volume.yaml}
               mapped_data:
index 45c845a..c0d0e98 100644 (file)
@@ -32,40 +32,8 @@ parameters:
   ExtraConfig:
     default: {}
     description: |
-      Additional configuration to inject into the cluster. The JSON should have
-      the following structure:
-        {"FILEKEY":
-          {"config":
-            [{"section": "SECTIONNAME",
-              "values":
-                [{"option": "OPTIONNAME",
-                  "value": "VALUENAME"
-                 }
-                ]
-             }
-            ]
-          }
-        }
-      For instance:
-        {"nova":
-          {"config":
-            [{"section": "default",
-              "values":
-                [{"option": "force_config_drive",
-                  "value": "always"
-                 }
-                ]
-             },
-             {"section": "cells",
-              "values":
-                [{"option": "driver",
-                  "value": "nova.cells.rpc_driver.CellsRPCDriver"
-                 }
-                ]
-             }
-            ]
-          }
-        }
+      Additional hiera configuration to inject into the cluster. Note
+      that NovaComputeExtraConfig takes precedence over ExtraConfig.
     type: json
   Flavor:
     description: Flavor for the nova compute node
@@ -340,6 +308,8 @@ resources:
         hiera:
           hierarchy:
             - heat_config_%{::deploy_config_name}
+            - compute_extraconfig
+            - extraconfig
             - compute
             - ceph_cluster # provided by CephClusterConfig
             - ceph
@@ -347,6 +317,10 @@ resources:
             - '"%{::osfamily}"'
             - common
           datafiles:
+            compute_extraconfig:
+              mapped_data: {get_param: NovaComputeExtraConfig}
+            extraconfig:
+              mapped_data: {get_param: ExtraConfig}
             common:
               raw_data: {get_file: hieradata/common.yaml}
             ceph:
index 0cdd31d..8f6d4c6 100644 (file)
@@ -74,6 +74,13 @@ if hiera('step') >= 1 {
     Class['tripleo::fencing'] -> Class['pacemaker::stonith']
   }
 
+  # FIXME(gfidente): sets 90secs as default start timeout op
+  # param; until we can use pcmk global defaults we'll still
+  # need to add it to every resource which redefines op params
+  Pacemaker::Resource::Service {
+    op_params => 'start timeout=90s',
+  }
+
   # Only configure RabbitMQ in this step, don't start it yet to
   # avoid races where non-master nodes attempt to start without
   # config (eg. binding on 0.0.0.0)
@@ -1089,24 +1096,24 @@ if hiera('step') >= 4 {
     # Nova
     pacemaker::resource::service { $::nova::params::api_service_name :
       clone_params    => "interleave=true",
-      op_params       => "monitor start-delay=10s",
+      op_params       => "start timeout=90s monitor start-delay=10s",
     }
     pacemaker::resource::service { $::nova::params::conductor_service_name :
       clone_params    => "interleave=true",
-      op_params       => "monitor start-delay=10s",
+      op_params       => "start timeout=90s monitor start-delay=10s",
     }
     pacemaker::resource::service { $::nova::params::consoleauth_service_name :
       clone_params    => "interleave=true",
-      op_params       => "monitor start-delay=10s",
+      op_params       => "start timeout=90s monitor start-delay=10s",
       require         => Pacemaker::Resource::Service[$::keystone::params::service_name],
     }
     pacemaker::resource::service { $::nova::params::vncproxy_service_name :
       clone_params    => "interleave=true",
-      op_params       => "monitor start-delay=10s",
+      op_params       => "start timeout=90s monitor start-delay=10s",
     }
     pacemaker::resource::service { $::nova::params::scheduler_service_name :
       clone_params    => "interleave=true",
-      op_params       => "monitor start-delay=10s",
+      op_params       => "start timeout=90s monitor start-delay=10s",
     }
 
     pacemaker::constraint::base { 'keystone-then-nova-consoleauth-constraint':