Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
Merge "Support cinder image conversion on an NFS share" into stable/v…
Browse files Browse the repository at this point in the history
…ictoria
  • Loading branch information
Zuul authored and openstack-gerrit committed Jul 16, 2021
2 parents 63c1952 + 0b5b09c commit 72c85d0
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 2 deletions.
61 changes: 60 additions & 1 deletion deployment/cinder/cinder-common-container-puppet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,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
Expand Down Expand Up @@ -124,12 +134,25 @@ conditions:
- equals: [{get_param: EnableInternalTLS}, true]
- equals: [{get_param: EnableEtcdInternalTLS}, true]

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
Expand Down Expand Up @@ -221,7 +244,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: {if: [cinder_iscsi_backend_enabled, true, false]}
Expand Down Expand Up @@ -294,6 +336,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:
Expand Down Expand Up @@ -321,6 +371,15 @@ outputs:
- - /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)
Expand Down
3 changes: 2 additions & 1 deletion deployment/cinder/cinder-volume-container-puppet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,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}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
features:
- |
The following parameters add support for mounting Cinder's image
conversion directory on an external NFS share.
* CinderImageConversionNfsShare
* CinderImageConversionNfsOptions

0 comments on commit 72c85d0

Please sign in to comment.