Merge "Support cinder image conversion on an NFS share"

This commit is contained in:
Zuul 2021-06-25 00:50:10 +00:00 committed by Gerrit Code Review
commit 4dbe808a91
3 changed files with 69 additions and 2 deletions

View File

@ -61,6 +61,16 @@ parameters:
be managed by pacemaker. If these criteria are not met then the cluster
name must be left blank.
type: string
CinderImageConversionNfsShare:
default: ''
description: When set, the NFS share to be used for Cinder's image conversion
directory.
type: string
CinderImageConversionNfsOptions:
default: '_netdev,bg,intr,context=system_u:object_r:container_file_t:s0'
description: NFS mount options when using an NFS share for Cinder's image
conversion directory.
type: string
EnableInternalTLS:
type: boolean
default: false
@ -123,11 +133,24 @@ conditions:
- {get_param: EnableInternalTLS}
- {get_param: EnableEtcdInternalTLS}
cinder_nfs_conversion_dir_enabled:
not:
equals:
- {get_param: CinderImageConversionNfsShare}
- ''
resources:
ContainersCommon:
type: ../containers-common.yaml
outputs:
cinder_image_conversion_nfs_dir:
description: The directory where cinder does its image conversion when the
directory is backed by an NFS share.
value: &cinder_image_conversion_nfs_dir
# Avoid SELinux conflicts by choosing a location outside /var/lib/cinder
/var/lib/cinder_image_conversion
cinder_common_host_prep_tasks:
description: Common host prep tasks for cinder-volume and cinder-backup services
value: &cinder_common_host_prep_tasks
@ -220,7 +243,26 @@ outputs:
value:
list_concat:
- *cinder_common_host_prep_tasks
-
- - name: Support using an NFS share for cinder image conversion
vars:
image_conversion_nfs_enabled: {if: [cinder_nfs_conversion_dir_enabled, true, false]}
when:
- image_conversion_nfs_enabled|bool
block:
- name: Create cinder image conversion directory
file:
path: *cinder_image_conversion_nfs_dir
state: directory
- name: Mount cinder's image conversion NFS share
vars:
image_conversion_nfs_share: {get_param: CinderImageConversionNfsShare}
image_conversion_nfs_options: {get_param: CinderImageConversionNfsOptions}
mount:
path: *cinder_image_conversion_nfs_dir
state: mounted
fstype: nfs4
src: "{{ image_conversion_nfs_share }}"
opts: "{{ image_conversion_nfs_options }}"
- name: cinder_enable_iscsi_backend fact
set_fact:
cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
@ -293,6 +335,14 @@ outputs:
enabled: yes
daemon_reload: yes
cinder_volume_config_settings:
description: Config settings for the cinder-volume container (HA or non-HA)
value:
if:
- cinder_nfs_conversion_dir_enabled
- cinder::image_conversion_dir: *cinder_image_conversion_nfs_dir
- {}
cinder_volume_volumes:
description: Volumes for the cinder-volume container (HA or non-HA)
value:
@ -319,6 +369,14 @@ outputs:
- {get_param: MultipathdEnable}
- - /etc/multipath:/etc/multipath:z
- /etc/multipath.conf:/etc/multipath.conf:ro
- if:
- cinder_nfs_conversion_dir_enabled
- - str_replace:
# Use slave propagation so if the mount is delayed on the host
# it will also be updated within the cinder-volume container.
template: DIR:DIR:slave
params:
DIR: *cinder_image_conversion_nfs_dir
cinder_volume_environment:
description: Docker environment for the cinder-volume container (HA or non-HA)

View File

@ -230,8 +230,9 @@ outputs:
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- get_attr: [CinderCommon, cinder_volume_config_settings]
- tripleo::profile::base::lvm::enable_udev: false
- tripleo::profile::base::cinder::volume::cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
tripleo::profile::base::cinder::volume::cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
tripleo::profile::base::cinder::volume::cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
tripleo::profile::base::cinder::volume::cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
tripleo::profile::base::cinder::volume::cinder_volume_cluster: {get_param: CinderVolumeCluster}

View File

@ -0,0 +1,8 @@
---
features:
- |
The following parameters add support for mounting Cinder's image
conversion directory on an external NFS share.
* CinderImageConversionNfsShare
* CinderImageConversionNfsOptions