1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
4 NS LCM Guide Using VF-C
5 -----------------------
7 VF-C supports vCPE use case in R3, all VNFs are deployed through VF-C GVNFM .
8 This page describes how to use VF-C to instantiate NS
10 Before you try, please prepare two csar file:
15 If you don't have any csar, you can download the simple csar from https://wiki.onap.org/display/DW/VF-C+User+Guide
20 VF-C components can run as docker, docker service should be installed before install VF-C components.
22 The following scripts show the docker service install commands in centos7.
27 systemctl enable docker.service
28 systemctl start docker.service
35 If you want to try VF-C, the small project set should include: VF-C , Multicloud, MSB, A&AI.
37 VF-C components need to register to MSB when starting, so MSB components should be installed first.
39 .. ,you can refer the following link to install MSB.
40 .. http://onap.readthedocs.io/en/latest/submodules/msb/apigateway.git/docs/platform/installation.html
42 Note: In the following steps, we use ${MSB_IP} as the IP of msb_apigateway component.
44 1. Install vfc-nfvo-db component
48 docker run -d -p 3306:3306 -p 6379:6379 --name vfc-db -v /var/lib/mysql nexus3.onap.org:10001/onap/vfc/db
49 we use ${VFC_DB_IP} as the IP of vfc-db component.
51 2. Install vfc-nfvo-lcm component.
55 docker run -d -p 8403:8403 --name vfc-nslcm -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306
56 nexus3.onap.org:10001/onap/vfc/nslcm
58 3. Install modeling-etsicatalog component.
62 docker run -d -p 8806:8806 --name vfc-etsicatalog -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/catalog
64 4. Install vfc-nfvo-gvnfmdriver component.
68 docker run -d -p 8484:8484 --name vfc-gvnfmdriver -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/gvnfmdriver
70 5. Install vfc-gvnfm-vnflcm component.
74 docker run -d -p 8801:8801 --name vfc-vnflcm -e MSB_ADDR=${MSB_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnflcm
81 Before we instantiate a service, we need to register vim and vnfm which is used to deploy vnfs.
87 .. |image1| image:: vim.png
94 For VF-C, because we use GVNFM to deploy vnfs , so you can register GVNFM in esr gui as follows:
98 .. |image2| image:: gvnfm.png
104 a. type should be gvnfmdriver which is the same with gvnfmdriver microservice.
105 b. url is the msb-iag NodeIp:port.
106 c. vim corresponds to cloudowner_cloudregionid which registered in step1.
112 VF-C R3 support VNF/PNF/NS csar package upload from local csar file. VNF/PNF csar package should be uploaded first, then NS csar package can be uploaded.
113 Before onboarding a package, should create one record first.
116 1. Create VNF package record in catalog DB
122 http://172.30.3.104:30280/api/vnfpkgm/v1/vnf_packages \
124 -H 'Postman-Token: f9c45dea-b7bb-4acd-89e1-b9b1c3d70d8a' \
125 -H 'accept: application/json' \
126 -H 'cache-control: no-cache' \
127 -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
128 -F 'userDefinedData= "key2": "value2"'
131 a. 172.30.3.104:30280 is the node IP and exposed port where the msb-iag pod is located.
132 b. userDefinedData is the key value pair which defined for the vnf package we created
134 2. Upload VNF package to VF-C catalog
139 http://172.30.3.104:30280/api/vnfpkgm/v1/vnf_packages/38037a12-a0d4-4aa4-ac50-cd6b05ce0b24/package_content \
140 -H 'Postman-Token: 88ada218-86fd-4cd7-a06e-cc462f5df651' \
141 -H 'cache-control: no-cache'
142 -H 'accept: application/json' \
143 -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
144 -F 'file=@C:\ONAP\Integration\R3\vCPE\vnf-vsn.csar'
147 a. 38037a12-a0d4-4aa4-ac50-cd6b05ce0b24 is the vnf_pkg_id which we get from the first step.
148 b. -F is used to specify the local vnf package file
150 3. Create NS package record in catalog DB
156 http://172.30.3.104:30280/api/nsd/v1/ns_descriptors \
157 -H 'Postman-Token: 71b11910-1708-471c-84bb-5b0dd8d214a2' \
158 -H 'accept: application/json' \
159 -H 'cache-control: no-cache' \
160 -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
161 -F 'userDefinedData= "key1": "value1"'
164 a. userDefinedData is the key value pair which defined for the ns package we created
166 4. Upload NS package to VF-C catalog
171 http://172.30.3.104:30280/api/nsd/v1/ns_descriptors/79ca81ec-10e0-44e4-bc85-ba968f345711/nsd_content \
172 -H 'Postman-Token: f16e4a54-a514-4878-b307-9b80c630166e' \
173 -H 'cache-control: no-cache'
174 -H 'accept: application/json' \
175 -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
176 -F 'file=@C:\ONAP\Integration\R3\vCPE\ns.csar'
179 a. -F is used to specify the local ns package file
182 NS Life Cycle Management
183 ++++++++++++++++++++++++
186 Currently VF-C GVNFM support NS create/Instantiate/terminate/delete/heal.
188 VF-C R3 healing only suport restart a vm of an VNF.
195 http://172.30.3.104:30280/api/nslcm/v1/ns \
196 -H 'Postman-Token: 27e2c576-2d9b-4753-a6b0-6262a4a7ec86' \
197 -H 'accept: application/json' \
198 -H 'cache-control: no-cache' \
199 -H 'content-type: application/json' \
202 "globalCustomerId": "global-customer-id-test1",
203 "serviceType": "service-type-test1"
205 "csarId": "79ca81ec-10e0-44e4-bc85-ba968f345711",
207 "description": "description"
211 a. globalCustomerId and serviceType is defined in A&AI.
212 b. csar Id is the NS package id which is consistent with the catalog ns package id.
213 c. nsName is the NS name
220 http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/instantiate \
221 -H 'Postman-Token: 2a9542b2-3364-4a40-8513-45e10b8ca2ce' \
222 -H 'accept: application/json' \
223 -H 'cache-control: no-cache' \
224 -H 'content-type: application/json' \
226 "additionalParamForNs": {
227 "sdnControllerId": "2"
229 "locationConstraints": [{
230 "vnfProfileId": "45711f40-3f43-415b-bb45-46e5c6940735",
231 "locationConstraints": {
232 "vimId": "CPE-DC_RegionOne"
238 a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
239 b. locationConstraints is an array which contains all the vnfs included under NS locationConstraints is used to define the VIM( cloudOwner_cloudRegionId) that the VNF will be deployed vnfProfileId is the vnf descriptor id which defined in NS template under node_templates .
244 .. |image3| image:: image2018-12-10_12-1-36.png
248 c. before instantiate, you should create one volumntype which called root.
255 http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/heal \
256 -H 'Content-Type: application/json' \
257 -H 'Postman-Token: f18754b8-ed68-43b0-ae55-b8b8780e5c6a' \
258 -H 'accept: application/json' \
259 -H 'cache-control: no-cache' \
260 -d '{ "vnfInstanceId": "044b705c-e44d-4733-ab64-987f46d9b567",
261 "cause": "restartvm",
262 "additionalParams": {
263 "action": "restartvm",
265 "vmid": "1623cd25-ae6f-4880-8132-15914367e47b",
267 "vmname": "1623cd25-ae6f-4880-8132-15914367e47b"
272 a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
273 b. "vnfInstanceId": "044b705c-e44d-4733-ab64-987f46d9b567" is the VNF instanceId, we can get this from A&AI or VF-C DB.
274 c. action only support restartvm in Casablanca release.
275 d. actionvminfo only supports to include one vm , vmid is the vmid which is the same with the vmid in cloud.
282 http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/terminate \
283 -H 'Postman-Token: 5190e46f-f612-432a-90d8-161ea67778b2' \
284 -H 'accept: application/json' \
285 -H 'cache-control: no-cache' \
286 -H 'content-type: application/json' \
287 -d 'gracefulTerminationTimeout: 600,
288 \terminationType: FORCEFUL'
291 a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create.
292 b. terminateType supports FORCEFUL and GRACEFULLc. gracefulTerminationTimeout is the wait time before execute terminate.
299 http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec \
300 -H 'Postman-Token: 62b35de6-1785-40ed-8026-06d73f9770d8' \
301 -H 'cache-control: no-cache'
304 a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create