Merge "Cinder Volume Recreation Toggle in v1 Heal"
This commit is contained in:
174
specs/2025.2/v1-heal-cinder-volume.rst
Normal file
174
specs/2025.2/v1-heal-cinder-volume.rst
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
============================================================
|
||||||
|
Option to Enable/Disable Cinder Volume Recreation in v1 Heal
|
||||||
|
============================================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/tacker/+spec/v1-heal-cinder-volume
|
||||||
|
|
||||||
|
This specification proposes adding an option to enable or disable
|
||||||
|
Cinder volume recreation when issuing a v1 Heal request.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
The current v1 Heal request always recreates the specified VNFC instance
|
||||||
|
along with its related Cinder storage resources, which is not flexible
|
||||||
|
for users who want to keep their storage data.
|
||||||
|
The v2 Heal request already provides an option to control this behavior.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
The existing ``additionalParams`` field in the v1 Heal request will be extended
|
||||||
|
to include a new parameter that allows users to choose whether to recreate
|
||||||
|
the Cinder storage resources.
|
||||||
|
|
||||||
|
To achieve this, two new parameters will be added under ``[vnf_lcm]`` in
|
||||||
|
``tacker.conf``.
|
||||||
|
If neither parameter is defined, the existing behavior will remain unchanged.
|
||||||
|
|
||||||
|
``heal_vnfc_block_storage`` sets the default behavior. If the Heal request does
|
||||||
|
not specify it, this value is used.
|
||||||
|
|
||||||
|
``heal_include_block_storage_key`` sets the parameter name that can be used in
|
||||||
|
the ``additionalParams`` field of the Heal request. This allows users to align
|
||||||
|
the request format with v2 or choose a different name if preferred.
|
||||||
|
(Setting this to "all" will match the v2 request format. [#v2_heal]_ )
|
||||||
|
|
||||||
|
By configuring these two parameters, users can flexibly adjust the behavior
|
||||||
|
to suit their operational requirements.
|
||||||
|
|
||||||
|
Example of ``tacker.conf``:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[vnf_lcm]
|
||||||
|
heal_vnfc_block_storage = false
|
||||||
|
heal_include_block_storage_key = heal_include_storage # customized name
|
||||||
|
|
||||||
|
In this case, Example of Heal request with tacker-cli and additional-param:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
openstack vnflcm heal --vnfc-instance <vnfc_id> --additional-param-file <file_path> -- <vnflcm_id>
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
{
|
||||||
|
"additionalParams":
|
||||||
|
{
|
||||||
|
"heal_include_storage": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
In this case, the storage will only be recreated if explicitly specified
|
||||||
|
in the Heal request.
|
||||||
|
This means it is suitable for environments where most users prefer to keep
|
||||||
|
their storage data during a heal operation.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
--------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Hitomi Koba <hi-koba@kddi.com>
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Consider making ``heal_include_block_storage_key`` configurable, based on
|
||||||
|
ETSI-NFV direction (under discussion).
|
||||||
|
|
||||||
|
* Update Docs (`Documentation Impact`_).
|
||||||
|
|
||||||
|
* Update OpenStack Driver (``tacker/nfvo/drivers/vim/openstack_driver.py``) to
|
||||||
|
check the ``heal_vnfc_block_storage`` and ``heal_include_block_storage_key``
|
||||||
|
config value and branch logic accordingly.
|
||||||
|
|
||||||
|
* Modify other related parts as needed.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Add unit tests.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
* Configuration Options [#conf_options]_
|
||||||
|
* ETSI NFV-SOL VNF Healing (v1) [#v1_heal]_
|
||||||
|
* NFV Orchestration API Reference (v1) [#v1_api_ref]_
|
||||||
|
* Command-Line Interface Reference (v1) [#v1_cli_ref]_
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. [#v2_heal] https://docs.openstack.org/tacker/latest/user/v2/vnf/heal/index.html#vnf-healing-procedure
|
||||||
|
.. [#conf_options] https://docs.openstack.org/tacker/latest/configuration/config.html#vnf-lcm
|
||||||
|
.. [#v1_heal] https://docs.openstack.org/tacker/latest/user/etsi_vnf_healing.html#vnf-healing-procedure
|
||||||
|
.. [#v1_api_ref] https://docs.openstack.org/api-ref/nfv-orchestration/v1/vnflcm.html#heal-a-vnf-instance
|
||||||
|
.. [#v1_cli_ref] https://docs.openstack.org/tacker/latest/cli/cli-etsi-vnflcm.html#heal-vnf
|
Reference in New Issue
Block a user