Add doc of ETSI VNF Deployment as a VM with TOSCA

Usage guide for ETSI NFV-SOL VNF Deployment as a VM with TOSCA
is added in user docs.

Change-Id: I11a9e47d3815459bf1618b2477ea1f0840069e9d
This commit is contained in:
Hiroo Kitamura 2020-11-17 15:28:53 +09:00
parent ab96041109
commit fcefb4ebe6
2 changed files with 404 additions and 0 deletions

View File

@ -0,0 +1,403 @@
============================================
ETSI NFV-SOL VNF Deployment as VM with TOSCA
============================================
This document describes how to deploy VNF as VM with TOSCA
in Tacker using CLI commands.
Prerequisites
-------------
The following packages should be installed:
* tacker
* python-tackerclient
A default VIM should be registered according to
:doc:`../cli/cli-legacy-vim`.
The VNF Package(sample_vnf_pkg.zip) used below is prepared
by referring to :doc:`./vnf-package`.
VNF deployment procedure as VM
------------------------------
In order to deploy VNF as VM, it is necessary to execute
the following procedure.
Details of CLI commands are described in
:doc:`../cli/cli-etsi-vnfpkgm` and :doc:`../cli/cli-etsi-vnflcm`.
1. Create VNF Package Info
^^^^^^^^^^^^^^^^^^^^^^^^^^
Execute the following CLI command to create VNF Package.
.. code-block:: console
$ openstack vnf package create
Result:
.. code-block:: console
+-------------------+----------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------+----------------------------------------------------------------------------------------------------+
| ID | e712a702-741f-4093-a971-b3ad69411ac1 |
| Links | packageContent=href=/vnfpkgm/v1/vnf_packages/e712a702-741f-4093-a971-b3ad69411ac1/package_content, |
| | self=href=s/vnfpkgm/v1/vnf_packages/e712a702-741f-4093-a971-b3ad69411ac1 |
| Onboarding State | CREATED |
| Operational State | DISABLED |
| Usage State | NOT_IN_USE |
| User Defined Data | |
+-------------------+----------------------------------------------------------------------------------------------------+
After that, execute the following CLI command and confirm that
VNF Package creation was successful.
* Confirm that the 'Onboarding State' is 'CREATED'.
* Confirm that the 'Operational State' is 'DISABLED'.
* Confirm that the 'Usage State' is 'NOT_IN_USE'.
.. code-block:: console
$ openstack vnf package show VNF_PACKAGE_ID \
-c 'Onboarding State' -c 'Operational State' -c 'Usage State'
Result:
.. code-block:: console
+-------------------+------------+
| Field | Value |
+-------------------+------------+
| Onboarding State | CREATED |
| Operational State | DISABLED |
| Usage State | NOT_IN_USE |
+-------------------+------------+
2. Upload VNF Package
^^^^^^^^^^^^^^^^^^^^^
Execute the following CLI command to upload VNF Package.
.. code-block:: console
$ openstack vnf package upload --path sample_csar.zip VNF_PACKAGE_ID
Result:
.. code-block:: console
Upload request for VNF package e712a702-741f-4093-a971-b3ad69411ac1 has been accepted.
After that, execute the following CLI command and confirm that
VNF Package uploading was successful.
* Confirm that the 'Onboarding State' is 'ONBOARDED'.
* Confirm that the 'Operational State' is 'ENABLED'.
* Confirm that the 'Usage State' is 'NOT_IN_USE'.
* Take a note of the 'VNFD ID' because you will need it in the next
'Create VNF Identifier'.
.. note::
The state of 'Onboarding State' changes in the order of
'UPLOADING', 'PROCESSING', 'ONBOARDED'.
.. code-block:: console
$ openstack vnf package show VNF_PACKAGE_ID \
-c 'Onboarding State' -c 'Operational State' -c 'Usage State' -c 'VNFD ID'
Result:
.. code-block:: console
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| Onboarding State | ONBOARDED |
| Operational State | ENABLED |
| Usage State | NOT_IN_USE |
| VNFD ID | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |
+-------------------+--------------------------------------+
3. Create VNF Identifier
^^^^^^^^^^^^^^^^^^^^^^^^
Execute the following CLI command to create a VNF instance.
.. code-block:: console
$ openstack vnflcm create VNFD_ID
Result:
.. code-block:: console
+--------------------------+----------------------------------------------------------------------------------------------+
| Field | Value |
+--------------------------+----------------------------------------------------------------------------------------------+
| ID | 725f625e-f6b7-4bcd-b1b7-7184039fde45 |
| Instantiation State | NOT_INSTANTIATED |
| Links | instantiate=href=/vnflcm/v1/vnf_instances/725f625e-f6b7-4bcd-b1b7-7184039fde45/instantiate, |
| | self=href=/vnflcm/v1/vnf_instances/725f625e-f6b7-4bcd-b1b7-7184039fde45 |
| VNF Instance Description | None |
| VNF Instance Name | None |
| VNF Product Name | Sample VNF |
| VNF Provider | Company |
| VNF Software Version | 1.0 |
| VNFD ID | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |
| VNFD Version | 1.0 |
+--------------------------+----------------------------------------------------------------------------------------------+
After that, execute the following CLI command and confirm that
VNF instance creation was successful.
* Confirm that the 'Usage State' of the VNF Package is 'IN_USE'.
* Confirm that the 'Instantiation State' of the VNF instance
is 'NOT_INSTANTIATED'.
.. code-block:: console
$ openstack vnf package show VNF_PACKAGE_ID \
-c 'Usage State'
Result:
.. code-block:: console
+-------------+--------+
| Field | Value |
+-------------+--------+
| Usage State | IN_USE |
+-------------+--------+
.. code-block:: console
$ openstack vnflcm show VNF_INSTANCE_ID \
-c 'Instantiation State'
Result:
.. code-block:: console
+---------------------+------------------+
| Field | Value |
+---------------------+------------------+
| Instantiation State | NOT_INSTANTIATED |
+---------------------+------------------+
4. Instantiate VNF
^^^^^^^^^^^^^^^^^^
Create a sample_param_file.json file with the following format.
This is the file that defines the parameters for an instantiate request.
These parameters will be set in the body of the instantiate request.
Required parameter:
* flavourID
.. note::
Details of flavourID is described in :doc:`./vnfd-sol001`.
Optional parameters:
* instantiationLevelId
* extVirtualLinks
* extManagedVirtualLinks
* vimConnectionInfo
.. note::
You can skip `vimConnectionInfo` only when you have
the default VIM described in :doc:`../cli/cli-legacy-vim`.
Param file with only required parameters:
.. code-block:: console
{
"flavourId":"simple"
}
Param file with optional parameters:
.. code-block:: console
{
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"extVirtualLinks": [
{
"id": "net0",
"resourceId": "4bf3e646-7a24-4f04-a985-d8f4bb1203de", #Set the uuid of the network to use
"extCps": [
{
"cpdId": "CP1",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
]
}
]
}
],
"vimConnectionInfo": [
{
"id": "e24f9796-a8e9-4cb0-85ce-5920dcddafa1", #Set a random uuid.
"vimId": "8a0fd79d-e224-4c27-85f5-ee79c6e0d870", #Set the uuid of the VIM to use
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.v_2"
}
]
}
Execute the following CLI command to instantiate VNF instance.
.. code-block:: console
$ openstack vnflcm instantiate VNF_INSTANCE_ID \
./sample_param_file.json
Result:
.. code-block:: console
Instantiate request for VNF Instance 725f625e-f6b7-4bcd-b1b7-7184039fde45 has been accepted.
After that, execute the following CLI command and confirm that
VNF instance instantiation was successful.
* Confirm that the 'Instantiation State' is 'INSTANTIATED'.
.. code-block:: console
$ openstack vnflcm show VNF_INSTANCE_ID \
-c 'Instantiation State'
Result:
.. code-block:: console
+---------------------+--------------+
| Field | Value |
+---------------------+--------------+
| Instantiation State | INSTANTIATED |
+---------------------+--------------+
5. Terminate VNF
^^^^^^^^^^^^^^^^
Execute the following CLI command to terminate the VNF instance.
.. code-block:: console
$ openstack vnflcm terminate VNF_INSTANCE_ID
Result:
.. code-block:: console
Terminate request for VNF Instance '725f625e-f6b7-4bcd-b1b7-7184039fde45' has been accepted.
After that, execute the following CLI command and confirm that
VNF instance termination was successful.
* Confirm that the 'Instantiation State' is 'NOT_INSTANTIATED'.
.. code-block:: console
$ openstack vnflcm show VNF_INSTANCE_ID \
-c 'Instantiation State'
Result:
.. code-block:: console
+---------------------+------------------+
| Field | Value |
+---------------------+------------------+
| Instantiation State | NOT_INSTANTIATED |
+---------------------+------------------+
6. Delete VNF Identifier
^^^^^^^^^^^^^^^^^^^^^^^^
Execute the following CLI command to delete the VNF instance.
.. code-block:: console
$ openstack vnflcm delete VNF_INSTANCE_ID
Result:
.. code-block:: console
Vnf instance '725f625e-f6b7-4bcd-b1b7-7184039fde45' deleted successfully
After that, execute the following CLI command and confirm that
VNF instance deletion was successful.
* Confirm that the 'Usage State' of VNF Package is 'NOT_IN_USE'.
* Confirm that the VNF instance is not found.
.. code-block:: console
$ openstack vnf package show VNF_PACKAGE_ID \
-c 'Usage State'
Result:
.. code-block:: console
+-------------+------------+
| Field | Value |
+-------------+------------+
| Usage State | NOT_IN_USE |
+-------------+------------+
.. code-block:: console
$ openstack vnflcm show VNF_INSTANCE_ID
Result:
.. code-block:: console
Can not find requested vnf instance: 725f625e-f6b7-4bcd-b1b7-7184039fde45

View File

@ -50,6 +50,7 @@ Use cases
alarm_monitoring_usage_guide.rst alarm_monitoring_usage_guide.rst
dynamic_vnffg_usage_guide.rst dynamic_vnffg_usage_guide.rst
enhanced_placement_awareness_usage_guide.rst enhanced_placement_awareness_usage_guide.rst
etsi_vnf_deployment_as_vm_with_tosca.rst
etsi_containerized_vnf_usage_guide.rst etsi_containerized_vnf_usage_guide.rst
containerized_vnf_usage_guide.rst containerized_vnf_usage_guide.rst
../reference/mistral_workflows_usage_guide.rst ../reference/mistral_workflows_usage_guide.rst