Merge "Put service stop at step1 and quiesce at step2."
[apex-tripleo-heat-templates.git] / puppet / services / swift-storage.yaml
index d63dc87..261aade 100644 (file)
@@ -1,9 +1,18 @@
-heat_template_version: 2016-04-08
+heat_template_version: ocata
 
 description: >
   OpenStack Swift Storage service configured with Puppet
 
 parameters:
+  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
   EndpointMap:
     default: {}
     description: Mapping of service endpoint -> protocol. Typically set
@@ -17,6 +26,13 @@ parameters:
     default: false
     description: Value of mount_check in Swift account/container/object -server.conf
     type: boolean
+  SwiftRawDisks:
+    default: {}
+    description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})'
+    type: json
+  MonitoringSubscriptionSwiftStorage:
+    default: 'overcloud-swift-storage'
+    type: string
 
   # DEPRECATED options for compatibility with overcloud.yaml
   # This should be removed and manipulation of the ControllerServices list
@@ -32,21 +48,73 @@ parameter_groups:
   parameters:
   - ControllerEnableSwiftStorage
 
+resources:
+  SwiftBase:
+    type: ./swift-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+conditions:
+  swift_mount_check:
+    or:
+    - equals:
+      - get_param: SwiftMountCheck
+      - true
+    - not:
+        equals:
+        - get_param: SwiftRawDisks
+        - {}
+
 outputs:
   role_data:
     description: Role data for the Swift Proxy role.
     value:
-      service_name: swift-storage
+      service_name: swift_storage
+      monitoring_subscription: {get_param: MonitoringSubscriptionSwiftStorage}
       config_settings:
-        # Swift
-        swift::storage::all::mount_check: {get_param: SwiftMountCheck}
-        tripleo::profile::base::swift::storage::enable_swift_storage: {get_param: ControllerEnableSwiftStorage}
-        tripleo.swift_storage.firewall_rules:
-          '123 swift storage':
-            dport:
-              - 873
-              - 6000
-              - 6001
-              - 6002
+        map_merge:
+          - get_attr: [SwiftBase, role_data, config_settings]
+          - swift::storage::all::mount_check: {if: [swift_mount_check, true, false]}
+            tripleo::profile::base::swift::storage::enable_swift_storage: {get_param: ControllerEnableSwiftStorage}
+            tripleo.swift_storage.firewall_rules:
+              '123 swift storage':
+                dport:
+                  - 873
+                  - 6000
+                  - 6001
+                  - 6002
+            swift::storage::all::incoming_chmod: 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
+            swift::storage::all::outgoing_chmod: 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
+            swift::storage::all::object_pipeline:
+              - healthcheck
+              - recon
+              - object-server
+            swift::storage::all::container_pipeline:
+              - healthcheck
+              - container-server
+            swift::storage::all::account_pipeline:
+              - healthcheck
+              - account-server
+            swift::storage::disks::args: {get_param: SwiftRawDisks}
+            swift::storage::all::storage_local_net_ip: {get_param: [ServiceNetMap, SwiftStorageNetwork]}
       step_config: |
         include ::tripleo::profile::base::swift::storage
+      upgrade_tasks:
+        - name: Stop swift storage services
+          tags: step1
+          service: name={{ item }} state=stopped
+          with_items:
+            - openstack-swift-account-auditor
+            - openstack-swift-account-reaper
+            - openstack-swift-account-replicator
+            - openstack-swift-account
+            - openstack-swift-container-auditor
+            - openstack-swift-container-replicator
+            - openstack-swift-container-updater
+            - openstack-swift-container
+            - openstack-swift-object-auditor
+            - openstack-swift-object-replicator
+            - openstack-swift-object-updater
+            - openstack-swift-object