Bug 2005680

Summary: Cinder __DEFAULT__ volume type is installed but *tripleo* volume type is the real default
Product: Red Hat OpenStack Reporter: Tom Barron <tbarron>
Component: openstack-tripleo-heat-templatesAssignee: Alan Bishop <abishop>
Status: CLOSED ERRATA QA Contact: Tzach Shefi <tshefi>
Severity: medium Docs Contact:
Priority: medium    
Version: 16.2 (Train)CC: abishop, gcharot, mburns, senrique, shuklapiyush470, zaitcev
Target Milestone: z2Keywords: Triaged, ZStream
Target Release: 16.2 (Train on RHEL 8.4)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-11.6.1-2.20220113214852.aa62c07.el8ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-03-23 22:29:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tom Barron 2021-09-19 13:56:04 UTC
Description of problem:

After OSP director installation of the overcloud, when a user lists volume types they see the following:

$ cinder type-list
+--------------------------------------+-------------+---------------------+-----------+
| ID                                   | Name        | Description         | Is_Public |
+--------------------------------------+-------------+---------------------+-----------+
| 06814222-f515-44eb-9f1a-20b437898c6d | tripleo     | -                   | True      |
| ab33dbb8-4fa2-427d-9060-c240c51cb1b2 | __DEFAULT__ | Default Volume Type | True      |
+--------------------------------------+-------------+---------------------+-----------+

So it is natural to think that __DEFAULT__ is the default volume type -- the volume type that is used when volumes are created without explicitly referring to a volume type.

But this is not really the case, as one can see by this command:

$ cinder type-default
+--------------------------------------+---------+-------------+-----------+
| ID                                   | Name    | Description | Is_Public |
+--------------------------------------+---------+-------------+-----------+
| 06814222-f515-44eb-9f1a-20b437898c6d | tripleo | -           | True      |
+--------------------------------------+---------+-------------+-----------+

Both of these volume types have no extra specs at the beginning of day 1, right after deployment, so the existence of the __DEFAULT__ volume type in RHOSP only serves to confuse.  (Upstream there is no tripleo volume type deployed, so the __DEFAULT__ volume type has a purpose.)

Version-Release number of selected component (if applicable): Releases based on upstream Train or later (16.0, 16.1)


How reproducible:  100%


Steps to Reproduce:
1.  Deploy OSP overcloud using OSP director.
2.  Run 'cinder type-list' or 'openstack volume type list'
3.  Compare results of #2 with 'cinder type-default' output.
    Side note: there appears to be no way to see that tripleo is the true default typed using the openstack client rather than the cinder client.

Actual results:
 A volume type with 'default' in its name and description appears but it is not the true default.

Expected results:
 No false flagged default volume type would be presented to the user.

Additional info:
  In discussion with Red Hat Cinder developers, the consensus was that TripleO should delete the __DEFAULT__ volume type when it installs the tripleo volume type.  In Red Hat deployments this will be a safe thing to do since the purpose of the __DEFAULT__ volume type is fulfilled without it.  The tripleo volume type will be in place and will not be removable as long as it is the default (Cinder will ensure this).  So in Red Hat/tripleO deployments, there will always be a default volume type even if __DEFAULT__ is removed.

Comment 2 Alan Bishop 2021-11-24 17:57:51 UTC
Code is merged upstream, and I'm working on backports to get it onto stable/train.

Comment 3 Alan Bishop 2022-01-04 19:30:58 UTC
The original upstream patch [1] cannot be backported to ussuri because it breaks upgrades (see [2]). I submitted a new patch [3] for ussuri and train that does not delete the __DEFAULT__ type, but it updates the description.

[1] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/815332
[2] https://bugs.launchpad.net/tripleo/+bug/1954431
[3] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/823411

Comment 4 Alan Bishop 2022-01-17 20:13:25 UTC
Unless someone raises a counter argument, I don't believe a doc update is necessary unless we intend to overhaul the existing OSP doc section that covers volume types [1].

[1] https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.2/html/storage_guide/assembly-configuring-the-block-storage-service_osp-storage-guide#con-group-volume-configuration-with-volume-types_configuring-cinder

That section doesn't even mention the notion of a default volume type, so I think it could be awkward to describe the affect of changing the __DEFAULT__ type's description. This is how it will appear.

$ cinder type-list
+--------------------------------------+-------------+--------------------------------------------------------+-----------+
| ID                                   | Name        | Description                                            | Is_Public |
+--------------------------------------+-------------+--------------------------------------------------------+-----------+
| 06814222-f515-44eb-9f1a-20b437898c6d | tripleo     | -                                                      | True      |
| ab33dbb8-4fa2-427d-9060-c240c51cb1b2 | __DEFAULT__ | For internal use, 'tripleo' is the default volume type | True      |
+--------------------------------------+-------------+--------------------------------------------------------+-----------+

Comment 7 Tzach Shefi 2022-02-04 20:45:51 UTC
Verified on:
openstack-tripleo-heat-templates-11.6.1-2.20220116004909.64b2e88.el8ost.noarch


(overcloud) [stack@undercloud-0 ~]$ cinder type-list
+--------------------------------------+-------------+--------------------------------------------------------+-----------+
| ID                                   | Name        | Description                                            | Is_Public |
+--------------------------------------+-------------+--------------------------------------------------------+-----------+
| 1be0ac82-46cd-4f5a-89bd-2920b1d45b76 | tripleo     | -                                                      | True      |
| d9f801c1-93dc-44a2-b9da-b53b5b7ec0be | __DEFAULT__ | For internal use, 'tripleo' is the default volume type | True      |
+--------------------------------------+-------------+--------------------------------------------------------+-----------+

Looking good to verify, description was updated.

Comment 15 errata-xmlrpc 2022-03-23 22:29:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: Red Hat OpenStack Platform 16.2 (openstack-tripleo-heat-templates) security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:0995

Comment 16 Piyush Shukla 2022-05-02 08:03:00 UTC
(In reply to Tzach Shefi from comment #7)
> Verified on:
> openstack-tripleo-heat-templates-11.6.1-2.20220116004909.64b2e88.el8ost.
> noarch
> 
> 
> (overcloud) [stack@undercloud-0 ~]$ cinder type-list
> +--------------------------------------+-------------+-----------------------
> ---------------------------------+-----------+
> | ID                                   | Name        | Description          
> | Is_Public |
> +--------------------------------------+-------------+-----------------------
> ---------------------------------+-----------+
> | 1be0ac82-46cd-4f5a-89bd-2920b1d45b76 | tripleo     | -                    
> | True      |
> | d9f801c1-93dc-44a2-b9da-b53b5b7ec0be | __DEFAULT__ | For internal use,
> 'tripleo' is the default volume type | True      |
> +--------------------------------------+-------------+-----------------------
> ---------------------------------+-----------+
> 
> Looking good to verify, description was updated.

Even after fixing this bug with openstack-tripleo-heat-templates-11.6.1-2.20220116004909.64b2e88.el8ost the issue still persists.
when verified with openstack-tripleo-heat-templates-11.6.1-2.20220116004912.el8ost.noarch.

(overcloud) [stack@manager ~]$ sudo rpm -qa | grep openstack-tripleo-heat-templates
openstack-tripleo-heat-templates-11.6.1-2.20220116004912.el8ost.noarch
(overcloud) [stack@manager ~]$ cinder type-list
+--------------------------------------+-------------+---------------------+-----------+
| ID                                   | Name        | Description         | Is_Public |
+--------------------------------------+-------------+---------------------+-----------+
| c2daf11a-c0df-4d50-87a8-558728ab53e2 | multiattach | -                   | True      |
| c8c33e02-e369-4a84-8940-875341d6df4a | tripleo     | -                   | True      |
| d6383ac2-8ffd-42fd-a905-8d96b77ab934 | __DEFAULT__ | Default Volume Type | True      |
+--------------------------------------+-------------+---------------------+-----------+