Merge "Add logging agents deployment to CI"
[apex-tripleo-heat-templates.git] / puppet / services / database / mongodb.yaml
index b6eb480..5059721 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2016-04-08
+heat_template_version: ocata
 
 description: >
   MongoDb service deployment using puppet
@@ -19,6 +19,19 @@ parameters:
     description: Mapping of service endpoint -> protocol. Typically set
                  via parameter_defaults in the resource registry.
     type: json
+  MongodbMemoryLimit:
+    default: '20G'
+    description: Limit the amount of memory mongodb uses with systemd.
+    type: string
+  MongoDbLoggingSource:
+    type: json
+    description: Fluentd logging configuration for mongodb.
+    default:
+      tag: database.mongodb
+      path: /var/log/mongodb/mongodb.log
+      format: >-
+        /(?<time>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+\+\d{4})
+        (?<message>.*)$/
 
 resources:
   MongoDbBase:
@@ -33,10 +46,14 @@ outputs:
     description: Service mongodb using composable services.
     value:
       service_name: mongodb
+      logging_groups:
+        - mongodb
+      logging_source: {get_param: MongoDbLoggingSource}
       config_settings:
         map_merge:
           - get_attr: [MongoDbBase, role_data, config_settings]
           - tripleo::profile::base::database::mongodb::mongodb_replset: {get_attr: [MongoDbBase, aux_parameters, rplset_name]}
+            tripleo::profile::base::database::mongodb::memory_limit: {get_param: MongodbMemoryLimit}
             mongodb::server::service_manage: True
             tripleo.mongodb.firewall_rules:
               '101 mongodb_config':
@@ -45,5 +62,19 @@ outputs:
                 dport: 27018
               '103 mongod':
                 dport: 27017
+            # NOTE: bind IP is found in Heat replacing the network name with the
+            # local node IP for the given network; replacement examples
+            # (eg. for internal_api):
+            # internal_api -> IP
+            # internal_api_uri -> [IP]
+            # internal_api_subnet - > IP/CIDR
+            mongodb::server::bind_ip: {get_param: [ServiceNetMap, MongodbNetwork]}
       step_config: |
         include ::tripleo::profile::base::database::mongodb
+      upgrade_tasks:
+        - name: Stop mongodb service
+          tags: step2
+          service: name=mongod state=stopped
+        - name: Start mongodb service
+          tags: step4
+          service: name=mongod state=started