Merge "Add CLI docs for ETSI-based and Legacy Tacker"
This commit is contained in:
commit
100130beb0
|
@ -0,0 +1,282 @@
|
|||
========================
|
||||
VNF Lifecycle Management
|
||||
========================
|
||||
|
||||
This document describes how to manage VNF Lifecycle with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`cli-legacy-vim`.
|
||||
|
||||
CLI Reference for VNF Lifecycle Management
|
||||
------------------------------------------
|
||||
|
||||
.. TODO(yoshito-ito): add heal CLI reference.
|
||||
|
||||
.. TODO(yoshito-ito): add scale CLI reference.
|
||||
|
||||
1. Create VNF Identifier
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The `<VNFD_ID>` should be replaced with the VNFD ID in VNF Package. In the
|
||||
following sample, `b1bb0ce7-ebca-4fa7-95ed-4840d70a1177` is used.
|
||||
|
||||
.. 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 |
|
||||
+--------------------------+----------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm create --help
|
||||
usage: openstack vnflcm create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--name <vnf-instance-name>]
|
||||
[--description <vnf-instance-description>]
|
||||
[--I <param-file>]
|
||||
<vnfd-id>
|
||||
|
||||
Create a new VNF Instance
|
||||
|
||||
positional arguments:
|
||||
<vnfd-id> Identifier that identifies the VNFD which defines the
|
||||
VNF instance to be created.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--name <vnf-instance-name>
|
||||
Name of the VNF instance to be created.
|
||||
--description <vnf-instance-description>
|
||||
Description of the VNF instance to be created.
|
||||
--I <param-file> Instantiate VNF subsequently after it's creation.
|
||||
Specify instantiate request parameters in a json file.
|
||||
|
||||
|
||||
2. Instantiate VNF
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm instantiate <ID: 725f625e-f6b7-4bcd-b1b7-7184039fde45> \
|
||||
./sample_param_file.json
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Instantiate request for VNF Instance 725f625e-f6b7-4bcd-b1b7-7184039fde45 has been accepted.
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm instantiate --help
|
||||
usage: openstack vnflcm instantiate [-h] <vnf-instance> <param-file>
|
||||
|
||||
Instantiate a VNF Instance
|
||||
|
||||
positional arguments:
|
||||
<vnf-instance> VNF instance ID to instantiate
|
||||
<param-file> Specify instantiate request parameters in a json file.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
4. List VNF
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+
|
||||
| ID | VNF Instance Name | Instantiation State | VNF Provider | VNF Software Version | VNF Product Name | VNFD ID |
|
||||
+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+
|
||||
| 725f625e-f6b7-4bcd-b1b7-7184039fde45 | None | INSTANTIATED | Company | 1.0 | Sample VNF | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |
|
||||
+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm list --help
|
||||
usage: openstack vnflcm list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
|
||||
List VNF Instance
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
5. Show VNF
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm show <ID: 725f625e-f6b7-4bcd-b1b7-7184039fde45>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| ID | 725f625e-f6b7-4bcd-b1b7-7184039fde45 |
|
||||
| Instantiated Vnf Info | , extCpInfo='[]', flavourId='simple', vnfState='STARTED', vnfVirtualLinkResourceInfo='[{'id': '0163cea3-af88-4ef8-ae43-ef3e5e7e827d', |
|
||||
| | 'vnfVirtualLinkDescId': 'internalVL1', 'networkResource': {'resourceId': '073c74b9-670d-4764-a933-6fe4f2f991c1', 'vimLevelResourceType': |
|
||||
| | 'OS::Neutron::Net'}, 'vnfLinkPorts': [{'id': '3b667826-336c-4919-889e-e6c63d959ee6', 'resourceHandle': {'resourceId': |
|
||||
| | '5d3255b5-e9fb-449f-9c5f-5242049ce2fa', 'vimLevelResourceType': 'OS::Neutron::Port'}, 'cpInstanceId': '3091f046-de63-44c8-ad23-f86128409b27'}]}]', |
|
||||
| | vnfcResourceInfo='[{'id': '2a66f545-c90d-49e7-8f17-fb4e57b19c92', 'vduId': 'VDU1', 'computeResource': {'resourceId': |
|
||||
| | '6afc547d-0e19-46fc-b171-a3d9a0a80513', 'vimLevelResourceType': 'OS::Nova::Server'}, 'storageResourceIds': [], 'vnfcCpInfo': [{'id': |
|
||||
| | '3091f046-de63-44c8-ad23-f86128409b27', 'cpdId': 'CP1', 'vnfExtCpId': None, 'vnfLinkPortId': '3b667826-336c-4919-889e-e6c63d959ee6'}]}]' |
|
||||
| Instantiation State | INSTANTIATED |
|
||||
| Links | heal=href=/vnflcm/v1/vnf_instances/725f625e-f6b7-4bcd-b1b7-7184039fde45/heal, self=href=/vnflcm/v1/vnf_instances/725f625e-f6b7-4bcd-b1b7-7184039fde45, |
|
||||
| | terminate=href=/vnflcm/v1/vnf_instances/725f625e-f6b7-4bcd-b1b7-7184039fde45/terminate |
|
||||
| VIM Connection Info | [] |
|
||||
| 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 |
|
||||
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm show --help
|
||||
usage: openstack vnflcm show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<vnf-instance>
|
||||
|
||||
Display VNF instance details
|
||||
|
||||
positional arguments:
|
||||
<vnf-instance> VNF instance ID to display
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
6. Terminate VNF
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm terminate <ID: 725f625e-f6b7-4bcd-b1b7-7184039fde45>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Terminate request for VNF Instance '725f625e-f6b7-4bcd-b1b7-7184039fde45' has been accepted.
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm terminate --help
|
||||
usage: openstack vnflcm terminate [-h] [--termination-type <termination-type>]
|
||||
[--graceful-termination-timeout <graceful-termination-timeout>]
|
||||
[--D]
|
||||
<vnf-instance>
|
||||
|
||||
Terminate a VNF instance
|
||||
|
||||
positional arguments:
|
||||
<vnf-instance> VNF instance ID to terminate
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--termination-type <termination-type>
|
||||
Termination type can be 'GRACEFUL' or 'FORCEFUL'.
|
||||
Default is 'GRACEFUL'
|
||||
--graceful-termination-timeout <graceful-termination-timeout>
|
||||
This attribute is only applicable in case of graceful
|
||||
termination. It defines the time to wait for the VNF
|
||||
to be taken out of service before shutting down the
|
||||
VNF and releasing the resources. The unit is seconds.
|
||||
--D Delete VNF Instance subsequently after it's
|
||||
termination
|
||||
|
||||
|
||||
7. Delete VNF Identifier
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm delete <ID: 725f625e-f6b7-4bcd-b1b7-7184039fde45>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Vnf instance '725f625e-f6b7-4bcd-b1b7-7184039fde45' deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm delete --help
|
||||
usage: openstack vnflcm delete [-h] <vnf-instance> [<vnf-instance> ...]
|
||||
|
||||
Delete VNF Instance(s)
|
||||
|
||||
positional arguments:
|
||||
<vnf-instance> VNF instance ID(s) to delete
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,322 @@
|
|||
======================
|
||||
VNF Package Management
|
||||
======================
|
||||
|
||||
This document describes how to manage VNF Package with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
CLI Reference for VNF Package Management
|
||||
----------------------------------------
|
||||
|
||||
.. TODO(yoshito-ito): add Fetch VNF Package artifacts CLI reference.
|
||||
|
||||
1. Create VNF Package Info
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. 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 | |
|
||||
+-------------------+----------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package create --help
|
||||
usage: openstack vnf package create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--user-data <key=value>]
|
||||
|
||||
Create a new VNF Package
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--user-data <key=value>
|
||||
User defined data for the VNF package (repeat option
|
||||
to set multiple user defined data)
|
||||
|
||||
|
||||
2. Upload VNF Package
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package upload --path sample_csar.zip \
|
||||
<ID: e712a702-741f-4093-a971-b3ad69411ac1>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Upload request for VNF package e712a702-741f-4093-a971-b3ad69411ac1 has been accepted.
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package upload --help
|
||||
usage: openstack vnf package upload [-h] (--path <file> | --url <Uri>)
|
||||
[--user-name <user-name>]
|
||||
[--password <password>]
|
||||
<vnf-package>
|
||||
|
||||
Upload VNF Package
|
||||
|
||||
positional arguments:
|
||||
<vnf-package> VNF package ID
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--path <file> Upload VNF CSAR package from local file
|
||||
--url <Uri> Uri of the VNF package content
|
||||
--user-name <user-name>
|
||||
User name for authentication
|
||||
--password <password>
|
||||
Password for authentication
|
||||
|
||||
|
||||
3. Fetch VNF Package
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package download --file <FILE: download_sample_csar.zip> \
|
||||
<ID: e712a702-741f-4093-a971-b3ad69411ac1>
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package download --help
|
||||
usage: openstack vnf package download [-h] [--file <FILE>] [--vnfd]
|
||||
[--type <type>]
|
||||
<vnf-package>
|
||||
|
||||
Download VNF package contents or VNFD of an on-boarded VNF package.
|
||||
|
||||
positional arguments:
|
||||
<vnf-package> VNF package ID
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--file <FILE> Local file to save downloaded VNF Package or VNFD data. If
|
||||
this is not specified and there is no redirection then data
|
||||
will not be saved.
|
||||
--vnfd Download VNFD of an on-boarded vnf package.
|
||||
--type <type> Provide text/plain when VNFD is implemented as a single YAML
|
||||
file otherwise use application/zip. If you are not aware
|
||||
whether VNFD is a single or multiple yaml files, then you can
|
||||
specify 'both' option value. Provide this option only when
|
||||
--vnfd is set.
|
||||
|
||||
4. List VNF Package
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+------------------+------------------+-------------+-------------------+
|
||||
| Id | Vnf Product Name | Onboarding State | Usage State | Operational State |
|
||||
+--------------------------------------+------------------+------------------+-------------+-------------------+
|
||||
| e712a702-741f-4093-a971-b3ad69411ac1 | Sample VNF | ONBOARDED | NOT_IN_USE | ENABLED |
|
||||
+--------------------------------------+------------------+------------------+-------------+-------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package list --help
|
||||
usage: openstack vnf package list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--filter <filter>]
|
||||
[--all_fields | --fields fields | --exclude_fields exclude-fields]
|
||||
[--exclude_default]
|
||||
|
||||
List VNF Packages
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--filter <filter> Atrribute-based-filtering parameters
|
||||
--all_fields Include all complex attributes in the response
|
||||
--fields fields Complex attributes to be included into the response
|
||||
--exclude_fields exclude-fields
|
||||
Complex attributes to be excluded from the response
|
||||
--exclude_default Indicates to exclude all complex attributes from the
|
||||
response. This argument can be used alone or with
|
||||
--fields and --filter. For all other combinations
|
||||
tacker server will throw bad request error
|
||||
|
||||
|
||||
5. Show VNF Package
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package show <ID: e712a702-741f-4093-a971-b3ad69411ac1>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------------+------------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------------+------------------------------------------------------------------------------------------------------------+
|
||||
| Checksum | algorithm=sha512, hash=f8eb9883f04901af2d6e09d3621b7bbb37a36a89b076d322cc5994f3c5264854d1a0137efb23e61be96 |
|
||||
| | 9a7ba60989715b3e3feced9d7c582ffaaec6b5a89e2b1 |
|
||||
| ID | e712a702-741f-4093-a971-b3ad69411ac1 |
|
||||
| Links | packageContent=href=/vnfpkgm/v1/vnf_packages/e712a702-741f-4093-a971-b3ad69411ac1/package_content, |
|
||||
| | self=href=/vnfpkgm/v1/vnf_packages/e712a702-741f-4093-a971-b3ad69411ac1 |
|
||||
| Onboarding State | ONBOARDED |
|
||||
| Operational State | ENABLED |
|
||||
| Software Images | [{'diskFormat': 'qcow2', 'minDisk': 1, 'minRam': 0, 'imagePath': '', 'size': 1, 'createdAt': '2020-05-28 |
|
||||
| | 01:50:14+00:00', 'containerFormat': 'bare', 'version': '0.4.0', 'provider': '', 'id': 'VDU1', 'name': |
|
||||
| | 'Software of VDU1', 'checksum': {'algorithm': 'sha-256', 'hash': '6513f21e44aa3da349f248188a44bc304a3653a0 |
|
||||
| | 4122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78'}, |
|
||||
| | 'userMetadata': {}}] |
|
||||
| Usage State | NOT_IN_USE |
|
||||
| User Defined Data | |
|
||||
| VNF Product Name | Sample VNF |
|
||||
| VNF Provider | Company |
|
||||
| VNF Software Version | 1.0 |
|
||||
| VNFD ID | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |
|
||||
| VNFD Version | 1.0 |
|
||||
+----------------------+------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package show --help
|
||||
usage: openstack vnf package show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<vnf-package>
|
||||
|
||||
Show VNF Package Details
|
||||
|
||||
positional arguments:
|
||||
<vnf-package> VNF package ID
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
6. Update VNF Package Info
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package update --operational-state 'DISABLED' \
|
||||
<ID: e712a702-741f-4093-a971-b3ad69411ac>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-------------------+----------+
|
||||
| Field | Value |
|
||||
+-------------------+----------+
|
||||
| Operational State | DISABLED |
|
||||
+-------------------+----------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package update --help
|
||||
usage: openstack vnf package update [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
[--operational-state <operational-state>]
|
||||
[--user-data <key=value>]
|
||||
<vnf-package>
|
||||
|
||||
Update information about an individual VNF package
|
||||
|
||||
positional arguments:
|
||||
<vnf-package> VNF package ID
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--operational-state <operational-state>
|
||||
Change the operational state of VNF Package, Valid
|
||||
values are 'ENABLED' or 'DISABLED'.
|
||||
--user-data <key=value>
|
||||
User defined data for the VNF package (repeat option
|
||||
to set multiple user defined data)
|
||||
|
||||
|
||||
7. Delete VNF Package
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack vnf package delete <ID: e712a702-741f-4093-a971-b3ad69411ac1>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vnf-package(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf package delete --help
|
||||
usage: openstack vnf package delete [-h] <vnf-package> [<vnf-package> ...]
|
||||
|
||||
Delete VNF Package
|
||||
|
||||
positional arguments:
|
||||
<vnf-package> Vnf package(s) ID to delete
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,118 @@
|
|||
================
|
||||
Event Management
|
||||
================
|
||||
|
||||
This document describes how to manage Event with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
CLI reference for Event Management
|
||||
----------------------------------
|
||||
|
||||
1. List Events
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack nfv event list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----+---------------+--------------------------------------+-------------------+------------+---------------------+
|
||||
| ID | Resource Type | Resource ID | Resource State | Event Type | Timestamp |
|
||||
+----+---------------+--------------------------------------+-------------------+------------+---------------------+
|
||||
| 1 | vim | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | PENDING | CREATE | 2020-08-12 02:28:22 |
|
||||
| 2 | vim | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | REACHABLE | MONITOR | 2020-08-12 02:28:23 |
|
||||
| 3 | vim | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | REACHABLE | UPDATE | 2020-08-12 02:40:40 |
|
||||
| 4 | vnfd | 94f2b44c-06f7-4d43-a2bb-dcd54f44d0f5 | OnBoarded | CREATE | 2020-08-13 05:52:07 |
|
||||
| 5 | vnf | 4ffb436f-7f2c-4df1-96c4-38e9208261fd | PENDING_CREATE | CREATE | 2020-08-13 05:53:45 |
|
||||
| 6 | vnf | 4ffb436f-7f2c-4df1-96c4-38e9208261fd | ACTIVE | CREATE | 2020-08-13 05:53:45 |
|
||||
| 7 | vnf | 83fb8124-b475-400f-b0eb-f2b6741eeedc | PENDING_CREATE | CREATE | 2020-08-13 05:54:07 |
|
||||
| 8 | vnf | 83fb8124-b475-400f-b0eb-f2b6741eeedc | ACTIVE | CREATE | 2020-08-13 05:54:07 |
|
||||
+----+---------------+--------------------------------------+-------------------+------------+---------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack nfv event list --help
|
||||
usage: openstack nfv event list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN] [--id ID]
|
||||
[--resource-type RESOURCE_TYPE]
|
||||
[--resource-id RESOURCE_ID]
|
||||
[--resource-state RESOURCE_STATE]
|
||||
[--event-type EVENT_TYPE] [--long]
|
||||
|
||||
List events of resources.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--id ID id of the event to look up.
|
||||
--resource-type RESOURCE_TYPE
|
||||
resource type of the events to look up.
|
||||
--resource-id RESOURCE_ID
|
||||
resource id of the events to look up.
|
||||
--resource-state RESOURCE_STATE
|
||||
resource state of the events to look up.
|
||||
--event-type EVENT_TYPE
|
||||
event type of the events to look up.
|
||||
--long List additional fields in output
|
||||
|
||||
|
||||
2. Show Event
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack nfv event show <ID: 1>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------+--------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------+--------------------------------------+
|
||||
| event_details | |
|
||||
| event_type | CREATE |
|
||||
| id | 1 |
|
||||
| resource_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| resource_state | PENDING |
|
||||
| resource_type | vim |
|
||||
| timestamp | 2020-08-12 02:28:22 |
|
||||
+----------------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack nfv event show --help
|
||||
usage: openstack nfv event show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
ID
|
||||
|
||||
Show event given the event id.
|
||||
|
||||
positional arguments:
|
||||
ID ID of event to display
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,139 @@
|
|||
==========================
|
||||
Flow Classifier Management
|
||||
==========================
|
||||
|
||||
Flow Classifier (FC) is a part of Network Forwarding Path (NFP) in VNF
|
||||
Forwarding Graph (VNFFG).
|
||||
|
||||
This document describes how to manage FC with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
The following VNFDs are created with the name ``VNFD1`` and ``VNFD2``
|
||||
according to :doc:`./cli-legacy-vnfd`.
|
||||
|
||||
* `tosca-vnffg-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml>`_
|
||||
* `tosca-vnffg-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml>`_
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd1.yaml VNFD1
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD2
|
||||
|
||||
|
||||
The VNFs from the created VNFDs are deployed with the name ``VNF1`` and
|
||||
``VNF2`` according to :doc:`./cli-legacy-vnf`.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --vnfd-name VNFD1 VNF1
|
||||
$ openstack vnf create --vnfd-name VNFD2 VNF2
|
||||
|
||||
|
||||
VNFFG should be deployed according to :doc:`./cli-legacy-vnffg`. Before
|
||||
deploying the VNFFG, a VNFFGD may need to be created according to
|
||||
:doc:`./cli-legacy-vnffgd`.
|
||||
|
||||
CLI reference for FC Management
|
||||
-------------------------------
|
||||
|
||||
1. List Flow Classifier
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf classifier list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+-----------+--------+--------------------------------------+--------------------------------------+
|
||||
| ID | Name | Status | NFP ID | Chain ID |
|
||||
+--------------------------------------+-----------+--------+--------------------------------------+--------------------------------------+
|
||||
| 31268b39-27d3-4108-9552-73490125d29a | block_tcp | ACTIVE | ed450e71-345d-4dc8-8f32-69e3a697ad56 | 89f99c03-a152-413b-bb39-c7618a54b23a |
|
||||
+--------------------------------------+-----------+--------+--------------------------------------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf classifier list --help
|
||||
usage: openstack vnf classifier list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--nfp-id NFP_ID] [--tenant-id TENANT_ID]
|
||||
|
||||
List flow classifier(s) that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--nfp-id NFP_ID List flow classifier(s) with specific nfp id
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
|
||||
|
||||
2. Show Flow Classifier
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf classifier show <ID: 31268b39-27d3-4108-9552-73490125d29a>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-------------+--------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+--------------------------------------------------------------------+
|
||||
| chain_id | 89f99c03-a152-413b-bb39-c7618a54b23a |
|
||||
| id | 31268b39-27d3-4108-9552-73490125d29a |
|
||||
| instance_id | 566e6760-9f0b-4b5e-a6e5-d8deab00efd3 |
|
||||
| match | { |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "destination_port_min": 80, |
|
||||
| | "destination_port_max": 1024, |
|
||||
| | "network_src_port_id": "d4940639-764a-4a62-9b21-6ba2e86498eb", |
|
||||
| | "tenant_id": "e77397d2a02c4af1b7d79cef2a406396" |
|
||||
| | } |
|
||||
| name | block_tcp |
|
||||
| nfp_id | ed450e71-345d-4dc8-8f32-69e3a697ad56 |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
+-------------+--------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf classifier show --help
|
||||
usage: openstack vnf classifier show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
<Classifier ID>
|
||||
|
||||
Display flow classifier details
|
||||
|
||||
positional arguments:
|
||||
<Classifier ID> Flow Classifier to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,136 @@
|
|||
==================================
|
||||
Network Forwarding Path Management
|
||||
==================================
|
||||
|
||||
Network Forwarding Path (NFP) is composed of a Service Function Chain (SFC)
|
||||
and a Flow Classifier (FC) in VNF Forwarding Graph (VNFFG).
|
||||
|
||||
This document describes how to manage NFP with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
The following VNFDs are created with the name ``VNFD1`` and ``VNFD2``
|
||||
according to :doc:`./cli-legacy-vnfd`.
|
||||
|
||||
* `tosca-vnffg-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml>`_
|
||||
* `tosca-vnffg-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml>`_
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd1.yaml VNFD1
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD2
|
||||
|
||||
|
||||
The VNFs from the created VNFDs are deployed with the name ``VNF1`` and
|
||||
``VNF2`` according to :doc:`./cli-legacy-vnf`.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --vnfd-name VNFD1 VNF1
|
||||
$ openstack vnf create --vnfd-name VNFD2 VNF2
|
||||
|
||||
|
||||
A VNFFG should be deployed according to :doc:`./cli-legacy-vnffg`. Before
|
||||
deploying the VNFFG, a VNFFGD may need to be created according to
|
||||
:doc:`./cli-legacy-vnffgd`.
|
||||
|
||||
CLI reference for NFP Management
|
||||
--------------------------------
|
||||
|
||||
1. List Network Forwarding Path
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf network forwarding path list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+------------------+--------+--------------------------------------+---------+
|
||||
| ID | Name | Status | VNFFG ID | Path ID |
|
||||
+--------------------------------------+------------------+--------+--------------------------------------+---------+
|
||||
| ed450e71-345d-4dc8-8f32-69e3a697ad56 | Forwarding_path1 | ACTIVE | 3b1be255-4b3b-4ff2-b985-19f043f3f40c | 51 |
|
||||
+--------------------------------------+------------------+--------+--------------------------------------+---------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf network forwarding path list --help
|
||||
usage: openstack vnf network forwarding path list [-h]
|
||||
[-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent]
|
||||
[--max-width <integer>]
|
||||
[--fit-width]
|
||||
[--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--vnffg-id VNFFG_ID]
|
||||
|
||||
List NFP(s) that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--vnffg-id VNFFG_ID List NFP(s) with specific VNFFG ID
|
||||
|
||||
|
||||
2. Show Network Forwarding Path
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf network forwarding path show <NFP>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-------------+--------------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+--------------------------------------+
|
||||
| chain_id | 89f99c03-a152-413b-bb39-c7618a54b23a |
|
||||
| id | ed450e71-345d-4dc8-8f32-69e3a697ad56 |
|
||||
| name | Forwarding_path1 |
|
||||
| path_id | 51 |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
| symmetrical | False |
|
||||
| vnffg_id | 3b1be255-4b3b-4ff2-b985-19f043f3f40c |
|
||||
+-------------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf network forwarding path show --help
|
||||
usage: openstack vnf network forwarding path show [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width]
|
||||
[--print-empty]
|
||||
<NFP>
|
||||
|
||||
Display NFP details
|
||||
|
||||
positional arguments:
|
||||
<NFP> NFP to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,412 @@
|
|||
=====================================
|
||||
Network Service Descriptor Management
|
||||
=====================================
|
||||
|
||||
To enable dynamic composition of network services, NFV introduces Network
|
||||
Service Descriptors (NSDs) that specify the network service to be created.
|
||||
|
||||
This document describes how to manage NSD with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
The following VNFDs are created according to :doc:`./cli-legacy-vnfd`.
|
||||
|
||||
* `sample-tosca-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/nsd/sample-tosca-vnfd1.yaml>`_
|
||||
* `sample-tosca-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/nsd/sample-tosca-vnfd2.yaml>`_
|
||||
|
||||
CLI reference for NSD Management
|
||||
--------------------------------
|
||||
|
||||
1. Create Network Service Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Create ``sample-tosca-nsd.yaml`` file:
|
||||
|
||||
* https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/nsd/sample-tosca-nsd.yaml
|
||||
|
||||
|
||||
Create a NSD:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor create --nsd-file \
|
||||
sample-tosca-nsd.yaml <NAME: sample-tosca-nsd>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "nsd": { |
|
||||
| | "description": "Import VNFDs(already on-boarded) with input parameters", |
|
||||
| | "imports": [ |
|
||||
| | "sample-tosca-vnfd1", |
|
||||
| | "sample-tosca-vnfd2" |
|
||||
| | ], |
|
||||
| | "topology_template": { |
|
||||
| | "inputs": { |
|
||||
| | "vl1_name": { |
|
||||
| | "default": "net_mgmt", |
|
||||
| | "description": "name of VL1 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | }, |
|
||||
| | "vl2_name": { |
|
||||
| | "default": "net0", |
|
||||
| | "description": "name of VL2 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "node_templates": { |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl1_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl2_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VNF1": { |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink1": "VL1" |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualLink2": "VL2" |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.VNF1" |
|
||||
| | }, |
|
||||
| | "VNF2": { |
|
||||
| | "type": "tosca.nodes.nfv.VNF2" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
| created_at | 2020-08-12 07:16:42.297675 |
|
||||
| description | Import VNFDs(already on-boarded) with input parameters |
|
||||
| id | 99a25f74-1bb9-4985-a548-f171060d00fd |
|
||||
| name | sample-tosca-nsd |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| template_source | onboarded |
|
||||
| updated_at | None |
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor create --help
|
||||
usage: openstack ns descriptor create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--tenant-id TENANT_ID]
|
||||
--nsd-file NSD_FILE
|
||||
[--description DESCRIPTION]
|
||||
NAME
|
||||
|
||||
Create a new NSD.
|
||||
|
||||
positional arguments:
|
||||
NAME Name for NSD
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--nsd-file NSD_FILE YAML file with NSD parameters
|
||||
--description DESCRIPTION
|
||||
Set a description for the NSD
|
||||
|
||||
|
||||
2. List Network Service Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+------------------+-----------------+------------------------------+
|
||||
| ID | Name | Template_Source | Description |
|
||||
+--------------------------------------+------------------+-----------------+------------------------------+
|
||||
| 99a25f74-1bb9-4985-a548-f171060d00fd | sample-tosca-nsd | onboarded | Import VNFDs(already on-b... |
|
||||
+--------------------------------------+------------------+-----------------+------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor list --help
|
||||
usage: openstack ns descriptor list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--template-source TEMPLATE_SOURCE]
|
||||
|
||||
List (NSD)s that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--template-source TEMPLATE_SOURCE
|
||||
List NSD with specified template source. Available
|
||||
options are 'onboared' (default), 'inline' or 'all'
|
||||
|
||||
|
||||
3. Show Network Service Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor show <NSD: sample-tosca-nsd>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "nsd": { |
|
||||
| | "description": "Import VNFDs(already on-boarded) with input parameters", |
|
||||
| | "imports": [ |
|
||||
| | "sample-tosca-vnfd1", |
|
||||
| | "sample-tosca-vnfd2" |
|
||||
| | ], |
|
||||
| | "topology_template": { |
|
||||
| | "inputs": { |
|
||||
| | "vl1_name": { |
|
||||
| | "default": "net_mgmt", |
|
||||
| | "description": "name of VL1 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | }, |
|
||||
| | "vl2_name": { |
|
||||
| | "default": "net0", |
|
||||
| | "description": "name of VL2 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "node_templates": { |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl1_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl2_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VNF1": { |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink1": "VL1" |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualLink2": "VL2" |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.VNF1" |
|
||||
| | }, |
|
||||
| | "VNF2": { |
|
||||
| | "type": "tosca.nodes.nfv.VNF2" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
| created_at | 2020-08-12 07:16:42 |
|
||||
| description | Import VNFDs(already on-boarded) with input parameters |
|
||||
| id | 99a25f74-1bb9-4985-a548-f171060d00fd |
|
||||
| name | sample-tosca-nsd |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| template_source | onboarded |
|
||||
| updated_at | None |
|
||||
+-----------------+----------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor show --help
|
||||
usage: openstack ns descriptor show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<NSD>
|
||||
|
||||
Display NSD details
|
||||
|
||||
positional arguments:
|
||||
<NSD> NSD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. Show template Network Service Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack ns descriptor template show <name or ID of NSD: sample-tosca-nsd>
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+------------+----------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+------------+----------------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "nsd": { |
|
||||
| | "description": "Import VNFDs(already on-boarded) with input parameters", |
|
||||
| | "imports": [ |
|
||||
| | "sample-tosca-vnfd1", |
|
||||
| | "sample-tosca-vnfd2" |
|
||||
| | ], |
|
||||
| | "topology_template": { |
|
||||
| | "inputs": { |
|
||||
| | "vl1_name": { |
|
||||
| | "default": "net_mgmt", |
|
||||
| | "description": "name of VL1 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | }, |
|
||||
| | "vl2_name": { |
|
||||
| | "default": "net0", |
|
||||
| | "description": "name of VL2 virtuallink", |
|
||||
| | "type": "string" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "node_templates": { |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl1_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": { |
|
||||
| | "get_input": "vl2_name" |
|
||||
| | }, |
|
||||
| | "vendor": "tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VNF1": { |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink1": "VL1" |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualLink2": "VL2" |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.VNF1" |
|
||||
| | }, |
|
||||
| | "VNF2": { |
|
||||
| | "type": "tosca.nodes.nfv.VNF2" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
+------------+----------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor template show --help
|
||||
usage: openstack ns descriptor template show [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
<NSD>
|
||||
|
||||
Display NSD Template details
|
||||
|
||||
positional arguments:
|
||||
<NSD> NSD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
5. Delete Network Service Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack ns descriptor delete <NSD: sample-tosca-nsd>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
All specified nsd(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
$ openstack ns descriptor delete --help
|
||||
usage: openstack ns descriptor delete [-h] <NSD> [<NSD> ...]
|
||||
|
||||
Delete NSD(s).
|
||||
|
||||
positional arguments:
|
||||
<NSD> NSD(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,142 @@
|
|||
=======================================
|
||||
Service Function Chain (SFC) Management
|
||||
=======================================
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
The following VNFDs are created with the name ``VNFD1`` and ``VNFD2``
|
||||
according to :doc:`./cli-legacy-vnfd`.
|
||||
|
||||
* `tosca-vnffg-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml>`_
|
||||
* `tosca-vnffg-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml>`_
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd1.yaml VNFD1
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD2
|
||||
|
||||
|
||||
The VNFs from the created VNFDs are deployed with the name ``VNF1`` and
|
||||
``VNF2`` according to :doc:`./cli-legacy-vnf`.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --vnfd-name VNFD1 VNF1
|
||||
$ openstack vnf create --vnfd-name VNFD2 VNF2
|
||||
|
||||
|
||||
A VNFFG should be deployed according to :doc:`./cli-legacy-vnffg`. Before
|
||||
deploying the VNFFG, a VNFFGD may need to be created according to
|
||||
:doc:`./cli-legacy-vnffgd`.
|
||||
|
||||
CLI reference for SFC Management
|
||||
--------------------------------
|
||||
|
||||
1. List Service Function Chain
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf chain list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+--------+--------------------------------------+
|
||||
| ID | Status | NFP ID |
|
||||
+--------------------------------------+--------+--------------------------------------+
|
||||
| 89f99c03-a152-413b-bb39-c7618a54b23a | ACTIVE | ed450e71-345d-4dc8-8f32-69e3a697ad56 |
|
||||
+--------------------------------------+--------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf chain list --help
|
||||
usage: openstack vnf chain list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN] [--nfp-id NFP_ID]
|
||||
[--tenant-id TENANT_ID]
|
||||
|
||||
List SFC(s) that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--nfp-id NFP_ID List SFC(s) with specific nfp id
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
|
||||
|
||||
2. Show Service Function Chain
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf chain show <SFC: 89f99c03-a152-413b-bb39-c7618a54b23a>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-------------+----------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------------------------+
|
||||
| chain | [ |
|
||||
| | { |
|
||||
| | "name": "VNF1", |
|
||||
| | "connection_points": [ |
|
||||
| | "d4940639-764a-4a62-9b21-6ba2e86498eb" |
|
||||
| | ], |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "name": "VNF2", |
|
||||
| | "connection_points": [ |
|
||||
| | "eeda565a-656b-4c86-b2da-c38683ff14e3" |
|
||||
| | ], |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| id | 89f99c03-a152-413b-bb39-c7618a54b23a |
|
||||
| instance_id | ba0b5218-1e63-49b2-9112-aba1747f29af |
|
||||
| nfp_id | ed450e71-345d-4dc8-8f32-69e3a697ad56 |
|
||||
| path_id | 51 |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
| symmetrical | False |
|
||||
+-------------+----------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf chain show --help
|
||||
usage: openstack vnf chain show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<SFC>
|
||||
|
||||
Display SFC details
|
||||
|
||||
positional arguments:
|
||||
<SFC> SFC to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,400 @@
|
|||
==============
|
||||
VIM Management
|
||||
==============
|
||||
|
||||
This document describes how to manage VIM with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
CLI reference for VIM Management
|
||||
--------------------------------
|
||||
|
||||
1. Register VIM
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Create ``vim_config.yaml`` file for OpenStack VIM:
|
||||
|
||||
* https://opendev.org/openstack/tacker/src/branch/master/devstack/vim_config.yaml
|
||||
|
||||
|
||||
Register default OpenStack VIM:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim register --config-file ./vim_config.yaml --is-default \
|
||||
--description <DESCRIPTION: 'vim for nfv_user in nfv'> \
|
||||
<NAME: openstack-nfv-vim>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------+-------------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------+-------------------------------------------------+
|
||||
| auth_cred | { |
|
||||
| | "username": "nfv_user", |
|
||||
| | "user_domain_name": "Default", |
|
||||
| | "cert_verify": "False", |
|
||||
| | "project_id": null, |
|
||||
| | "project_name": "nfv", |
|
||||
| | "project_domain_name": "Default", |
|
||||
| | "auth_url": "http://localhost/identity/v3", |
|
||||
| | "key_type": "barbican_key", |
|
||||
| | "secret_uuid": "***", |
|
||||
| | "password": "***" |
|
||||
| | } |
|
||||
| auth_url | http://localhost/identity/v3 |
|
||||
| created_at | 2020-08-12 02:28:22.470813 |
|
||||
| description | vim for nfv_user in nfv |
|
||||
| id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| is_default | True |
|
||||
| name | openstack-nfv-vim |
|
||||
| placement_attr | { |
|
||||
| | "regions": [ |
|
||||
| | "RegionOne" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | PENDING |
|
||||
| type | openstack |
|
||||
| updated_at | None |
|
||||
| vim_project | { |
|
||||
| | "name": "nfv", |
|
||||
| | "project_domain_name": "Default" |
|
||||
| | } |
|
||||
+----------------+-------------------------------------------------+
|
||||
|
||||
|
||||
Find the IP address of Kubernetes API:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ curl http://localhost:8080/api/
|
||||
|
||||
{
|
||||
"kind": "APIVersions",
|
||||
"versions": [
|
||||
"v1"
|
||||
],
|
||||
"serverAddressByClientCIDRs": [
|
||||
{
|
||||
"clientCIDR": "0.0.0.0/0",
|
||||
"serverAddress": "<IP address: 10.0.2.15>:6443"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Create ``vim_config_k8s.yaml`` file for Kubernetes VIM:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
auth_url: "https://<IP_ADDRESS: 10.0.2.15>:6443"
|
||||
username: "admin"
|
||||
password: "admin"
|
||||
project_name: "default"
|
||||
ssl_ca_cert: None
|
||||
type: "kubernetes"
|
||||
|
||||
|
||||
Register Kubernetes VIM:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim register --config-file ./vim_config_k8s.yaml \
|
||||
--description <DESCRIPTION: 'k8s vim for nfv_user in nfv'> \
|
||||
<NAME: kubernetes-nfv-vim>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------+-------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------+-------------------------------------------+
|
||||
| auth_cred | { |
|
||||
| | "username": "admin", |
|
||||
| | "ssl_ca_cert": "None", |
|
||||
| | "auth_url": "https://10.0.2.15:6443", |
|
||||
| | "key_type": "barbican_key", |
|
||||
| | "secret_uuid": "***", |
|
||||
| | "password": "***" |
|
||||
| | } |
|
||||
| auth_url | https://10.0.2.15:6443 |
|
||||
| created_at | 2020-08-16 04:36:43.579859 |
|
||||
| description | k8s vim for nfv_user in nfv |
|
||||
| id | fd821c54-a60f-4afe-b131-3cfb76b7df8a |
|
||||
| is_default | False |
|
||||
| name | kubernetes-nfv-vim |
|
||||
| placement_attr | { |
|
||||
| | "regions": [ |
|
||||
| | "default", |
|
||||
| | "kube-node-lease", |
|
||||
| | "kube-public", |
|
||||
| | "kube-system" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| project_id | a0f24742eb0e4764a76a09e30bf7b0dd |
|
||||
| status | PENDING |
|
||||
| type | kubernetes |
|
||||
| updated_at | None |
|
||||
| vim_project | { |
|
||||
| | "name": "default" |
|
||||
| | } |
|
||||
+----------------+-------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim register --help
|
||||
usage: openstack vim register [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--tenant-id TENANT_ID]
|
||||
--config-file CONFIG_FILE
|
||||
[--description DESCRIPTION] [--is-default]
|
||||
NAME
|
||||
|
||||
Register a new VIM
|
||||
|
||||
positional arguments:
|
||||
NAME Set a name for the VIM
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--config-file CONFIG_FILE
|
||||
YAML file with VIM configuration parameters
|
||||
--description DESCRIPTION
|
||||
Set a description for the VIM
|
||||
--is-default Set as default VIM
|
||||
|
||||
|
||||
2. List VIMs
|
||||
^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+--------------------+----------------------------------+------------+------------+-----------+
|
||||
| ID | Name | Tenant_id | Type | Is Default | Status |
|
||||
+--------------------------------------+--------------------+----------------------------------+------------+------------+-----------+
|
||||
| aacb3c7f-d532-44d9-b8ed-49e2b30114aa | openstack-nfv-vim | e77397d2a02c4af1b7d79cef2a406396 | openstack | True | REACHABLE |
|
||||
+--------------------------------------+--------------------+----------------------------------+------------+------------+-----------+
|
||||
| fd821c54-a60f-4afe-b131-3cfb76b7df8a | kubernetes-nfv-vim | a0f24742eb0e4764a76a09e30bf7b0dd | kubernetes | False | REACHABLE |
|
||||
+--------------------------------------+--------------------+----------------------------------+------------+------------+-----------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim list --help
|
||||
usage: openstack vim list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}] [--noindent]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--sort-column SORT_COLUMN] [--long]
|
||||
|
||||
List VIMs that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--long List additional fields in output
|
||||
|
||||
|
||||
3. Show VIM
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim show <VIM: openstack-nfv-vim>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------+-------------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------+-------------------------------------------------+
|
||||
| auth_cred | { |
|
||||
| | "username": "nfv_user", |
|
||||
| | "user_domain_name": "Default", |
|
||||
| | "cert_verify": "False", |
|
||||
| | "project_id": null, |
|
||||
| | "project_name": "nfv", |
|
||||
| | "project_domain_name": "Default", |
|
||||
| | "auth_url": "http://localhost/identity/v3", |
|
||||
| | "key_type": "barbican_key", |
|
||||
| | "secret_uuid": "***", |
|
||||
| | "password": "***" |
|
||||
| | } |
|
||||
| auth_url | http://localhost/identity/v3 |
|
||||
| created_at | 2020-08-12 02:28:22 |
|
||||
| description | vim for nfv_user in nfv |
|
||||
| id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| is_default | True |
|
||||
| name | openstack-nfv-vim |
|
||||
| placement_attr | { |
|
||||
| | "regions": [ |
|
||||
| | "RegionOne" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | REACHABLE |
|
||||
| type | openstack |
|
||||
| updated_at | 2020-08-12 02:28:23 |
|
||||
| vim_project | { |
|
||||
| | "name": "nfv", |
|
||||
| | "project_domain_name": "Default" |
|
||||
| | } |
|
||||
+----------------+-------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim show --help
|
||||
usage: openstack vim show [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
|
||||
[--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<VIM>
|
||||
|
||||
Display VIM details
|
||||
|
||||
positional arguments:
|
||||
<VIM> VIM to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. Update VIM
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim set --description \
|
||||
<DESCRIPTION: 'new description of vim for nfv_user in nfv'> \
|
||||
<VIM: openstack-nfv-vim>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------------+-------------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------------+-------------------------------------------------+
|
||||
| auth_cred | { |
|
||||
| | "username": "nfv_user", |
|
||||
| | "user_domain_name": "Default", |
|
||||
| | "cert_verify": "False", |
|
||||
| | "project_id": null, |
|
||||
| | "project_name": "nfv", |
|
||||
| | "project_domain_name": "Default", |
|
||||
| | "auth_url": "http://localhost/identity/v3", |
|
||||
| | "key_type": "barbican_key", |
|
||||
| | "secret_uuid": "***", |
|
||||
| | "password": "***" |
|
||||
| | } |
|
||||
| auth_url | http://localhost/identity/v3 |
|
||||
| created_at | 2020-08-12 02:28:22 |
|
||||
| description | new description of vim for nfv_user in nfv |
|
||||
| id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| is_default | True |
|
||||
| name | openstack-nfv-vim |
|
||||
| placement_attr | { |
|
||||
| | "regions": [ |
|
||||
| | "RegionOne" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | REACHABLE |
|
||||
| type | openstack |
|
||||
| updated_at | 2020-08-12 02:40:39.800778 |
|
||||
| vim_project | { |
|
||||
| | "name": "nfv", |
|
||||
| | "project_domain_name": "Default" |
|
||||
| | } |
|
||||
+----------------+-------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim set --help
|
||||
usage: openstack vim set [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
|
||||
[--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width] [--print-empty]
|
||||
[--config-file CONFIG_FILE] [--name NAME]
|
||||
[--description DESCRIPTION]
|
||||
[--is-default {True,False}]
|
||||
VIM
|
||||
|
||||
Update VIM.
|
||||
|
||||
positional arguments:
|
||||
VIM ID or name of vim to update
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--config-file CONFIG_FILE
|
||||
YAML file with VIM configuration parameters
|
||||
--name NAME New name for the VIM
|
||||
--description DESCRIPTION
|
||||
New description for the VIM
|
||||
--is-default {True,False}
|
||||
Indicate whether the VIM is used as default
|
||||
|
||||
|
||||
5. Delete VIM
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim delete <VIM: openstack-nfv-vim>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vim(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vim delete --help
|
||||
usage: openstack vim delete [-h] <VIM> [<VIM> ...]
|
||||
|
||||
Delete VIM(s).
|
||||
|
||||
positional arguments:
|
||||
<VIM> VIM(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,934 @@
|
|||
==============
|
||||
VNF Management
|
||||
==============
|
||||
|
||||
.. TODO(yoshito-ito): add the other patterns of update.
|
||||
|
||||
This document describes how to manage VNF with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
CLI reference for VNF Management
|
||||
--------------------------------
|
||||
|
||||
1. Create VNF
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
Create ``tosca-vnfd-scale.yaml`` file:
|
||||
|
||||
* https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnfd/tosca-vnfd-scale.yaml
|
||||
|
||||
|
||||
Create a VNFD:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file \
|
||||
tosca-vnfd-scale.yaml <VNFD: tosca-vnfd-scale>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnfd": { |
|
||||
| | "description": "sample-tosca-vnfd-scaling", |
|
||||
| | "metadata": { |
|
||||
| | "template_name": "sample-tosca-vnfd-scaling" |
|
||||
| | }, |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "CP1": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "management": true, |
|
||||
| | "order": 0 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL1" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP2": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "management": true, |
|
||||
| | "order": 0 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL1" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU2" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "VDU1": { |
|
||||
| | "properties": { |
|
||||
| | "availability_zone": "nova", |
|
||||
| | "flavor": "m1.tiny", |
|
||||
| | "image": "cirros-0.4.0-x86_64-disk", |
|
||||
| | "mgmt_driver": "noop" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
|
||||
| | }, |
|
||||
| | "VDU2": { |
|
||||
| | "properties": { |
|
||||
| | "availability_zone": "nova", |
|
||||
| | "flavor": "m1.tiny", |
|
||||
| | "image": "cirros-0.4.0-x86_64-disk", |
|
||||
| | "mgmt_driver": "noop" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
|
||||
| | }, |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net_mgmt", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "policies": [ |
|
||||
| | { |
|
||||
| | "SP1": { |
|
||||
| | "properties": { |
|
||||
| | "cooldown": 120, |
|
||||
| | "default_instances": 2, |
|
||||
| | "increment": 1, |
|
||||
| | "max_instances": 3, |
|
||||
| | "min_instances": 1 |
|
||||
| | }, |
|
||||
| | "targets": [ |
|
||||
| | "VDU1", |
|
||||
| | "VDU2" |
|
||||
| | ], |
|
||||
| | "type": "tosca.policies.tacker.Scaling" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
| created_at | 2020-08-12 04:20:08.908891 |
|
||||
| description | sample-tosca-vnfd-scaling |
|
||||
| id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
| name | tosca-vnfd-scale |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| service_types | ['vnfd'] |
|
||||
| template_source | onboarded |
|
||||
| updated_at | None |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Create the VNF:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --vnfd-name <VNFD_NAME: tosca-vnfd-scale> \
|
||||
<NAME: vnf-scale>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+---------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+---------------------------------------------------+
|
||||
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
|
||||
| | description: Scaling template |
|
||||
| | resources: |
|
||||
| | CP1: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | CP2: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | VDU1: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP1 |
|
||||
| | VDU2: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP2 |
|
||||
| | VL1: |
|
||||
| | type: OS::Neutron::Net |
|
||||
| | outputs: |
|
||||
| | mgmt_ip-VDU1: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP1 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | mgmt_ip-VDU2: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP2 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | , heat_template=heat_template_version: 2013-05-23 |
|
||||
| | description: 'sample-tosca-vnfd-scaling |
|
||||
| | |
|
||||
| | ' |
|
||||
| | parameters: {} |
|
||||
| | resources: |
|
||||
| | SP1_scale_out: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: 1 |
|
||||
| | cooldown: 120 |
|
||||
| | SP1_group: |
|
||||
| | type: OS::Heat::AutoScalingGroup |
|
||||
| | properties: |
|
||||
| | min_size: 1 |
|
||||
| | max_size: 3 |
|
||||
| | desired_capacity: 2 |
|
||||
| | cooldown: 120 |
|
||||
| | resource: |
|
||||
| | type: SP1_res.yaml |
|
||||
| | SP1_scale_in: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: -1 |
|
||||
| | cooldown: 120 |
|
||||
| | outputs: {} |
|
||||
| | , scaling_group_names=b'{"SP1": "SP1_group"}' |
|
||||
| created_at | 2020-08-12 04:22:35.006543 |
|
||||
| description | sample-tosca-vnfd-scaling |
|
||||
| error_reason | None |
|
||||
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
|
||||
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
|
||||
| mgmt_ip_address | None |
|
||||
| name | vnf-scale |
|
||||
| placement_attr | vim_name=openstack-nfv-vim |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | PENDING_CREATE |
|
||||
| updated_at | None |
|
||||
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+-----------------+---------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --help
|
||||
usage: openstack vnf create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--tenant-id TENANT_ID]
|
||||
(--vnfd-id VNFD_ID | --vnfd-name VNFD_NAME | --vnfd-template VNFD_TEMPLATE)
|
||||
[--vim-id VIM_ID | --vim-name VIM_NAME]
|
||||
[--vim-region-name VIM_REGION_NAME]
|
||||
[--config-file CONFIG_FILE]
|
||||
[--param-file PARAM_FILE]
|
||||
[--description DESCRIPTION]
|
||||
NAME
|
||||
|
||||
Create a new VNF
|
||||
|
||||
positional arguments:
|
||||
NAME Set a name for the VNF
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--vnfd-id VNFD_ID VNFD ID to use as template to create VNF
|
||||
--vnfd-name VNFD_NAME
|
||||
VNFD Name to use as template to create VNF
|
||||
--vnfd-template VNFD_TEMPLATE
|
||||
VNFD file to create VNF
|
||||
--vim-id VIM_ID VIM ID to deploy VNF on specified VIM
|
||||
--vim-name VIM_NAME VIM name to deploy VNF on specified VIM
|
||||
--vim-region-name VIM_REGION_NAME
|
||||
VIM Region to deploy VNF on specified VIM
|
||||
--config-file CONFIG_FILE
|
||||
YAML file with VNF configuration
|
||||
--param-file PARAM_FILE
|
||||
Specify parameter yaml file
|
||||
--description DESCRIPTION
|
||||
Set description for the VNF
|
||||
|
||||
|
||||
2. List VNFs
|
||||
^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf list
|
||||
|
||||
|
||||
Result (CREATING):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
|
||||
| ID | Name | Mgmt Ip Address | Status | VIM ID | VNFD ID |
|
||||
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
|
||||
| 9b312a7c-15de-4230-85fb-27da7d37978b | vnf-scale | None | PENDING_CREATE | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
|
||||
|
||||
|
||||
Result (CREATED):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
|
||||
| ID | Name | Mgmt Ip Address | Status | VIM ID | VNFD ID |
|
||||
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
|
||||
| 9b312a7c-15de-4230-85fb-27da7d37978b | vnf-scale | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} | ACTIVE | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf list --help
|
||||
usage: openstack vnf list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}] [--noindent]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--sort-column SORT_COLUMN]
|
||||
[--template-source TEMPLATE_SOURCE]
|
||||
[--vim-id VIM_ID | --vim-name VIM_NAME]
|
||||
[--vnfd-id VNFD_ID | --vnfd-name VNFD_NAME]
|
||||
[--tenant-id TENANT_ID] [--long]
|
||||
|
||||
List VNF(s) that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--template-source TEMPLATE_SOURCE
|
||||
List VNF with specified template source. Available
|
||||
options are 'onboarded' (default), 'inline' or 'all'
|
||||
--vim-id VIM_ID List VNF(s) that belong to a given VIM ID
|
||||
--vim-name VIM_NAME List VNF(s) that belong to a given VIM Name
|
||||
--vnfd-id VNFD_ID List VNF(s) that belong to a given VNFD ID
|
||||
--vnfd-name VNFD_NAME
|
||||
List VNF(s) that belong to a given VNFD Name
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--long List additional fields in output
|
||||
|
||||
|
||||
3. Show VNF
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf show <VNF: vnf-scale>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
|
||||
| | description: Scaling template |
|
||||
| | resources: |
|
||||
| | CP1: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | CP2: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | VDU1: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP1 |
|
||||
| | VDU2: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP2 |
|
||||
| | VL1: |
|
||||
| | type: OS::Neutron::Net |
|
||||
| | outputs: |
|
||||
| | mgmt_ip-VDU1: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP1 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | mgmt_ip-VDU2: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP2 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | , heat_template=heat_template_version: 2013-05-23 |
|
||||
| | description: 'sample-tosca-vnfd-scaling |
|
||||
| | |
|
||||
| | ' |
|
||||
| | parameters: {} |
|
||||
| | resources: |
|
||||
| | SP1_scale_out: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: 1 |
|
||||
| | cooldown: 120 |
|
||||
| | SP1_group: |
|
||||
| | type: OS::Heat::AutoScalingGroup |
|
||||
| | properties: |
|
||||
| | min_size: 1 |
|
||||
| | max_size: 3 |
|
||||
| | desired_capacity: 2 |
|
||||
| | cooldown: 120 |
|
||||
| | resource: |
|
||||
| | type: SP1_res.yaml |
|
||||
| | SP1_scale_in: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: -1 |
|
||||
| | cooldown: 120 |
|
||||
| | outputs: {} |
|
||||
| | , scaling_group_names={"SP1": "SP1_group"} |
|
||||
| created_at | 2020-08-12 04:22:35 |
|
||||
| description | sample-tosca-vnfd-scaling |
|
||||
| error_reason | None |
|
||||
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
|
||||
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
|
||||
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
|
||||
| name | vnf-scale |
|
||||
| placement_attr | vim_name=openstack-nfv-vim |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
| updated_at | None |
|
||||
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf show --help
|
||||
usage: openstack vnf show [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
|
||||
[--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<VNF>
|
||||
|
||||
Display VNF details
|
||||
|
||||
positional arguments:
|
||||
<VNF> VNF to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. List VNF resource
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf resource list <VNF: vnf-scale>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+---------------+----------------------------+
|
||||
| ID | Name | Type |
|
||||
+--------------------------------------+---------------+----------------------------+
|
||||
| 4abedc36da294bb0a0fa8aaa7f4c01f4 | SP1_scale_out | OS::Heat::ScalingPolicy |
|
||||
| 0060aff7150d43c5ace293e3cac4552a | SP1_scale_in | OS::Heat::ScalingPolicy |
|
||||
| 141c0279-1dfb-42a3-b947-4caa3765b27f | SP1_group | OS::Heat::AutoScalingGroup |
|
||||
| 9f65c3d6-e5ce-4611-8589-82fab1a32d6e | qf4qc4l6qk7o | SP1_res.yaml |
|
||||
| 9a01d98e-9c01-4e55-ba86-571b61e4ea74 | edilzqp2htvv | SP1_res.yaml |
|
||||
| 0abc3f38-647e-4b47-8376-06d2e56c4217 | VDU2 | OS::Nova::Server |
|
||||
| a6374222-ecbc-4eee-96e6-9fe601807c9d | CP2 | OS::Neutron::Port |
|
||||
| 8d2fc2d9-33ee-440d-9e02-db6083cd5cb6 | VL1 | OS::Neutron::Net |
|
||||
| 84c78850-8a06-41ab-98a7-371224125beb | VDU1 | OS::Nova::Server |
|
||||
| 5462f8c1-3292-44af-8661-39e1a7474859 | CP1 | OS::Neutron::Port |
|
||||
+--------------------------------------+---------------+----------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf resource list --help
|
||||
usage: openstack vnf resource list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
<VNF>
|
||||
|
||||
List resources of a VNF like VDU, CP, etc.
|
||||
|
||||
positional arguments:
|
||||
<VNF> VNF to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
5. Update VNF
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
Create ``vnf-config.yaml``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
vdus:
|
||||
VDU1:
|
||||
config:
|
||||
foo: 'bar'
|
||||
|
||||
|
||||
Update VNF with the config file ``vnf-config.yaml``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf set --config-file vnf-config.yaml <VNF: vnf-scale>
|
||||
|
||||
|
||||
Result (Updating):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
|
||||
| | description: Scaling template |
|
||||
| | resources: |
|
||||
| | CP1: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | CP2: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | VDU1: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP1 |
|
||||
| | VDU2: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP2 |
|
||||
| | VL1: |
|
||||
| | type: OS::Neutron::Net |
|
||||
| | outputs: |
|
||||
| | mgmt_ip-VDU1: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP1 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | mgmt_ip-VDU2: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP2 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | , config=vdus: |
|
||||
| | VDU1: |
|
||||
| | config: |
|
||||
| | foo: bar |
|
||||
| | , heat_template=heat_template_version: 2013-05-23 |
|
||||
| | description: 'sample-tosca-vnfd-scaling |
|
||||
| | |
|
||||
| | ' |
|
||||
| | parameters: {} |
|
||||
| | resources: |
|
||||
| | SP1_scale_out: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: 1 |
|
||||
| | cooldown: 120 |
|
||||
| | SP1_group: |
|
||||
| | type: OS::Heat::AutoScalingGroup |
|
||||
| | properties: |
|
||||
| | min_size: 1 |
|
||||
| | max_size: 3 |
|
||||
| | desired_capacity: 2 |
|
||||
| | cooldown: 120 |
|
||||
| | resource: |
|
||||
| | type: SP1_res.yaml |
|
||||
| | SP1_scale_in: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: -1 |
|
||||
| | cooldown: 120 |
|
||||
| | outputs: {} |
|
||||
| | , scaling_group_names={"SP1": "SP1_group"} |
|
||||
| created_at | 2020-08-12 04:22:35 |
|
||||
| description | sample-tosca-vnfd-scaling |
|
||||
| error_reason | None |
|
||||
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
|
||||
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
|
||||
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
|
||||
| name | vnf-scale |
|
||||
| placement_attr | vim_name=openstack-nfv-vim |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | PENDING_UPDATE |
|
||||
| updated_at | None |
|
||||
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Result (Updated):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
|
||||
| | description: Scaling template |
|
||||
| | resources: |
|
||||
| | CP1: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | CP2: |
|
||||
| | type: OS::Neutron::Port |
|
||||
| | properties: |
|
||||
| | port_security_enabled: false |
|
||||
| | network: net_mgmt |
|
||||
| | VDU1: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP1 |
|
||||
| | VDU2: |
|
||||
| | type: OS::Nova::Server |
|
||||
| | properties: |
|
||||
| | flavor: m1.tiny |
|
||||
| | user_data_format: SOFTWARE_CONFIG |
|
||||
| | availability_zone: nova |
|
||||
| | image: cirros-0.4.0-x86_64-disk |
|
||||
| | config_drive: false |
|
||||
| | networks: |
|
||||
| | - port: |
|
||||
| | get_resource: CP2 |
|
||||
| | VL1: |
|
||||
| | type: OS::Neutron::Net |
|
||||
| | outputs: |
|
||||
| | mgmt_ip-VDU1: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP1 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | mgmt_ip-VDU2: |
|
||||
| | value: |
|
||||
| | get_attr: |
|
||||
| | - CP2 |
|
||||
| | - fixed_ips |
|
||||
| | - 0 |
|
||||
| | - ip_address |
|
||||
| | , config=vdus: |
|
||||
| | VDU1: |
|
||||
| | config: |
|
||||
| | foo: bar |
|
||||
| | , heat_template=heat_template_version: 2013-05-23 |
|
||||
| | description: 'sample-tosca-vnfd-scaling |
|
||||
| | |
|
||||
| | ' |
|
||||
| | parameters: {} |
|
||||
| | resources: |
|
||||
| | SP1_scale_out: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: 1 |
|
||||
| | cooldown: 120 |
|
||||
| | SP1_group: |
|
||||
| | type: OS::Heat::AutoScalingGroup |
|
||||
| | properties: |
|
||||
| | min_size: 1 |
|
||||
| | max_size: 3 |
|
||||
| | desired_capacity: 2 |
|
||||
| | cooldown: 120 |
|
||||
| | resource: |
|
||||
| | type: SP1_res.yaml |
|
||||
| | SP1_scale_in: |
|
||||
| | type: OS::Heat::ScalingPolicy |
|
||||
| | properties: |
|
||||
| | auto_scaling_group_id: |
|
||||
| | get_resource: SP1_group |
|
||||
| | adjustment_type: change_in_capacity |
|
||||
| | scaling_adjustment: -1 |
|
||||
| | cooldown: 120 |
|
||||
| | outputs: {} |
|
||||
| | , scaling_group_names={"SP1": "SP1_group"} |
|
||||
| created_at | 2020-08-12 04:22:35 |
|
||||
| description | sample-tosca-vnfd-scaling |
|
||||
| error_reason | None |
|
||||
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
|
||||
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
|
||||
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
|
||||
| name | vnf-scale |
|
||||
| placement_attr | vim_name=openstack-nfv-vim |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
| updated_at | 2020-08-12 05:06:13 |
|
||||
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
|
||||
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
|
||||
+-----------------+-----------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf set --help
|
||||
usage: openstack vnf set [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
|
||||
[--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width] [--print-empty]
|
||||
(--config-file CONFIG_FILE | --config CONFIG | --param-file PARAM_FILE)
|
||||
<VNF>
|
||||
|
||||
Update a given VNF.
|
||||
|
||||
positional arguments:
|
||||
<VNF> VNF to update (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--config-file CONFIG_FILE
|
||||
YAML file with VNF configuration
|
||||
--config CONFIG YAML data with VNF configuration
|
||||
--param-file PARAM_FILE
|
||||
YAML file with VNF parameter
|
||||
|
||||
|
||||
.. note:: When the update VNF operation executed, Tacker ask Heat to update
|
||||
the stack and the change is reflected immediately, and the VMs may
|
||||
reboot.
|
||||
|
||||
|
||||
6. Scale VNF
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Scale out the VNF:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf scale --scaling-policy-name <SCALING_POLICY_NAME: SP1> \
|
||||
--scaling-type out <VNF: vnf-scale>
|
||||
|
||||
|
||||
Check the VMs scaled out:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack server list
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
| ID | Name | Status | Networks | Image | Flavor |
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
| dfb04024-666c-4b82-94eb-12766851cfb7 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU2-ljontrce3bd7 | ACTIVE | net_mgmt=192.168.120.8 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| e48999e8-5f65-43e4-b8a5-e81e358e2e21 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU1-3dcglaxrwyzl | ACTIVE | net_mgmt=192.168.120.82 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 0abc3f38-647e-4b47-8376-06d2e56c4217 | vn-6okzhe-edilzqp2htvv-ibfssgztffjf-VDU2-43gjj46b2nrr | ACTIVE | net_mgmt=192.168.120.41 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 43840dde-1ec3-4da6-aeab-afca96299a9f | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU2-zd7nq3smgjdr | ACTIVE | net_mgmt=192.168.120.250 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 84c78850-8a06-41ab-98a7-371224125beb | vn-6okzhe-edilzqp2htvv-ibfssgztffjf-VDU1-qvv2vv37f65t | ACTIVE | net_mgmt=192.168.120.92 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 9318b9fe-d655-4088-9910-b5f7481ed059 | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU1-omaexvftqjee | ACTIVE | net_mgmt=192.168.120.69 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
|
||||
|
||||
Scale in the VNF:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf scale --scaling-policy-name <SCALING_POLICY_NAME: SP1> \
|
||||
--scaling-type in <VNF: vnf-scale>
|
||||
|
||||
|
||||
Check the VMs scaled in:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack server list
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
| ID | Name | Status | Networks | Image | Flavor |
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
| dfb04024-666c-4b82-94eb-12766851cfb7 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU2-ljontrce3bd7 | ACTIVE | net_mgmt=192.168.120.8 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| e48999e8-5f65-43e4-b8a5-e81e358e2e21 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU1-3dcglaxrwyzl | ACTIVE | net_mgmt=192.168.120.82 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 43840dde-1ec3-4da6-aeab-afca96299a9f | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU2-zd7nq3smgjdr | ACTIVE | net_mgmt=192.168.120.250 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
| 9318b9fe-d655-4088-9910-b5f7481ed059 | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU1-omaexvftqjee | ACTIVE | net_mgmt=192.168.120.69 | cirros-0.4.0-x86_64-disk | m1.tiny |
|
||||
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf scale --help
|
||||
usage: openstack vnf scale [-h] [--scaling-policy-name SCALING_POLICY_NAME]
|
||||
[--scaling-type SCALING_TYPE]
|
||||
<VNF>
|
||||
|
||||
Scale a VNF.
|
||||
|
||||
positional arguments:
|
||||
<VNF> VNF to scale (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--scaling-policy-name SCALING_POLICY_NAME
|
||||
VNF policy name used to scale
|
||||
--scaling-type SCALING_TYPE
|
||||
VNF scaling type, it could be either "out" or "in"
|
||||
|
||||
|
||||
7. Delete VNFs
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf delete <VNF: vnf-scale>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vnf(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf delete --help
|
||||
usage: openstack vnf delete [-h] [--force] <VNF> [<VNF> ...]
|
||||
|
||||
Delete VNF(s).
|
||||
|
||||
positional arguments:
|
||||
<VNF> VNF(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--force Force delete VNF instance
|
|
@ -0,0 +1,570 @@
|
|||
================================
|
||||
VNF Descriptor (VNFD) Management
|
||||
================================
|
||||
|
||||
The behavioural and deployment information of a VNF in Tacker is defined in a
|
||||
template known as VNF Descriptor (VNFD). The template is based on TOSCA
|
||||
standards and is written in YAML.
|
||||
|
||||
This document describes how to manage VNFD with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
CLI reference for VNFD Management
|
||||
---------------------------------
|
||||
|
||||
1. Create VNF Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Create ``tosca-vnfd-hello-world.yaml`` file:
|
||||
|
||||
* https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnfd/tosca-vnfd-hello-world.yaml
|
||||
|
||||
|
||||
Create a VNFD:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file \
|
||||
tosca-vnfd-hello-world.yaml <NAME: tosca-vnfd-hello-world>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnfd": { |
|
||||
| | "description": "Demo example", |
|
||||
| | "metadata": { |
|
||||
| | "template_name": "sample-tosca-vnfd" |
|
||||
| | }, |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "CP1": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "management": true, |
|
||||
| | "order": 0 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL1" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP2": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 1 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL2" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP3": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 2 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL3" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "VDU1": { |
|
||||
| | "capabilities": { |
|
||||
| | "nfv_compute": { |
|
||||
| | "properties": { |
|
||||
| | "disk_size": "1 GB", |
|
||||
| | "mem_size": "512 MB", |
|
||||
| | "num_cpus": 1 |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "properties": { |
|
||||
| | "availability_zone": "nova", |
|
||||
| | "config": "param0: key1\nparam1: key2\n", |
|
||||
| | "image": "cirros-0.4.0-x86_64-disk", |
|
||||
| | "mgmt_driver": "noop" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
|
||||
| | }, |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net_mgmt", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net0", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL3": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net1", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
| created_at | 2020-08-12 03:28:04.171956 |
|
||||
| description | Demo example |
|
||||
| id | 57f46bdb-c5b5-448e-bf98-df3d7d94038e |
|
||||
| name | tosca-vnfd-hello-world |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| service_types | ['vnfd'] |
|
||||
| template_source | onboarded |
|
||||
| updated_at | None |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --help
|
||||
usage: openstack vnf descriptor create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--tenant-id TENANT_ID]
|
||||
--vnfd-file VNFD_FILE
|
||||
[--description DESCRIPTION]
|
||||
NAME
|
||||
|
||||
Create a new VNFD
|
||||
|
||||
positional arguments:
|
||||
NAME Name for VNFD
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--vnfd-file VNFD_FILE
|
||||
YAML file with VNFD parameters
|
||||
--description DESCRIPTION
|
||||
Set a description for the VNFD
|
||||
|
||||
|
||||
2. List VNF Descriptors
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+------------------------+-----------------+--------------+
|
||||
| ID | Name | Template_Source | Description |
|
||||
+--------------------------------------+------------------------+-----------------+--------------+
|
||||
| 57f46bdb-c5b5-448e-bf98-df3d7d94038e | tosca-vnfd-hello-world | onboarded | Demo example |
|
||||
+--------------------------------------+------------------------+-----------------+--------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor list --help
|
||||
usage: openstack vnf descriptor list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--template-source TEMPLATE_SOURCE]
|
||||
|
||||
List (VNFD)s that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--template-source TEMPLATE_SOURCE
|
||||
List VNFD with specified template source. Available
|
||||
options are 'onboarded' (default), 'inline' or 'all'
|
||||
|
||||
|
||||
3. Show VNF Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor show <VNFD: tosca-vnfd-hello-world>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnfd": { |
|
||||
| | "description": "Demo example", |
|
||||
| | "metadata": { |
|
||||
| | "template_name": "sample-tosca-vnfd" |
|
||||
| | }, |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "CP1": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "management": true, |
|
||||
| | "order": 0 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL1" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP2": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 1 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL2" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP3": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 2 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL3" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "VDU1": { |
|
||||
| | "capabilities": { |
|
||||
| | "nfv_compute": { |
|
||||
| | "properties": { |
|
||||
| | "disk_size": "1 GB", |
|
||||
| | "mem_size": "512 MB", |
|
||||
| | "num_cpus": 1 |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "properties": { |
|
||||
| | "availability_zone": "nova", |
|
||||
| | "config": "param0: key1\nparam1: key2\n", |
|
||||
| | "image": "cirros-0.4.0-x86_64-disk", |
|
||||
| | "mgmt_driver": "noop" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
|
||||
| | }, |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net_mgmt", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net0", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL3": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net1", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
| created_at | 2020-08-12 03:28:04 |
|
||||
| description | Demo example |
|
||||
| id | 57f46bdb-c5b5-448e-bf98-df3d7d94038e |
|
||||
| name | tosca-vnfd-hello-world |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| service_types | ['vnfd'] |
|
||||
| template_source | onboarded |
|
||||
| updated_at | None |
|
||||
+-----------------+---------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor show --help
|
||||
usage: openstack vnf descriptor show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
<VNFD>
|
||||
|
||||
Display VNFD details
|
||||
|
||||
positional arguments:
|
||||
<VNFD> VNFD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. Show VNF Descriptor template
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor template show <VNFD: tosca-vnfd-hello-world>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+------------+---------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+------------+---------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnfd": { |
|
||||
| | "description": "Demo example", |
|
||||
| | "metadata": { |
|
||||
| | "template_name": "sample-tosca-vnfd" |
|
||||
| | }, |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "CP1": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "management": true, |
|
||||
| | "order": 0 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL1" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP2": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 1 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL2" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "CP3": { |
|
||||
| | "properties": { |
|
||||
| | "anti_spoofing_protection": false, |
|
||||
| | "order": 2 |
|
||||
| | }, |
|
||||
| | "requirements": [ |
|
||||
| | { |
|
||||
| | "virtualLink": { |
|
||||
| | "node": "VL3" |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "virtualBinding": { |
|
||||
| | "node": "VDU1" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ], |
|
||||
| | "type": "tosca.nodes.nfv.CP.Tacker" |
|
||||
| | }, |
|
||||
| | "VDU1": { |
|
||||
| | "capabilities": { |
|
||||
| | "nfv_compute": { |
|
||||
| | "properties": { |
|
||||
| | "disk_size": "1 GB", |
|
||||
| | "mem_size": "512 MB", |
|
||||
| | "num_cpus": 1 |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "properties": { |
|
||||
| | "availability_zone": "nova", |
|
||||
| | "config": "param0: key1\nparam1: key2\n", |
|
||||
| | "image": "cirros-0.4.0-x86_64-disk", |
|
||||
| | "mgmt_driver": "noop" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
|
||||
| | }, |
|
||||
| | "VL1": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net_mgmt", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL2": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net0", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | }, |
|
||||
| | "VL3": { |
|
||||
| | "properties": { |
|
||||
| | "network_name": "net1", |
|
||||
| | "vendor": "Tacker" |
|
||||
| | }, |
|
||||
| | "type": "tosca.nodes.nfv.VL" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
|
||||
| | } |
|
||||
| | } |
|
||||
+------------+---------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor template show --help
|
||||
usage: openstack vnf descriptor template show [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
<VNFD>
|
||||
|
||||
Display VNFD Template details
|
||||
|
||||
positional arguments:
|
||||
<VNFD> VNFD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
5. Delete VNF Descriptors
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor delete <VNFD: tosca-vnfd-hello-world>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vnfd(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor delete --help
|
||||
usage: openstack vnf descriptor delete [-h] <VNFD> [<VNFD> ...]
|
||||
|
||||
Delete VNFD(s).
|
||||
|
||||
positional arguments:
|
||||
<VNFD> VNFD(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,573 @@
|
|||
=======================================
|
||||
VNF Forwarding Graph (VNFFG) Management
|
||||
=======================================
|
||||
|
||||
.. TODO(yoshito-ito): Update "Update VNFFG" operation after fixing the bug:
|
||||
* https://bugs.launchpad.net/python-tackerclient/+bug/1892152
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
A default VIM should be registered according to :doc:`./cli-legacy-vim`.
|
||||
|
||||
The following VNFDs are created with the name ``VNFD1`` and ``VNFD2``
|
||||
according to :doc:`./cli-legacy-vnfd`.
|
||||
|
||||
* `tosca-vnffg-vnfd1.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml>`_
|
||||
* `tosca-vnffg-vnfd2.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml>`_
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd1.yaml VNFD1
|
||||
$ openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD2
|
||||
|
||||
|
||||
The VNFs from the created VNFDs are deployed with the name ``VNF1`` and
|
||||
``VNF2`` according to :doc:`./cli-legacy-vnf`.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf create --vnfd-name VNFD1 VNF1
|
||||
$ openstack vnf create --vnfd-name VNFD2 VNF2
|
||||
|
||||
|
||||
CLI reference for VNFFG Management
|
||||
----------------------------------
|
||||
|
||||
1. Create VNF Forwarding Graph
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Check the source port ID ``CP12`` of VNF1:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack port list -c ID -c Name | grep CP12
|
||||
| d4940639-764a-4a62-9b21-6ba2e86498eb | VNF1_4ffb436f-7f2c-4df1-96c4-38e9208261fd-CP12-pj3nwzbv2wt2 |
|
||||
|
||||
|
||||
Create and update `tosca-vnffgd-sample.yaml <https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffgd-sample.yaml>`_:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
(Before)
|
||||
network_src_port_id: 14ad4f29-629f-4b97-8bc8-86e96cb49974
|
||||
|
||||
(After)
|
||||
network_src_port_id: <ID: d4940639-764a-4a62-9b21-6ba2e86498eb>
|
||||
|
||||
|
||||
.. note:: The appropriate port ID should be used according to your environment.
|
||||
|
||||
Create the VNFFGD:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor create --vnffgd-file \
|
||||
tosca-vnffgd-sample.yaml <NAME: tosca-vnffgd-sample>
|
||||
|
||||
|
||||
Create the VNFFG:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph create --vnffgd-name <VNFFGD: tosca-vnffgd-sample> \
|
||||
<NAME: tosca-vnffg-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnffgd": { |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", |
|
||||
| | "description": "Sample VNFFG template", |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "Forwarding_path1": { |
|
||||
| | "type": "tosca.nodes.nfv.FP.TackerV2", |
|
||||
| | "description": "creates path (CP12->CP22)", |
|
||||
| | "properties": { |
|
||||
| | "id": 51, |
|
||||
| | "policy": { |
|
||||
| | "type": "ACL", |
|
||||
| | "criteria": [ |
|
||||
| | { |
|
||||
| | "name": "block_tcp", |
|
||||
| | "classifier": { |
|
||||
| | "network_src_port_id": "d4940639-764a-4a62-9b21-6ba2e86498eb", |
|
||||
| | "destination_port_range": "80-1024", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "path": [ |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD1", |
|
||||
| | "capability": "CP12", |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD2", |
|
||||
| | "capability": "CP22", |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "groups": { |
|
||||
| | "VNFFG1": { |
|
||||
| | "type": "tosca.groups.nfv.VNFFG", |
|
||||
| | "description": "HTTP to Corporate Net", |
|
||||
| | "properties": { |
|
||||
| | "vendor": "tacker", |
|
||||
| | "version": 1.0, |
|
||||
| | "number_of_endpoints": 2, |
|
||||
| | "dependent_virtual_link": [ |
|
||||
| | "VL12", |
|
||||
| | "VL22" |
|
||||
| | ], |
|
||||
| | "connection_point": [ |
|
||||
| | "CP12", |
|
||||
| | "CP22" |
|
||||
| | ], |
|
||||
| | "constituent_vnfs": [ |
|
||||
| | "VNFD1", |
|
||||
| | "VNFD2" |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "members": [ |
|
||||
| | "Forwarding_path1" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "imports": [ |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml", |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| description | Sample VNFFG template |
|
||||
| forwarding_paths | fc518827-eb74-4cd5-972b-943f80720065 |
|
||||
| id | b6669b6a-1a3c-40b6-a8c2-28ce3f0bd9bb |
|
||||
| name | tosca-vnffg-sample |
|
||||
| ns_id | None |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | PENDING_CREATE |
|
||||
| vnf_mapping | VNFD1=4ffb436f-7f2c-4df1-96c4-38e9208261fd, VNFD2=83fb8124-b475-400f-b0eb-f2b6741eeedc |
|
||||
| vnffgd_id | f19a36f9-3768-4846-8972-84960d328156 |
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph create --help
|
||||
usage: openstack vnf graph create [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty] [--tenant-id TENANT_ID]
|
||||
(--vnffgd-id VNFFGD_ID | --vnffgd-name VNFFGD_NAME | --vnffgd-template VNFFGD_TEMPLATE)
|
||||
[--vnf-mapping VNF_MAPPING] [--symmetrical]
|
||||
[--param-file PARAM_FILE]
|
||||
[--description DESCRIPTION]
|
||||
NAME
|
||||
|
||||
Create a new VNFFG.
|
||||
|
||||
positional arguments:
|
||||
NAME Set a name for the VNFFG
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID
|
||||
--vnffgd-id VNFFGD_ID
|
||||
VNFFGD ID to use as template to create VNFFG
|
||||
--vnffgd-name VNFFGD_NAME
|
||||
VNFFGD Name to use as template to create VNFFG
|
||||
--vnffgd-template VNFFGD_TEMPLATE
|
||||
VNFFGD file to create VNFFG
|
||||
--vnf-mapping VNF_MAPPING
|
||||
List of logical VNFD name to VNF instance name
|
||||
mapping. Example: VNF1:my_vnf1,VNF2:my_vnf2
|
||||
--symmetrical Should a reverse path be created for the NFP (True or
|
||||
False)
|
||||
--param-file PARAM_FILE
|
||||
YAML file with specific VNFFG parameters
|
||||
--description DESCRIPTION
|
||||
Set a description for the VNFFG
|
||||
|
||||
|
||||
2. List VNF Forwarding Graphs
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+--------------------+-------+--------------------------------------+--------+
|
||||
| ID | Name | NS ID | VNFFGD ID | Status |
|
||||
+--------------------------------------+--------------------+-------+--------------------------------------+--------+
|
||||
| b6669b6a-1a3c-40b6-a8c2-28ce3f0bd9bb | tosca-vnffg-sample | None | f19a36f9-3768-4846-8972-84960d328156 | ACTIVE |
|
||||
+--------------------------------------+--------------------+-------+--------------------------------------+--------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph list --help
|
||||
usage: openstack vnf graph list [-h] [-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent] [--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN] [--long]
|
||||
|
||||
List VNFFG(s) that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--long List additional fields in output
|
||||
|
||||
output formatters:
|
||||
output formatter options
|
||||
|
||||
-f {csv,json,table,value,yaml}, --format {csv,json,table,value,yaml}
|
||||
the output format, defaults to table
|
||||
-c COLUMN, --column COLUMN
|
||||
specify the column(s) to include, can be repeated to
|
||||
show multiple columns
|
||||
--sort-column SORT_COLUMN
|
||||
specify the column(s) to sort the data (columns
|
||||
specified first have a priority, non-existing columns
|
||||
are ignored), can be repeated
|
||||
|
||||
|
||||
3. Show VNF Forwarding Graph
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph show <VNFFG: tosca-vnffg-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
| attributes | { |
|
||||
| | "vnffgd": { |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", |
|
||||
| | "description": "Sample VNFFG template", |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "Forwarding_path1": { |
|
||||
| | "type": "tosca.nodes.nfv.FP.TackerV2", |
|
||||
| | "description": "creates path (CP12->CP22)", |
|
||||
| | "properties": { |
|
||||
| | "id": 51, |
|
||||
| | "policy": { |
|
||||
| | "type": "ACL", |
|
||||
| | "criteria": [ |
|
||||
| | { |
|
||||
| | "name": "block_tcp", |
|
||||
| | "classifier": { |
|
||||
| | "network_src_port_id": "d4940639-764a-4a62-9b21-6ba2e86498eb", |
|
||||
| | "destination_port_range": "80-1024", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "path": [ |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD1", |
|
||||
| | "capability": "CP12", |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD2", |
|
||||
| | "capability": "CP22", |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "groups": { |
|
||||
| | "VNFFG1": { |
|
||||
| | "type": "tosca.groups.nfv.VNFFG", |
|
||||
| | "description": "HTTP to Corporate Net", |
|
||||
| | "properties": { |
|
||||
| | "vendor": "tacker", |
|
||||
| | "version": 1.0, |
|
||||
| | "number_of_endpoints": 2, |
|
||||
| | "dependent_virtual_link": [ |
|
||||
| | "VL12", |
|
||||
| | "VL22" |
|
||||
| | ], |
|
||||
| | "connection_point": [ |
|
||||
| | "CP12", |
|
||||
| | "CP22" |
|
||||
| | ], |
|
||||
| | "constituent_vnfs": [ |
|
||||
| | "VNFD1", |
|
||||
| | "VNFD2" |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "members": [ |
|
||||
| | "Forwarding_path1" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "imports": [ |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml", |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| description | Sample VNFFG template |
|
||||
| forwarding_paths | fc518827-eb74-4cd5-972b-943f80720065 |
|
||||
| id | b6669b6a-1a3c-40b6-a8c2-28ce3f0bd9bb |
|
||||
| name | tosca-vnffg-sample |
|
||||
| ns_id | None |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| status | ACTIVE |
|
||||
| vnf_mapping | VNFD1=4ffb436f-7f2c-4df1-96c4-38e9208261fd, VNFD2=83fb8124-b475-400f-b0eb-f2b6741eeedc |
|
||||
| vnffgd_id | f19a36f9-3768-4846-8972-84960d328156 |
|
||||
+------------------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph show --help
|
||||
usage: openstack vnf graph show [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
<VNFFG>
|
||||
|
||||
Display VNFFG details
|
||||
|
||||
positional arguments:
|
||||
<VNFFG> VNFFG to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. Update VNF Forwarding Graph
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Create a new VNF ``VNF3`` according to :doc:`./cli-legacy-vnfd` with the
|
||||
following template:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
|
||||
|
||||
description: Demo example
|
||||
|
||||
metadata:
|
||||
template_name: sample-tosca-vnfd3
|
||||
|
||||
topology_template:
|
||||
node_templates:
|
||||
VDU1:
|
||||
type: tosca.nodes.nfv.VDU.Tacker
|
||||
capabilities:
|
||||
nfv_compute:
|
||||
properties:
|
||||
num_cpus: 1
|
||||
mem_size: 512 MB
|
||||
disk_size: 1 GB
|
||||
properties:
|
||||
image: cirros-0.4.0-x86_64-disk
|
||||
availability_zone: nova
|
||||
mgmt_driver: noop
|
||||
config: |
|
||||
param0: key1
|
||||
param1: key2
|
||||
user_data_format: RAW
|
||||
user_data: |
|
||||
#!/bin/sh
|
||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
cat << EOF >> /etc/network/interfaces
|
||||
auto eth1
|
||||
iface eth1 inet dhcp
|
||||
auto eth2
|
||||
iface eth2 inet dhcp
|
||||
EOF
|
||||
ifup eth1
|
||||
ifup eth2
|
||||
|
||||
CP31:
|
||||
type: tosca.nodes.nfv.CP.Tacker
|
||||
properties:
|
||||
management: true
|
||||
order: 0
|
||||
anti_spoofing_protection: false
|
||||
requirements:
|
||||
- virtualLink:
|
||||
node: VL31
|
||||
- virtualBinding:
|
||||
node: VDU1
|
||||
|
||||
CP32:
|
||||
type: tosca.nodes.nfv.CP.Tacker
|
||||
properties:
|
||||
order: 1
|
||||
anti_spoofing_protection: false
|
||||
requirements:
|
||||
- virtualLink:
|
||||
node: VL32
|
||||
- virtualBinding:
|
||||
node: VDU1
|
||||
|
||||
CP33:
|
||||
type: tosca.nodes.nfv.CP.Tacker
|
||||
properties:
|
||||
order: 2
|
||||
anti_spoofing_protection: false
|
||||
requirements:
|
||||
- virtualLink:
|
||||
node: VL33
|
||||
- virtualBinding:
|
||||
node: VDU1
|
||||
|
||||
VL31:
|
||||
type: tosca.nodes.nfv.VL
|
||||
properties:
|
||||
network_name: net_mgmt
|
||||
vendor: Tacker
|
||||
|
||||
VL32:
|
||||
type: tosca.nodes.nfv.VL
|
||||
properties:
|
||||
network_name: net0
|
||||
vendor: Tacker
|
||||
|
||||
VL33:
|
||||
type: tosca.nodes.nfv.VL
|
||||
properties:
|
||||
network_name: net1
|
||||
vendor: Tacker
|
||||
|
||||
|
||||
Create the VNFD and VNF:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack vnf descriptor create --vnfd-file tosca-vnffg-vnfd2.yaml VNFD3
|
||||
openstack vnf create --vnfd-name VNFD3 VNF3
|
||||
|
||||
Create the updated VNFD file ``tosca-vnffgd-sample-update.yaml``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
VNFD2 -> VNFD3
|
||||
CP22 -> CP32
|
||||
VL22 -> VL32
|
||||
|
||||
|
||||
Update the VNFFG:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph set --vnffgd-template tosca-vnffgd-sample-update.yaml \
|
||||
--description <DESCRIPTION: 'New description for Sample VNFFG template'> \
|
||||
<VNFFG: tosca-vnffg-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
'Namespace' object has no attribute 'param_file'
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph set --help
|
||||
usage: openstack vnf graph set [-h] [-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent] [--prefix PREFIX]
|
||||
[--max-width <integer>] [--fit-width]
|
||||
[--print-empty]
|
||||
[--vnffgd-template VNFFGD_TEMPLATE]
|
||||
[--vnf-mapping VNF_MAPPING] [--symmetrical]
|
||||
[--description DESCRIPTION]
|
||||
<VNFFG>
|
||||
|
||||
Update VNFFG.
|
||||
|
||||
positional arguments:
|
||||
<VNFFG> VNFFG to update (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--vnffgd-template VNFFGD_TEMPLATE
|
||||
VNFFGD file to update VNFFG
|
||||
--vnf-mapping VNF_MAPPING
|
||||
List of logical VNFD name to VNF instance name
|
||||
mapping. Example: VNF1:my_vnf1,VNF2:my_vnf2
|
||||
--symmetrical Should a reverse path be created for the NFP
|
||||
--description DESCRIPTION
|
||||
Set a description for the VNFFG
|
||||
|
||||
|
||||
5. Delete VNF Forwarding Graph
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph delete <VNFFG: tosca-vnffg-sample>
|
||||
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vnffg(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph delete --help
|
||||
usage: openstack vnf graph delete [-h] <VNFFG> [<VNFFG> ...]
|
||||
|
||||
Delete VNFFG(s).
|
||||
|
||||
positional arguments:
|
||||
<VNFFG> VNFFG(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -0,0 +1,460 @@
|
|||
===================================================
|
||||
VNF Forwarding Graph Descriptor (VNFFGD) Management
|
||||
===================================================
|
||||
|
||||
VNF Forwarding Graph (VNFFG) feature in Tacker is used to orchestrate and
|
||||
manage traffic through VNFs. In short, abstract VNFFG TOSCA definitions are
|
||||
rendered into Service Function Chains (SFCs) and Classifiers. The SFC makes up
|
||||
an ordered list of VNFs for traffic to traverse, while the classifier decides
|
||||
which traffic should go through them. Similar to how VNFs are described by
|
||||
VNFDs, VNFFGs are described by VNF Forwarding Graph Descriptors (VNFFGD).
|
||||
|
||||
This document describes how to manage VNFFGD with CLI in Tacker.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
The following packages should be installed:
|
||||
|
||||
* tacker
|
||||
* python-tackerclient
|
||||
|
||||
CLI reference for VNFFGD Management
|
||||
-----------------------------------
|
||||
|
||||
1. Create VNF Forwarding Graph Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Create ``tosca-vnffgd-sample.yaml`` file:
|
||||
|
||||
* https://opendev.org/openstack/tacker/src/branch/master/samples/tosca-templates/vnffgd/tosca-vnffgd-sample.yaml
|
||||
|
||||
Create a VNFFGD:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor create --vnffgd-file \
|
||||
tosca-vnffgd-sample.yaml <NAME: tosca-vnffgd-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
| description | Sample VNFFG template |
|
||||
| id | 81d9cc7a-674d-463d-ad3d-95640e388b20 |
|
||||
| name | tosca-vnffgd-sample |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| template | { |
|
||||
| | "vnffgd": { |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", |
|
||||
| | "description": "Sample VNFFG template", |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "Forwarding_path1": { |
|
||||
| | "type": "tosca.nodes.nfv.FP.TackerV2", |
|
||||
| | "description": "creates path (CP12->CP22)", |
|
||||
| | "properties": { |
|
||||
| | "id": 51, |
|
||||
| | "policy": { |
|
||||
| | "type": "ACL", |
|
||||
| | "criteria": [ |
|
||||
| | { |
|
||||
| | "name": "block_tcp", |
|
||||
| | "classifier": { |
|
||||
| | "network_src_port_id": "14ad4f29-629f-4b97-8bc8-86e96cb49974", |
|
||||
| | "destination_port_range": "80-1024", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "path": [ |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD1", |
|
||||
| | "capability": "CP12", |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD2", |
|
||||
| | "capability": "CP22", |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "groups": { |
|
||||
| | "VNFFG1": { |
|
||||
| | "type": "tosca.groups.nfv.VNFFG", |
|
||||
| | "description": "HTTP to Corporate Net", |
|
||||
| | "properties": { |
|
||||
| | "vendor": "tacker", |
|
||||
| | "version": 1.0, |
|
||||
| | "number_of_endpoints": 2, |
|
||||
| | "dependent_virtual_link": [ |
|
||||
| | "VL12", |
|
||||
| | "VL22" |
|
||||
| | ], |
|
||||
| | "connection_point": [ |
|
||||
| | "CP12", |
|
||||
| | "CP22" |
|
||||
| | ], |
|
||||
| | "constituent_vnfs": [ |
|
||||
| | "VNFD1", |
|
||||
| | "VNFD2" |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "members": [ |
|
||||
| | "Forwarding_path1" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "imports": [ |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml", |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| template_source | onboarded |
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor create --help
|
||||
usage: openstack vnf graph descriptor create [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--tenant-id TENANT_ID]
|
||||
--vnffgd-file VNFFGD_FILE
|
||||
[--description DESCRIPTION]
|
||||
NAME
|
||||
|
||||
Create a new VNFFGD
|
||||
|
||||
positional arguments:
|
||||
NAME Name for VNFFGD
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--tenant-id TENANT_ID
|
||||
The owner tenant ID or project ID
|
||||
--vnffgd-file VNFFGD_FILE
|
||||
YAML file with VNFFGD parameters
|
||||
--description DESCRIPTION
|
||||
Set a description for the VNFFGD
|
||||
|
||||
|
||||
2. List VNF Forwarding Graph Descriptors
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor list
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+--------------------------------------+---------------------+-----------------+-----------------------+
|
||||
| ID | Name | Template_Source | Description |
|
||||
+--------------------------------------+---------------------+-----------------+-----------------------+
|
||||
| 81d9cc7a-674d-463d-ad3d-95640e388b20 | tosca-vnffgd-sample | onboarded | Sample VNFFG template |
|
||||
+--------------------------------------+---------------------+-----------------+-----------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor list --help
|
||||
usage: openstack vnf graph descriptor list [-h]
|
||||
[-f {csv,json,table,value,yaml}]
|
||||
[-c COLUMN]
|
||||
[--quote {all,minimal,none,nonnumeric}]
|
||||
[--noindent]
|
||||
[--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
[--sort-column SORT_COLUMN]
|
||||
[--template-source TEMPLATE_SOURCE]
|
||||
|
||||
List (VNFFGD)s that belong to a given tenant.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--template-source TEMPLATE_SOURCE
|
||||
List VNFFGD with specified template source. Available
|
||||
options are 'onboarded' (default), 'inline' or 'all'
|
||||
|
||||
|
||||
3. Show VNF Forwarding Graph Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor show <VNFFGD: tosca-vnffgd-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
| description | Sample VNFFG template |
|
||||
| id | 81d9cc7a-674d-463d-ad3d-95640e388b20 |
|
||||
| name | tosca-vnffgd-sample |
|
||||
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
|
||||
| template | { |
|
||||
| | "vnffgd": { |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", |
|
||||
| | "description": "Sample VNFFG template", |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "Forwarding_path1": { |
|
||||
| | "type": "tosca.nodes.nfv.FP.TackerV2", |
|
||||
| | "description": "creates path (CP12->CP22)", |
|
||||
| | "properties": { |
|
||||
| | "id": 51, |
|
||||
| | "policy": { |
|
||||
| | "type": "ACL", |
|
||||
| | "criteria": [ |
|
||||
| | { |
|
||||
| | "name": "block_tcp", |
|
||||
| | "classifier": { |
|
||||
| | "network_src_port_id": "14ad4f29-629f-4b97-8bc8-86e96cb49974", |
|
||||
| | "destination_port_range": "80-1024", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "path": [ |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD1", |
|
||||
| | "capability": "CP12", |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD2", |
|
||||
| | "capability": "CP22", |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "groups": { |
|
||||
| | "VNFFG1": { |
|
||||
| | "type": "tosca.groups.nfv.VNFFG", |
|
||||
| | "description": "HTTP to Corporate Net", |
|
||||
| | "properties": { |
|
||||
| | "vendor": "tacker", |
|
||||
| | "version": 1.0, |
|
||||
| | "number_of_endpoints": 2, |
|
||||
| | "dependent_virtual_link": [ |
|
||||
| | "VL12", |
|
||||
| | "VL22" |
|
||||
| | ], |
|
||||
| | "connection_point": [ |
|
||||
| | "CP12", |
|
||||
| | "CP22" |
|
||||
| | ], |
|
||||
| | "constituent_vnfs": [ |
|
||||
| | "VNFD1", |
|
||||
| | "VNFD2" |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "members": [ |
|
||||
| | "Forwarding_path1" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "imports": [ |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml", |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| template_source | onboarded |
|
||||
+-----------------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor show --help
|
||||
usage: openstack vnf graph descriptor show [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width] [--print-empty]
|
||||
<VNFFGD>
|
||||
|
||||
Display VNFFGD details
|
||||
|
||||
positional arguments:
|
||||
<VNFFGD> VNFFGD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
4. Show template VNF Forwarding Graph Descriptor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor template show <VNFFGD: tosca-vnffgd-sample>
|
||||
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+----------+--------------------------------------------------------------------------------------------------------+
|
||||
| Field | Value |
|
||||
+----------+--------------------------------------------------------------------------------------------------------+
|
||||
| template | { |
|
||||
| | "vnffgd": { |
|
||||
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", |
|
||||
| | "description": "Sample VNFFG template", |
|
||||
| | "topology_template": { |
|
||||
| | "node_templates": { |
|
||||
| | "Forwarding_path1": { |
|
||||
| | "type": "tosca.nodes.nfv.FP.TackerV2", |
|
||||
| | "description": "creates path (CP12->CP22)", |
|
||||
| | "properties": { |
|
||||
| | "id": 51, |
|
||||
| | "policy": { |
|
||||
| | "type": "ACL", |
|
||||
| | "criteria": [ |
|
||||
| | { |
|
||||
| | "name": "block_tcp", |
|
||||
| | "classifier": { |
|
||||
| | "network_src_port_id": "14ad4f29-629f-4b97-8bc8-86e96cb49974", |
|
||||
| | "destination_port_range": "80-1024", |
|
||||
| | "ip_proto": 6, |
|
||||
| | "ip_dst_prefix": "10.10.0.5/24" |
|
||||
| | } |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "path": [ |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD1", |
|
||||
| | "capability": "CP12", |
|
||||
| | "sfc_encap": true |
|
||||
| | }, |
|
||||
| | { |
|
||||
| | "forwarder": "VNFD2", |
|
||||
| | "capability": "CP22", |
|
||||
| | "sfc_encap": true |
|
||||
| | } |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "groups": { |
|
||||
| | "VNFFG1": { |
|
||||
| | "type": "tosca.groups.nfv.VNFFG", |
|
||||
| | "description": "HTTP to Corporate Net", |
|
||||
| | "properties": { |
|
||||
| | "vendor": "tacker", |
|
||||
| | "version": 1.0, |
|
||||
| | "number_of_endpoints": 2, |
|
||||
| | "dependent_virtual_link": [ |
|
||||
| | "VL12", |
|
||||
| | "VL22" |
|
||||
| | ], |
|
||||
| | "connection_point": [ |
|
||||
| | "CP12", |
|
||||
| | "CP22" |
|
||||
| | ], |
|
||||
| | "constituent_vnfs": [ |
|
||||
| | "VNFD1", |
|
||||
| | "VNFD2" |
|
||||
| | ] |
|
||||
| | }, |
|
||||
| | "members": [ |
|
||||
| | "Forwarding_path1" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
| | }, |
|
||||
| | "imports": [ |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml", |
|
||||
| | "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml" |
|
||||
| | ] |
|
||||
| | } |
|
||||
| | } |
|
||||
+----------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor template show --help
|
||||
usage: openstack vnf graph descriptor template show [-h]
|
||||
[-f {json,shell,table,value,yaml}]
|
||||
[-c COLUMN] [--noindent]
|
||||
[--prefix PREFIX]
|
||||
[--max-width <integer>]
|
||||
[--fit-width]
|
||||
[--print-empty]
|
||||
<VNFFGD>
|
||||
|
||||
Display VNFFGD Template details
|
||||
|
||||
positional arguments:
|
||||
<VNFFGD> VNFFGD to display (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
|
||||
5. Delete VNF Forwarding Graph Descriptors
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor delete <VNFFGD: tosca-vnffgd-sample>
|
||||
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
All specified vnffgd(s) deleted successfully
|
||||
|
||||
|
||||
Help:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnf graph descriptor delete --help
|
||||
usage: openstack vnf graph descriptor delete [-h] <VNFFGD> [<VNFFGD> ...]
|
||||
|
||||
Delete VNFFGD(s).
|
||||
|
||||
positional arguments:
|
||||
<VNFFGD> VNFFGD(s) to delete (name or ID)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
|
@ -12,16 +12,48 @@
|
|||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
========================
|
||||
Tacker CLI Documentation
|
||||
========================
|
||||
================================
|
||||
Command-Line Interface Reference
|
||||
================================
|
||||
|
||||
In this section you will find information on Tacker’s command line
|
||||
interface.
|
||||
Operations for ETSI NFV-SOL implementation
|
||||
------------------------------------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
tacker-status
|
||||
cli-etsi-vnfpkgm
|
||||
cli-etsi-vnflcm
|
||||
|
||||
|
||||
Operations for Legacy implementation
|
||||
------------------------------------
|
||||
|
||||
.. toctree::
|
||||
|
||||
cli-legacy-vim
|
||||
cli-legacy-vnfd
|
||||
cli-legacy-vnf
|
||||
cli-legacy-vnffgd
|
||||
cli-legacy-vnffg
|
||||
cli-legacy-sfc
|
||||
cli-legacy-fc
|
||||
cli-legacy-nfp
|
||||
cli-legacy-nsd
|
||||
cli-legacy-event
|
||||
|
||||
.. TODO(yoshito-ito): update vnffg after fixing CLI bug:
|
||||
* https://bugs.launchpad.net/python-tackerclient/+bug/1892152
|
||||
cli-legacy-vnffg
|
||||
|
||||
.. TODO(yoshito-ito): add ns after confirming ns operations
|
||||
* https://bugs.launchpad.net/tacker/+bug/1892144
|
||||
cli-legacy-ns
|
||||
|
||||
Other operations
|
||||
----------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
tacker-status
|
||||
|
|
Loading…
Reference in New Issue