Add VNF package sample for practical use cases

This specification describes features of the VNF package we aim to add.
In this package, use cases listed below will be supported.

1) use multiple deployment flavours
2) deploy VNF connected to external network
3) deploy VNF as HA cluster
4) deploy scalable VNF
5) configure VNF with an ansible memt driver

Change-Id: I5de450881e8cf2423e0b1254229b95649896541a
Implements: blueprint add-vnf-package-sample-for-practical-use-cases
This commit is contained in:
Masaki Oyama 2021-10-19 01:49:13 +00:00
parent 1ef1646d2a
commit bfe22c0486

View File

@ -0,0 +1,226 @@
==============================================
Add VNF package sample for practical use cases
==============================================
https://blueprints.launchpad.net/tacker/+spec/add-vnf-package-sample-for-practical-use-cases
This specification describes features of the VNF package we aim to add.
In this package, use cases listed below will be supported.
- use multiple deployment flavours
- deploy VNF connected to an external network
- deploy VNF as HA cluster
- deploy scalable VNF
- configure VNF with an ansible mgmt driver
Problem description
===================
There are some samples in current tacker repository, but these represent
a simple structure and not for users who want to deploy complicated VNF used in
a practical environment.
Therefore, it is important to add a VNF package sample in order to help them
know how to deploy VNF required in practical use cases.
Proposed change
===============
We aim to add a VNF package as a sample and explain
how to use it in documentation.
The diagram below shows the structure of VNFD used in this sample package.
::
+-------------------------------------------------------------------------------------------------------------------------------------------------+
| VNFD |
| |
| +----------------------------+ +----------------------------------------------------------------------------------------------------+ |
| | Deployment flavour: ha | | Deployment flavour: scalable | |
| | +---------+ +---------+ | | |------------------------------+ +------------------------------+ +------------------------------+ | |
| | | VDU0 | | VDU1 | | | | VDU0 | | VDU1 | | VDU2 | | |
| | | | | | | | | properties: | | properties: | | properties: | | |
| | | | | | | | | vdu_profile: | | vdu_profile: | | vdu_profile: | | |
| | | | | | | | | min_num_of_instance:1 | | min_num_of_instance:0 | | min_num_of_instance:0 | | |
| | +------+--+ +--+------+ | | | max_num_of_instance:1 | | max_num_of_instance:1 | | max_num_of_instance:1 | | |
| | |\ /| | | +------+--------------+--------+ +------+--------------+--------+ +------+--------------+--------+ | |
| | | \ / | | | | | | | | | | |
| | | \ / | | | | | | | | | | |
| | | +vip| | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | int net | | | | | | | | int net | |
| | ------+---+---+------- | | ----+--------------|-----------------+--------------|-----------------+--------------|------- | |
| | | | | | | | | | | |
| +---------|---|---|----------+ +-----------------------|--------------------------------|--------------------------------|----------+ |
| | | | | | | |
| | | | | | | |
+--------------|---|---|---------------------------------------|--------------------------------|--------------------------------|----------------+
| | | | | |
| | | ext net | | | ext net
----+---+---+--------- ---------+--------------------------------+--------------------------------+-------
The package and documentation support the following use cases.
1) Use multiple deployment flavours:
------------------------------------
The sample has multiple deployment flavours,
and each defines different topologies of VNF.
As in the diagram above, the deployment flavour of ha
and scalable are defined.
Users can easily try deploying different type of VNF by using this sample
and can learn about the following things.
- structure of a VNF package supporting multiple deployment flavours.
- how to write VNF descriptor and Heat template in each deployment flavour.
- how to designate deployment flavour in a request.
2) Deploy VNF connected to external network:
--------------------------------------------
The sample has VNF that has a connection to an external network and
has fixed ip addresses assigned to its CPs.
As in the diagram above, the VDU0 in the deployment flavour of scalable
has the CP connected to the external network of ext net.
Users can easily try deploying VNF connected to an external network
by using this sample and can learn about the following things.
- how to write VNF descriptor and Heat template
that have connections to both internal and external networks.
- how to write VNF descriptor and Heat template
that have fixed ip addresses assigned to its CPs.
- how to pass parameters about an external network in a request.
3) Deploy VNF as HA cluster:
----------------------------
The sample has VNF that has a vip shared by VDUs.
As in the diagram above, the deployment flavour of ha defines the vip
shared by the VDU0 and VDU1.
Users can easily try deploying VNF as HA cluster by using this sample
and can learn about the following things.
- how to write VNF descriptor and Heat template
that have a vip shared by multiple VDUs.
- how to pass parameters about vip in a request.
4) Deploy scalable VNF:
-----------------------
The sample has VNF that has scalable VDUs and each VDU has
fixed ip addresses.
As in the diagram above, the deployment flavour of scalable defines
the VDUs whose number of instances can be 0 or 1.
Users can easily try deploying scalable VNF by using this sample
and can learn about the following things.
- how to write VNF descriptor and Heat template
that have scalable VDUs and have fixed ip addresses assigned to the VDUs.
- how to designate the initial number of VDUs.
- how to designate the number of the VDUs in a scale request.
- how to designate the information about the CPs binding to the VDU
designed not to be created until scale operation is excuted.
5) Configure VNF with an ansible mgmt driver
--------------------------------------------
The sample uses an ansible mgmt driver to configure VNF.
Users can learn about the following things.
- structure of VNF package supporting an ansible mgmt driver.
- how to write scripts using an ansible mgmt dirver.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Upgrade impact
--------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
Masaki Oyama <ma-ooyama@kddi.com>
Work Items
----------
* Create VNF package
* Write documentation to explain how to use the sample
Dependencies
============
None
Testing
=======
None
Documentation Impact
====================
User guide will be modified to explain how to use the sample.
References
==========
None
History
=======
None