Enable Glance multiple locations when using Ceph
authorGiulio Fidente <gfidente@redhat.com>
Tue, 11 Oct 2016 10:51:44 +0000 (12:51 +0200)
committerGiulio Fidente <gfidente@redhat.com>
Thu, 13 Oct 2016 20:47:07 +0000 (22:47 +0200)
Currently Glance v2 doesn't allow to specify custom locations for
images by default, it returns 403. To enable this, the
'show_multiple_locations' param must be set to True.

Also see similar change introduced in devstack [1].

1. Id0f1c398b8b48f2ffc2488b29bc7cbd279069337

Change-Id: Ia7e0558e4f318640981abb44d188e3479b5eae69
Closes-Bug: 1632285

puppet/services/ceph-base.yaml
puppet/services/ceph-external.yaml
puppet/services/ceph-mon.yaml

index adb17b2..71d81dc 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2016-04-08
+heat_template_version: 2016-10-14
 
 description: >
   Ceph base service. Shared by all Ceph services.
@@ -29,9 +29,20 @@ parameters:
   GlanceRbdPoolName:
     default: images
     type: string
+  GlanceBackend:
+    default: swift
+    description: The short name of the Glance backend to use. Should be one
+      of swift, rbd, or file
+    type: string
+    constraints:
+    - allowed_values: ['swift', 'file', 'rbd']
   GnocchiRbdPoolName:
     default: metrics
     type: string
+  NovaEnableRbdBackend:
+    default: false
+    description: Whether to enable or not the Rbd backend for Nova
+    type: boolean
   NovaRbdPoolName:
     default: vms
     type: string
@@ -63,6 +74,16 @@ parameter_groups:
   parameters:
   - ControllerEnableCephStorage
 
+conditions:
+  glance_multiple_locations:
+    and:
+    - equals:
+      - get_param: GlanceBackend
+      - rbd
+    - equals:
+      - get_param: NovaEnableRbdBackend
+      - false
+
 outputs:
   role_data:
     description: Role data for the Ceph base service.
@@ -128,3 +149,6 @@ outputs:
               CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
               GLANCE_POOL: {get_param: GlanceRbdPoolName}
               GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
+      service_config_settings:
+        glance_api:
+          glance::api::show_multiple_locations: {if: [glance_multiple_locations, true, false]}
index 52c4824..7d75074 100644 (file)
@@ -78,5 +78,7 @@ outputs:
               CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
               GLANCE_POOL: {get_param: GlanceRbdPoolName}
               GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
+      service_config_settings:
+        get_attr: [CephBase, role_data, service_config_settings]
       step_config: |
         include ::tripleo::profile::base::ceph::client
index 552086a..3471f16 100644 (file)
@@ -101,5 +101,7 @@ outputs:
               '110 ceph_mon':
                 dport:
                   - 6789
+      service_config_settings:
+        get_attr: [CephBase, role_data, service_config_settings]
       step_config: |
         include ::tripleo::profile::base::ceph::mon