LCM operation with user data¶
This spec describes LCM operation method using LCM operation user data.
In Tacker, consumer uses VNFD in order to manage and orchestrate network services and virtualized resources on the NFVI. However, depending on VNF type, there are more requirements than can be described in current VNFD. it is limited to describe specific VNF deployment information in the VNFD compared with actual commercial use case.
Here are examples of actual use cases.
Operators must design CPU pinning assignments at the physical level.
Depending on the VNF type, a operator may want to attach external storage instead of Cinder.
Operators can modify the high availability design of VNF depending on the availability of VIM/NFVI.
Current standardization [sol001] does not support describing those configurations in VNFD. On the other hand, in a real complex use case, VIM and NFVI configuration described above must be considered. This proposed method realizes that HOT can be described more flexibly and consumer can execute VNF deployment that meets specific requirements.
This methodology is under discussion within ETSI ISG NFV. The specification can be modified according to standardization [sol014].
The scope of this spec focuses on: designing LCM operation method using LCM operation user data. Consumer provides the choice of input parameters for HOT. in this method, consumer provides contents described below to Tacker via VNF Package:
Base HOT: Native cloud orchestration template, HOT in this context, which is commonly used for LCM operations in different VNFs. This base HOT can work on OpenStack API and be filled by input parameters.
LCM operation user data: A script that returns key/value data as Heat input parameters used for base HOT. As Heat input parameter, OpenStack parameters that are not statically defined in the VNFD.(E.g. flavors, images, hardware acceleration, driver-setup, etc.) can be assigned.
Instantiation procedure with LCM operation user data¶
As an example, VNF instantiation procedure using LCM operation user data is described below.
Instantiating VNF, as illustrated in above sequence diagram, consists of following steps.
Consumer sends VNF instantiation request through Instantiate VNF API Request. In this term, VNF package including base HOT, LCM operation user data, and VNFD has already been uploaded in Tacker.
There is a decision-making process to choose instantiation method. Tacker will check the value of “additionalParam”, one of attributes in InstantiateVNFRequest API, and decide which LCM method should be executed. If there is a flag regarding LCM operation user data, for exmaple -additionalParam “lcm-operation-user-data:file_name.py lcm-operation-user-data-class:class_name”, Tacker proceed VNF instantiation with LCM operation user data as described below. If not, Tacker proceed it with Tosca-parser and Heat-translator supported in current OpenStack.
Tacker will get VNFD, parameter LCM operation user data, and base HOT from VNF package.
Tacker creates an image file and Flavor and get Ids. According to ETSI NFV document [sol003], the creation of images and flavors are executed by NFVO plugin. In this proposal, Tacker as VNFM handle these operation instead of NFVO because these features will not be introduced in Ussuri version of Tacker.
Tacker runs LCM operation user data with ImageId and FlavorId to extract Heat input parameters from VNFD, VNF Instantiation Request body, and Response of Granting from NFVO.
External network information can be extracted from InstatiateVNFRequest API and passed on as a program arguments.
According to ETSI NFV documents, Image Id and Flavor Id are passed from NFVO with Responce of Grant API. In this proposal, Tacker as VNFM handle these Ids instead of NFVO because Grant API will not be introduced in Ussuri version of Tacker.
Tacker creates stack with Heat input parameters and base HOT.
Though LCM operation user data contains parameter mappings for different LCM operation such as VNF update, VNF instantiation can be supported in this release.
Since the current VNF instantiation by Tacker with Tosca Parser / Heat translator and the proposed method are common in creating a HOT using VNFD, this proposal is only an optional method. In case there is a special requirement for VNF in addition to the contents described in VNFD, it is appropriate that the proposed method is able to describe the HOT more flexibly.
Data model impact¶
REST API impact¶
This proposed function will be utilized with new LCM API proposed in other spec [nfv_api_spec].
Other end user impact¶
Consumer has to create parameter LCM operation user data and Base HOT.
Other deployer impact¶
Implement decision-making process to choose LCM method
Implement runtime environment for parameter LCM operation user data
Implement Unit and functional tests
This methodology will work with upcoming development for LCM API [lcmapi_spec].
VNF instantiation with LCM operation user data