Add cinder-backup service as role
authorErno Kuvaja <jokke@usr.fi>
Tue, 12 Apr 2016 12:19:34 +0000 (15:19 +0300)
committerGiulio Fidente <gfidente@redhat.com>
Wed, 10 Aug 2016 19:02:08 +0000 (19:02 +0000)
Tempest tests for cinder contain backup tests that fail
unless cinder-backup service is started. This patch facilitates
the service start upon the overcloud deployment.

Original patch converted to composable role.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Depends-On: Ib1dfe52b83ab01819fc669312967950e75d8ddf1
Change-Id: I9ca97b3f1c26aac6d81b3525377e1f5fb962313f

environments/puppet-ceph-devel.yaml
environments/puppet-ceph-external.yaml
environments/puppet-pacemaker.yaml
environments/storage-environment.yaml
overcloud-resource-registry-puppet.yaml
overcloud.yaml
puppet/services/ceph-mon.yaml
puppet/services/cinder-backup.yaml [new file with mode: 0644]
puppet/services/pacemaker/cinder-backup.yaml [new file with mode: 0644]

index a9e459d..9c8abbb 100644 (file)
@@ -16,6 +16,7 @@ parameter_defaults:
   CephClientKey: 'AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=='
   NovaEnableRbdBackend: true
   CinderEnableRbdBackend: true
+  CinderBackupBackend: ceph
   GlanceBackend: rbd
   GnocchiBackend: rbd
   CinderEnableIscsiBackend: false
index d5e0b1b..19cca65 100644 (file)
@@ -12,6 +12,7 @@ parameter_defaults:
   # the following parameters enable Ceph backends for Cinder, Glance, Gnocchi and Nova
   NovaEnableRbdBackend: true
   CinderEnableRbdBackend: true
+  CinderBackupBackend: ceph
   GlanceBackend: rbd
   GnocchiBackend: rbd
   # If the Ceph pools which host VMs, Volumes and Images do not match these
index 74b9110..54f37a4 100644 (file)
@@ -10,6 +10,7 @@ resource_registry:
   # NOTE: For now we will need to specify overrides to all services
   # which use pacemaker. In the future (with upcoming HA light work) this
   # list will hopefully be much smaller however.
+  OS::TripleO::Services::CinderBackup: ../puppet/services/pacemaker/cinder-backup.yaml
   OS::TripleO::Services::CinderVolume: ../puppet/services/pacemaker/cinder-volume.yaml
   OS::TripleO::Services::RabbitMQ: ../puppet/services/pacemaker/rabbitmq.yaml
   OS::TripleO::Services::HAproxy: ../puppet/services/pacemaker/haproxy.yaml
index 0128cab..8cf3462 100644 (file)
@@ -14,6 +14,8 @@ parameter_defaults:
   CinderEnableIscsiBackend: false
   ## Whether to enable rbd (Ceph) backend for Cinder.
   CinderEnableRbdBackend: true
+  ## Cinder Backup backend can be either 'ceph' or 'swift'.
+  CinderBackupBackend: ceph
   ## Whether to enable NFS backend for Cinder.
   # CinderEnableNfsBackend: false
   ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage.
index f6d76d9..e3d5663 100644 (file)
@@ -131,6 +131,7 @@ resource_registry:
   OS::TripleO::Services::CephClient: OS::Heat::None
   OS::TripleO::Services::CephExternal: OS::Heat::None
   OS::TripleO::Services::CinderApi: puppet/services/cinder-api.yaml
+  OS::TripleO::Services::CinderBackup: puppet/services/cinder-backup.yaml
   OS::TripleO::Services::CinderScheduler: puppet/services/cinder-scheduler.yaml
   OS::TripleO::Services::CinderVolume: puppet/services/cinder-volume.yaml
   OS::TripleO::Services::Core: OS::Heat::None
index c653e03..805820e 100644 (file)
@@ -224,6 +224,7 @@ parameters:
       - OS::TripleO::Services::CephMon
       - OS::TripleO::Services::CephExternal
       - OS::TripleO::Services::CinderApi
+      - OS::TripleO::Services::CinderBackup
       - OS::TripleO::Services::CinderScheduler
       - OS::TripleO::Services::CinderVolume
       - OS::TripleO::Services::Core
index 074d941..28c3e5d 100644 (file)
@@ -38,7 +38,7 @@ parameters:
       {
         "volumes": {
           "size": 5,
-          "pg_num: 128,
+          "pg_num": 128,
           "pgp_num": 128
          }
       }
diff --git a/puppet/services/cinder-backup.yaml b/puppet/services/cinder-backup.yaml
new file mode 100644 (file)
index 0000000..25e82c8
--- /dev/null
@@ -0,0 +1,47 @@
+heat_template_version: 2016-04-08
+
+description: >
+  OpenStack Cinder Backup service configured with Puppet
+
+parameters:
+  CinderBackupBackend:
+    default: swift
+    description: The short name of the Cinder Backup backend to use.
+    type: string
+    constraints:
+    - allowed_values: ['swift', 'ceph']
+  CinderBackupRbdPoolName:
+    default: backups
+    type: string
+  CephClientUserName:
+    default: openstack
+    type: string
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+
+resources:
+
+  CinderBase:
+    type: ./cinder-base.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role data for the Cinder Backup role.
+    value:
+      service_name: cinder_backup
+      config_settings:
+        map_merge:
+          - get_attr: [CinderBase, role_data, config_settings]
+          - cinder::backup::ceph::backup_ceph_user: {get_param: CephClientUserName}
+            cinder::backup::ceph::backup_ceph_pool: {get_param: CinderBackupRbdPoolName}
+            cinder::backup::swift::backup_swift_container: volumebackups
+      step_config:
+        str_replace:
+          template: "include ::tripleo::profile::base::cinder::backup::DRIVER"
+          params:
+            DRIVER: {get_param: CinderBackupBackend}
diff --git a/puppet/services/pacemaker/cinder-backup.yaml b/puppet/services/pacemaker/cinder-backup.yaml
new file mode 100644 (file)
index 0000000..706717e
--- /dev/null
@@ -0,0 +1,49 @@
+heat_template_version: 2016-04-08
+
+description: >
+  OpenStack Cinder Backup service with Pacemaker configured with Puppet
+
+parameters:
+  CinderBackupBackend:
+    default: swift
+    description: The short name of the Cinder Backup backend to use.
+    type: string
+    constraints:
+    - allowed_values: ['swift', 'ceph']
+  CinderBackupRbdPoolName:
+    default: backups
+    type: string
+  CephClientUserName:
+    default: openstack
+    type: string
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+
+resources:
+
+  CinderBackupBase:
+    type: ../cinder-backup.yaml
+    properties:
+      EndpointMap: {get_param: EndpointMap}
+      CinderBackupBackend: {get_param: CinderBackupBackend}
+      CinderBackupRbdPoolName: {get_param: CinderBackupRbdPoolName}
+      CephClientUserName: {get_param: CephClientUserName}
+
+outputs:
+  role_data:
+    description: Role data for the Cinder Backup role.
+    value:
+      service_name: cinder_backup
+      config_settings:
+        map_merge:
+          - get_attr: [CinderBackupBase, role_data, config_settings]
+          - cinder::backup::manage_service: false
+            cinder::backup::enabled: false
+      step_config:
+        list_join:
+          - "\n"
+          - - get_attr: [CinderBackupBase, role_data, step_config]
+            - "include ::tripleo::profile::pacemaker::cinder::backup"