Support NFS backend for Glance (via Pacemaker)
Adds support for NFS backend in Glance by allowing the storage directory for the 'file' backend to be a mount managed by Pacemaker. Default behavior is unchanged. Since the Pacemaker-related parameters are not exposed on top level, change storage-environment.yaml to use parameter_defaults instead of parameters. Depends on a Heat fix for environment file's parameter_defaults to work well with JSONs and comma delimited lists (see Depends-On). Change-Id: I6e7e2eaf6919b955650c0b32e1629a4067602c89 Depends-On: I85b13a79dbc97a77e20c0d5df8eaf05b3000815e
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
## A Heat environment file which can be used to set up storage
|
## A Heat environment file which can be used to set up storage
|
||||||
## backends. Defaults to Ceph used as a backend for Cinder, Glance and
|
## backends. Defaults to Ceph used as a backend for Cinder, Glance and
|
||||||
## Nova ephemeral storage.
|
## Nova ephemeral storage.
|
||||||
parameters:
|
parameter_defaults:
|
||||||
|
|
||||||
#### BACKEND SELECTION ####
|
#### BACKEND SELECTION ####
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,30 @@ parameters:
|
|||||||
type: string
|
type: string
|
||||||
constraints:
|
constraints:
|
||||||
- allowed_values: ['swift', 'file', 'rbd']
|
- allowed_values: ['swift', 'file', 'rbd']
|
||||||
|
GlanceFilePcmkDevice:
|
||||||
|
default: ''
|
||||||
|
description: >
|
||||||
|
An exported storage device that should be mounted by Pacemaker
|
||||||
|
as Glance storage. Effective when GlanceFilePcmkManage is true.
|
||||||
|
type: string
|
||||||
|
GlanceFilePcmkFstype:
|
||||||
|
default: 'nfs'
|
||||||
|
description: >
|
||||||
|
Filesystem type for Pacemaker mount used as Glance storage.
|
||||||
|
Effective when GlanceFilePcmkManage is true.
|
||||||
|
type: string
|
||||||
|
GlanceFilePcmkManage:
|
||||||
|
default: false
|
||||||
|
description: >
|
||||||
|
Whether to make Glance file backend a mount managed by Pacemaker.
|
||||||
|
Effective when GlanceBackend is 'file'.
|
||||||
|
type: boolean
|
||||||
|
GlanceFilePcmkOptions:
|
||||||
|
default: ''
|
||||||
|
description: >
|
||||||
|
Mount options for Pacemaker mount used as Glance storage.
|
||||||
|
Effective when GlanceFilePcmkManage is true.
|
||||||
|
type: string
|
||||||
HAProxySyslogAddress:
|
HAProxySyslogAddress:
|
||||||
default: /dev/log
|
default: /dev/log
|
||||||
description: Syslog address where HAproxy will send its log
|
description: Syslog address where HAproxy will send its log
|
||||||
@@ -728,6 +752,10 @@ resources:
|
|||||||
glance_port: {get_param: GlancePort}
|
glance_port: {get_param: GlancePort}
|
||||||
glance_password: {get_param: GlancePassword}
|
glance_password: {get_param: GlancePassword}
|
||||||
glance_backend: {get_param: GlanceBackend}
|
glance_backend: {get_param: GlanceBackend}
|
||||||
|
glance_file_pcmk_device: {get_param: GlanceFilePcmkDevice}
|
||||||
|
glance_file_pcmk_fstype: {get_param: GlanceFilePcmkFstype}
|
||||||
|
glance_file_pcmk_manage: {get_param: GlanceFilePcmkManage}
|
||||||
|
glance_file_pcmk_options: {get_param: GlanceFilePcmkOptions}
|
||||||
glance_notifier_strategy: {get_param: GlanceNotifierStrategy}
|
glance_notifier_strategy: {get_param: GlanceNotifierStrategy}
|
||||||
glance_log_file: {get_param: GlanceLogFile}
|
glance_log_file: {get_param: GlanceLogFile}
|
||||||
glance_dsn:
|
glance_dsn:
|
||||||
@@ -1081,6 +1109,10 @@ resources:
|
|||||||
glance::backend::swift::swift_store_key: {get_input: glance_password}
|
glance::backend::swift::swift_store_key: {get_input: glance_password}
|
||||||
glance_backend: {get_input: glance_backend}
|
glance_backend: {get_input: glance_backend}
|
||||||
glance::db::mysql::password: {get_input: glance_password}
|
glance::db::mysql::password: {get_input: glance_password}
|
||||||
|
glance_file_pcmk_device: {get_input: glance_file_pcmk_device}
|
||||||
|
glance_file_pcmk_fstype: {get_input: glance_file_pcmk_fstype}
|
||||||
|
glance_file_pcmk_manage: {get_input: glance_file_pcmk_manage}
|
||||||
|
glance_file_pcmk_options: {get_input: glance_file_pcmk_options}
|
||||||
|
|
||||||
# Heat
|
# Heat
|
||||||
heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
|
heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ glance::api::pipeline: 'keystone'
|
|||||||
glance::registry::pipeline: 'keystone'
|
glance::registry::pipeline: 'keystone'
|
||||||
glance::backend::swift::swift_store_create_container_on_put: true
|
glance::backend::swift::swift_store_create_container_on_put: true
|
||||||
glance::backend::rbd::rbd_store_user: 'openstack'
|
glance::backend::rbd::rbd_store_user: 'openstack'
|
||||||
|
glance_file_pcmk_directory: '/var/lib/glance/images'
|
||||||
|
|
||||||
# neutron
|
# neutron
|
||||||
neutron::server::sync_db: true
|
neutron::server::sync_db: true
|
||||||
|
|||||||
@@ -525,6 +525,16 @@ if hiera('step') >= 3 {
|
|||||||
$http_store = ['glance.store.http.Store']
|
$http_store = ['glance.store.http.Store']
|
||||||
$glance_store = concat($http_store, $backend_store)
|
$glance_store = concat($http_store, $backend_store)
|
||||||
|
|
||||||
|
if $glance_backend == 'file' and hiera('glance_file_pcmk_manage', false) {
|
||||||
|
pacemaker::resource::filesystem { "glance-fs":
|
||||||
|
device => hiera('glance_file_pcmk_device'),
|
||||||
|
directory => hiera('glance_file_pcmk_directory'),
|
||||||
|
fstype => hiera('glance_file_pcmk_fstype'),
|
||||||
|
fsoptions => hiera('glance_file_pcmk_options', ''),
|
||||||
|
clone_params => '',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# TODO: notifications, scrubber, etc.
|
# TODO: notifications, scrubber, etc.
|
||||||
include ::glance
|
include ::glance
|
||||||
class { 'glance::api':
|
class { 'glance::api':
|
||||||
|
|||||||
Reference in New Issue
Block a user