diff --git a/deployment/cinder/cinder-api-container-puppet.yaml b/deployment/cinder/cinder-api-container-puppet.yaml index ee6f1c254e..242b5c3e68 100644 --- a/deployment/cinder/cinder-api-container-puppet.yaml +++ b/deployment/cinder/cinder-api-container-puppet.yaml @@ -54,6 +54,11 @@ parameters: default: tripleo description: The name of Cinder's default volume type. type: string + constraints: + - allowed_pattern: "[a-zA-Z0-9]+" + description: > + The default volume type must be at least 1 character and contain only + letters and numbers. CinderEnableDBPurge: default: true description: | @@ -439,7 +444,7 @@ outputs: state: absent when: - step|int == 4 - - name: Manage Cinder Volume Type + - name: Manage Cinder's default volume type become: true vars: default_volume_type: {get_param: CinderDefaultVolumeType} @@ -452,6 +457,16 @@ outputs: if ! openstack volume type show "{{ default_volume_type }}"; then openstack volume type create --public "{{ default_volume_type }}" fi + eval $(openstack volume type show __DEFAULT__ -f shell -c id -c description) + if [ -n "$id" ]; then + vols=$(openstack volume list -f value -c ID) + tripleo_descr="For internal use, '{{ default_volume_type }}' is the default volume type" + if [ -z "$vols" ]; then + openstack volume type delete $id + elif [ "$description" != "$tripleo_descr" ]; then + openstack volume type set $id --description "$tripleo_descr" + fi + fi args: executable: /bin/bash changed_when: false diff --git a/releasenotes/notes/cinder-clarify-default-volume-type-c77e7a7ddafdf172.yaml b/releasenotes/notes/cinder-clarify-default-volume-type-c77e7a7ddafdf172.yaml new file mode 100644 index 0000000000..1d5c7af13b --- /dev/null +++ b/releasenotes/notes/cinder-clarify-default-volume-type-c77e7a7ddafdf172.yaml @@ -0,0 +1,12 @@ +--- +other: + - | + Steps are taken to minimize chances of confusion between the default + block storage volume type established by the CinderDefaultVolumeType + parameter, and cinder's own __DEFAULT__ volume type. + + In a new deployment where no volumes exist, cinder's __DEFAULT__ type is + deleted because it is redundant. In an upgrade scenerio, if volumes exist + then the __DEFAULT__ type's description is updated to indicate the actual + default volume type is the one established by the CinderDefaultVolumeType + parameter.