Merge "Update docs of User guide and API reference"
This commit is contained in:
commit
0cec2f944d
@ -294,6 +294,18 @@ change_current_vnf_package_additional_params:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: key value pairs
|
type: key value pairs
|
||||||
|
change_current_vnf_package_vim_connection_info:
|
||||||
|
description: |
|
||||||
|
Information about VIM connections to be used for managing the resources
|
||||||
|
for the VNF instance, or refer to external / externally-managed virtual links.
|
||||||
|
This attribute shall only be supported and may be present if VNF-related
|
||||||
|
resource management in direct mode is applicable.
|
||||||
|
The VNFM shall apply the content of this attribute to the
|
||||||
|
"vimConnectionInfo" attribute of "VnfInstance"
|
||||||
|
according to the rules of JSON Merge Patch.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: map
|
||||||
change_ext_vnf_connectivity_additional_params:
|
change_ext_vnf_connectivity_additional_params:
|
||||||
description: |
|
description: |
|
||||||
Additional parameters passed by the NFVO as input to the process,
|
Additional parameters passed by the NFVO as input to the process,
|
||||||
@ -1281,7 +1293,20 @@ vnf_instance_description:
|
|||||||
type: string
|
type: string
|
||||||
vnf_instance_extensions:
|
vnf_instance_extensions:
|
||||||
description: |
|
description: |
|
||||||
description
|
Additional VNF-specific attributes that affect
|
||||||
|
the lifecycle management of this VNF instance.
|
||||||
|
These attributes represent values that are
|
||||||
|
stored persistently in the VnfInstance
|
||||||
|
structure for consumption by the VNFM or
|
||||||
|
the lifecycle management scripts during the
|
||||||
|
execution of VNF lifecycle management operations.
|
||||||
|
Modifying the values of these attributes has
|
||||||
|
no direct effect on the VNF instance;
|
||||||
|
however, the modified attribute values can
|
||||||
|
be considered during subsequent VNF
|
||||||
|
lifecycle management operations, which
|
||||||
|
means that the modified values can indirectly
|
||||||
|
affect the configuration of the VNF instance.
|
||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: key value pairs
|
type: key value pairs
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
{
|
{
|
||||||
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
||||||
|
|
||||||
"additionalParams": {
|
"additionalParams": {
|
||||||
"upgrade_type": "RollingUpdate",
|
"upgrade_type": "RollingUpdate",
|
||||||
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
||||||
"lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf",
|
|
||||||
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
||||||
"lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf",
|
|
||||||
"vdu_params": [{
|
"vdu_params": [{
|
||||||
"vdu_id": "VDU1",
|
"vdu_id": "VDU1",
|
||||||
"old_vnfc_param": {
|
"old_vnfc_param": {
|
||||||
@ -31,5 +30,195 @@
|
|||||||
"password": "ubuntu"
|
"password": "ubuntu"
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
},
|
||||||
|
"extVirtualLinks": [
|
||||||
|
{
|
||||||
|
"extCps": [
|
||||||
|
{
|
||||||
|
"cpConfig": {
|
||||||
|
"VDU1_CP1": {
|
||||||
|
"cpProtocolData": [
|
||||||
|
{
|
||||||
|
"ipOverEthernet": {
|
||||||
|
"ipAddresses": [
|
||||||
|
{
|
||||||
|
"numDynamicAddresses": 1,
|
||||||
|
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
|
||||||
|
"type": "IPV4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"layerProtocol": "IP_OVER_ETHERNET"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentCpConfigId": "6274c3fa-1cec-41cc-add2-fc8808793cf7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cpdId": "VDU1_CP1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cpConfig": {
|
||||||
|
"VDU2_CP1-1": {
|
||||||
|
"cpProtocolData": [
|
||||||
|
{
|
||||||
|
"ipOverEthernet": {
|
||||||
|
"ipAddresses": [
|
||||||
|
{
|
||||||
|
"numDynamicAddresses": 1,
|
||||||
|
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
|
||||||
|
"type": "IPV4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"layerProtocol": "IP_OVER_ETHERNET"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"linkPortId": "315a2b77-8076-49df-84fe-45579faf4085",
|
||||||
|
"parentCpConfigId": "99f8ba42-3619-4fbd-81a5-999c3767237b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cpdId": "VDU2_CP1-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cpConfig": {
|
||||||
|
"VDU2_CP1-2": {
|
||||||
|
"cpProtocolData": [
|
||||||
|
{
|
||||||
|
"ipOverEthernet": {
|
||||||
|
"ipAddresses": [
|
||||||
|
{
|
||||||
|
"numDynamicAddresses": 1,
|
||||||
|
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
|
||||||
|
"type": "IPV4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"layerProtocol": "IP_OVER_ETHERNET"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"linkPortId": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
|
||||||
|
"parentCpConfigId": "3b55b051-c5cb-41cf-bc0e-ea71e95d2636"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cpdId": "VDU2_CP1-2"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"extLinkPorts": [
|
||||||
|
{
|
||||||
|
"id": "315a2b77-8076-49df-84fe-45579faf4085",
|
||||||
|
"resourceHandle": {
|
||||||
|
"resourceId": "1cb1fb17-1a8f-4052-8599-ec6858da3659"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
|
||||||
|
"resourceHandle": {
|
||||||
|
"resourceId": "dummy-id"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "38a38351-fbed-4637-8dcd-01ca1f69d4bb",
|
||||||
|
"resourceId": "bbe38e96-8395-4b7f-a7da-67058922df1c",
|
||||||
|
"resourceProviderId": "Company",
|
||||||
|
"vimConnectionId": "defb2f96-5670-4bef-8036-27bf61267fc1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"extCps": [
|
||||||
|
{
|
||||||
|
"cpConfig": {
|
||||||
|
"VDU1_CP2": {
|
||||||
|
"cpProtocolData": [
|
||||||
|
{
|
||||||
|
"ipOverEthernet": {
|
||||||
|
"ipAddresses": [
|
||||||
|
{
|
||||||
|
"numDynamicAddresses": 1,
|
||||||
|
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
|
||||||
|
"type": "IPV4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"layerProtocol": "IP_OVER_ETHERNET"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentCpConfigId": "c09646b2-8a91-4af3-8260-71cfa865a5b1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cpdId": "VDU1_CP2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cpConfig": {
|
||||||
|
"VDU2_CP2": {
|
||||||
|
"cpProtocolData": [
|
||||||
|
{
|
||||||
|
"ipOverEthernet": {
|
||||||
|
"ipAddresses": [
|
||||||
|
{
|
||||||
|
"fixedAddresses": [
|
||||||
|
"100.100.100.12"
|
||||||
|
],
|
||||||
|
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
|
||||||
|
"type": "IPV4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"numDynamicAddresses": 1,
|
||||||
|
"subnetId": "15cd2e7e-add5-42cd-b790-2fe734fcc7dc",
|
||||||
|
"type": "IPV6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAddress": "fa:16:3e:fa:22:75"
|
||||||
|
},
|
||||||
|
"layerProtocol": "IP_OVER_ETHERNET"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentCpConfigId": "40820a06-be32-4ea1-ae38-5f164c8de178"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cpdId": "VDU2_CP2"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "97a82200-328a-44f6-98cb-bfdf27c359c1",
|
||||||
|
"resourceId": "b47d25bd-f1d8-4136-b7e7-ac8754977661",
|
||||||
|
"resourceProviderId": "Company",
|
||||||
|
"vimConnectionId": "defb2f96-5670-4bef-8036-27bf61267fc1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vimConnectionInfo": {
|
||||||
|
"vim1": {
|
||||||
|
"accessInfo": {
|
||||||
|
"password": "devstack",
|
||||||
|
"project": "nfv",
|
||||||
|
"projectDomain": "Default",
|
||||||
|
"region": "RegionOne",
|
||||||
|
"userDomain": "Default",
|
||||||
|
"username": "nfv_user"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"new-key": "new-val"
|
||||||
|
},
|
||||||
|
"interfaceInfo": {
|
||||||
|
"endpoint": "http://localhost/identity/v3"
|
||||||
|
},
|
||||||
|
"vimId": "defb2f96-5670-4bef-8036-27bf61267fc1",
|
||||||
|
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
|
||||||
|
},
|
||||||
|
"vim2": {
|
||||||
|
"accessInfo": {
|
||||||
|
"password": "dummy_password",
|
||||||
|
"project": "dummy_project",
|
||||||
|
"projectDomain": "Default",
|
||||||
|
"region": "RegionOne",
|
||||||
|
"userDomain": "Default",
|
||||||
|
"username": "dummy_user"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"dummy-key": "dummy-val"
|
||||||
|
},
|
||||||
|
"interfaceInfo": {
|
||||||
|
"endpoint": "http://localhost/identity/v3"
|
||||||
|
},
|
||||||
|
"vimId": "c8dbc7c0-a4f4-4bff-8075-4cb555e63b7b",
|
||||||
|
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -831,6 +831,8 @@ Request Parameters
|
|||||||
|
|
||||||
- vnfInstanceId: vnf_instance_id
|
- vnfInstanceId: vnf_instance_id
|
||||||
- vnfdId: change_vnfpkg_vnfd_id
|
- vnfdId: change_vnfpkg_vnfd_id
|
||||||
|
- extVirtualLinks: ext_virtual_links
|
||||||
|
- vimConnectionInfo: change_current_vnf_package_vim_connection_info
|
||||||
- additionalParams: change_current_vnf_package_additional_params
|
- additionalParams: change_current_vnf_package_additional_params
|
||||||
|
|
||||||
Request Example
|
Request Example
|
||||||
|
BIN
doc/source/_images/etsi_cnf_helm_v2.png
Normal file
BIN
doc/source/_images/etsi_cnf_helm_v2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
41
doc/source/_images/etsi_cnf_helm_v2.pu
Normal file
41
doc/source/_images/etsi_cnf_helm_v2.pu
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
frame "python-tackerclient" {
|
||||||
|
component "tacker-client" as client {
|
||||||
|
package "VNF Package" as vnfpkg {
|
||||||
|
file "VNFD" as vnfd
|
||||||
|
file "CNF\nDefinition" as cnfd
|
||||||
|
}
|
||||||
|
file "Instantiate\nparameters" as inst_param
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
frame "tacker" {
|
||||||
|
component "tacker-server" {
|
||||||
|
component "server" as serv
|
||||||
|
}
|
||||||
|
component "tacker-conductor" {
|
||||||
|
component "conductor" as cond
|
||||||
|
component "Helm\ninfra-driver" as infra
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
node "Helm"
|
||||||
|
|
||||||
|
node "Kubernetes\nCluster\n(Master)" as k8s_m
|
||||||
|
cloud "Hardware Resources" as hw {
|
||||||
|
node "Kubernetes\nCluster\n(Worker)" as k8s_w {
|
||||||
|
node "Pod" as ins1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
'# Relationships
|
||||||
|
vnfpkg --> serv: 1. Request\n create VNF
|
||||||
|
inst_param --> serv: 2. Request\n instantiate VNF
|
||||||
|
serv --> cond
|
||||||
|
cond --> infra
|
||||||
|
infra --> Helm: 3. Execute Helm command
|
||||||
|
Helm -right-> k8s_m: 4. Call Kubernetes\n API
|
||||||
|
k8s_m --> ins1: 5. Create a Pod
|
||||||
|
|
||||||
|
@enduml
|
@ -74,10 +74,6 @@ definition file before running command for changing the VNF package.
|
|||||||
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
||||||
"additionalParams": {
|
"additionalParams": {
|
||||||
"upgrade_type": "RollingUpdate",
|
"upgrade_type": "RollingUpdate",
|
||||||
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
|
||||||
"lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf",
|
|
||||||
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
|
||||||
"lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf",
|
|
||||||
"lcm-kubernetes-def-files": ["Files/new_kubernetes/new_deployment.yaml"],
|
"lcm-kubernetes-def-files": ["Files/new_kubernetes/new_deployment.yaml"],
|
||||||
"vdu_params": [{
|
"vdu_params": [{
|
||||||
"vdu_id": "VDU1"
|
"vdu_id": "VDU1"
|
||||||
@ -93,13 +89,15 @@ definition file before running command for changing the VNF package.
|
|||||||
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
||||||
"additionalParams": {
|
"additionalParams": {
|
||||||
"upgrade_type": "RollingUpdate",
|
"upgrade_type": "RollingUpdate",
|
||||||
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
|
||||||
"lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf",
|
|
||||||
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
|
||||||
"lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Unlike Change Current Vnf Package for VNF,
|
||||||
|
coordination scripts are not supported for CNF.
|
||||||
|
Therefore, lcm-operation-coordinate files need not be
|
||||||
|
specified by `additionalParams`.
|
||||||
|
|
||||||
You can set following parameter in additionalParams:
|
You can set following parameter in additionalParams:
|
||||||
|
|
||||||
.. list-table:: additionalParams
|
.. list-table:: additionalParams
|
||||||
@ -112,60 +110,12 @@ You can set following parameter in additionalParams:
|
|||||||
* - upgrade_type
|
* - upgrade_type
|
||||||
- 1
|
- 1
|
||||||
- Type of file update operation method. Specify Blue-Green or Rolling update.
|
- Type of file update operation method. Specify Blue-Green or Rolling update.
|
||||||
* - lcm-operation-coordinate-old-vnf
|
|
||||||
- 1
|
|
||||||
- The file path of the script that simulates the behavior of CoordinateVNF for old VNF.
|
|
||||||
* - lcm-operation-coordinate-old-vnf-class
|
|
||||||
- 1
|
|
||||||
- The class name of CoordinateVNF for old VNF.
|
|
||||||
* - lcm-operation-coordinate-new-vnf
|
|
||||||
- 1
|
|
||||||
- The file path of the script that simulates the behavior of CoordinateVNF for new VNF.
|
|
||||||
* - lcm-operation-coordinate-new-vnf-class
|
|
||||||
- 1
|
|
||||||
- The class name of CoordinateVNF for new VNF.
|
|
||||||
* - vdu_params
|
* - vdu_params
|
||||||
- 0..N
|
- 1..N
|
||||||
- VDU information of target VDU to update. Specifying a vdu_params is required for OpenStack VIM and not required for Kubernetes VIM.
|
- VDU information of target VDU to update.
|
||||||
* - > vdu_id
|
* - > vdu_id
|
||||||
- 1
|
- 1
|
||||||
- VDU name of target VDU to update.
|
- VDU name of target VDU to update.
|
||||||
* - > old_vnfc_param
|
|
||||||
- 0..1
|
|
||||||
- Old VNFC connection information. Required for ssh connection in CoordinateVNF operation for application configuration to VNFC.
|
|
||||||
* - >> cp-name
|
|
||||||
- 1
|
|
||||||
- Connection point name of old VNFC to update.
|
|
||||||
* - >> username
|
|
||||||
- 1
|
|
||||||
- User name of old VNFC to update.
|
|
||||||
* - >> password
|
|
||||||
- 1
|
|
||||||
- Password of old VNFC to update.
|
|
||||||
* - > new_vnfc_param
|
|
||||||
- 0..1
|
|
||||||
- New VNFC connection information. Required for ssh connection in CoordinateVNF operation for application configuration to VNFC.
|
|
||||||
* - >> cp-name
|
|
||||||
- 1
|
|
||||||
- Connection point name of new VNFC to update.
|
|
||||||
* - >> username
|
|
||||||
- 1
|
|
||||||
- User name of new VNFC to update.
|
|
||||||
* - >> password
|
|
||||||
- 1
|
|
||||||
- Password of new VNFC to update.
|
|
||||||
* - external_lb_param
|
|
||||||
- 0..1
|
|
||||||
- Load balancer information that requires configuration changes. Required only for the Blue-Green deployment process of OpenStack VIM.
|
|
||||||
* - > ip_address
|
|
||||||
- 1
|
|
||||||
- IP address of load balancer server.
|
|
||||||
* - > username
|
|
||||||
- 1
|
|
||||||
- User name of load balancer server.
|
|
||||||
* - > password
|
|
||||||
- 1
|
|
||||||
- Password of load balancer server.
|
|
||||||
|
|
||||||
.. note:: ``sample_param_file_for_specified_resources.json`` contains
|
.. note:: ``sample_param_file_for_specified_resources.json`` contains
|
||||||
all optional parameters.
|
all optional parameters.
|
||||||
@ -175,13 +125,6 @@ You can set following parameter in additionalParams:
|
|||||||
OpenStack VIM. And you only need to set this parameter when you need to
|
OpenStack VIM. And you only need to set this parameter when you need to
|
||||||
update the path of the manifest file of the deployment resource.
|
update the path of the manifest file of the deployment resource.
|
||||||
* ``vdu_params`` is VDU information of target VDU to update.
|
* ``vdu_params`` is VDU information of target VDU to update.
|
||||||
Specifying a ``vdu_params`` is required for OpenStack VIM and not
|
|
||||||
required for Kubernetes VIM.
|
|
||||||
* ``lcm-operation-coordinate-old-vnf`` and
|
|
||||||
``lcm-operation-coordinate-new-vnf`` are unique implementations of Tacker
|
|
||||||
to simulate the coordination interface in `ETSI SOL002 v3.5.1`_. Mainly a
|
|
||||||
script that can communicate with the VM after the VM is created, perform
|
|
||||||
special customization of the VM or confirm the status of the VM.
|
|
||||||
|
|
||||||
.. note:: Currently, this operation only supports some functions of
|
.. note:: Currently, this operation only supports some functions of
|
||||||
``Change Current VNF Package``.
|
``Change Current VNF Package``.
|
||||||
|
@ -417,6 +417,11 @@ In the example of this procedure, specify the ID
|
|||||||
``686b356f-8096-4e24-99e5-3c81d36341be`` of the first ``vnfcResourceInfo`` as
|
``686b356f-8096-4e24-99e5-3c81d36341be`` of the first ``vnfcResourceInfo`` as
|
||||||
``VNFC_INATANCE_ID``.
|
``VNFC_INATANCE_ID``.
|
||||||
|
|
||||||
|
.. note:: In the case of version 1 API,
|
||||||
|
``VNFC_INSTANCE_ID`` is ``instantiatedVnfInfo.vnfcResourceInfo.id``.
|
||||||
|
In the case of version 2 API,
|
||||||
|
``VNFC_INSTANCE_ID`` is ``instantiatedVnfInfo.vnfcInfo.id``.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ openstack vnflcm heal 92cf0ccb-e575-46e2-9c0d-30c67e75aaf6 --vnfc-instance 686b356f-8096-4e24-99e5-3c81d36341be
|
$ openstack vnflcm heal 92cf0ccb-e575-46e2-9c0d-30c67e75aaf6 --vnfc-instance 686b356f-8096-4e24-99e5-3c81d36341be
|
||||||
|
1114
doc/source/user/etsi_cnf_helm_v2.rst
Normal file
1114
doc/source/user/etsi_cnf_helm_v2.rst
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
===================================================================
|
===============================================
|
||||||
ETSI NFV-SOL CNF (Containerized VNF) Deployment
|
ETSI NFV-SOL CNF (Containerized VNF) Deployment
|
||||||
===================================================================
|
===============================================
|
||||||
|
|
||||||
This section covers how to deploy ETSI NFV-SOL containerized VNF
|
This section covers how to deploy ETSI NFV-SOL containerized VNF
|
||||||
in Tacker using Kubernetes VIM.
|
in Tacker using Kubernetes VIM.
|
||||||
@ -41,7 +41,7 @@ The following figure shows an overview of the CNF deployment.
|
|||||||
Prepare Kubernetes VIM
|
Prepare Kubernetes VIM
|
||||||
=======================
|
=======================
|
||||||
1. Create a Config File
|
1. Create a Config File
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Before register a Kubernetes VIM to tacker, we should create config file.
|
Before register a Kubernetes VIM to tacker, we should create config file.
|
||||||
The following ``vim-k8s.yaml`` file provides necessary information to
|
The following ``vim-k8s.yaml`` file provides necessary information to
|
||||||
@ -51,28 +51,13 @@ parameters that can be obtained from the Kubernetes Master-node.
|
|||||||
For specific methods of obtaining "bearer_token" and "ssl_ca_cert",
|
For specific methods of obtaining "bearer_token" and "ssl_ca_cert",
|
||||||
please refer to [#first]_.
|
please refer to [#first]_.
|
||||||
|
|
||||||
By using ``extra`` field, we can register VIM with Helm installed as
|
|
||||||
the control target of Tacker.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
* ``extra`` is an optional parameter.
|
|
||||||
* For VIM using Helm, the following preconditions need to be met:
|
|
||||||
|
|
||||||
* Use the specified user to login through ssh to execute the CLI
|
|
||||||
command of Helm.
|
|
||||||
* The specified user has sudo execution permissions for the
|
|
||||||
mkdir/chown/rm commands and does not require a password.
|
|
||||||
* Create the /var/tacker/helm directory on VIM as the transfer
|
|
||||||
destination for Helm chart files.
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ cat vim-k8s.yaml
|
$ cat vim-k8s.yaml
|
||||||
auth_url: "https://192.168.33.100:6443"
|
auth_url: "https://192.168.33.100:6443"
|
||||||
project_name: "default"
|
project_name: "default"
|
||||||
bearer_token: "eyJhbGciOiJSUzI1NiIsImtpZCI6IlBRVDgxQkV5VDNVR1M1WGEwUFYxSXFkZFhJWDYzNklvMEp2WklLMnNFdk0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi12cnpoaiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImNhY2VmMzEzLTMzYjYtNDQ5MS1iMWUyLTg0NmQ2N2E0OTdkNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTphZG1pbiJ9.R76VIWVZnQxa9NG02HIqux1xTJG4i7dkXsp52T4UU8bvNfsfi18kW_p3ZvaNTxw0yABBcmkYZoOBe4MNP5cTP6TtR_ERZoA5QCViasW_u36rSTBT0-MHRPbkXjJYetzYaFYUO-DlJd3194yOtVHtrxUd8D31qw0f1FlP8BHxblDjZkYlgYSjHCxcwEdwlnYaa0SiH2kl6_oCBRFg8cUfXDeTOmH9XEfdrJ6ubJ4OyqG6YjfiKDDiEHgIehy7s7vZGVwVIPy6EhT1YSOIhY5aF-G9nQSg-GK1V9LIq7petFoW_MIEt0yfNQVXy2D1tBhdJEa1bgtVsLmdlrNVf-m3uA"
|
bearer_token: "eyJhbGciOiJSUzI1NiIsImtpZCI6IlBRVDgxQkV5VDNVR1M1WGEwUFYxSXFkZFhJWDYzNklvMEp2WklLMnNFdk0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi12cnpoaiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImNhY2VmMzEzLTMzYjYtNDQ5MS1iMWUyLTg0NmQ2N2E0OTdkNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTphZG1pbiJ9.R76VIWVZnQxa9NG02HIqux1xTJG4i7dkXsp52T4UU8bvNfsfi18kW_p3ZvaNTxw0yABBcmkYZoOBe4MNP5cTP6TtR_ERZoA5QCViasW_u36rSTBT0-MHRPbkXjJYetzYaFYUO-DlJd3194yOtVHtrxUd8D31qw0f1FlP8BHxblDjZkYlgYSjHCxcwEdwlnYaa0SiH2kl6_oCBRFg8cUfXDeTOmH9XEfdrJ6ubJ4OyqG6YjfiKDDiEHgIehy7s7vZGVwVIPy6EhT1YSOIhY5aF-G9nQSg-GK1V9LIq7petFoW_MIEt0yfNQVXy2D1tBhdJEa1bgtVsLmdlrNVf-m3uA"
|
||||||
ssl_ca_cert: "-----BEGIN CERTIFICATE-----nID
|
ssl_ca_cert: "-----BEGIN CERTIFICATE-----
|
||||||
MIICwjCCAaqgAwIBAgIBADANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwdrdWJl
|
MIICwjCCAaqgAwIBAgIBADANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwdrdWJl
|
||||||
LWNhMB4XDTIwMDgyNjA5MzIzMVoXDTMwMDgyNDA5MzIzMVowEjEQMA4GA1UEAxMH
|
LWNhMB4XDTIwMDgyNjA5MzIzMVoXDTMwMDgyNDA5MzIzMVowEjEQMA4GA1UEAxMH
|
||||||
a3ViZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkeE16lPAd
|
a3ViZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkeE16lPAd
|
||||||
@ -90,72 +75,6 @@ the control target of Tacker.
|
|||||||
2ZrqgOcTmyFzFh9h2dj1DJWvCvExybRmzWK1e8JMzTb40MEApyY=
|
2ZrqgOcTmyFzFh9h2dj1DJWvCvExybRmzWK1e8JMzTb40MEApyY=
|
||||||
-----END CERTIFICATE-----"
|
-----END CERTIFICATE-----"
|
||||||
type: "kubernetes"
|
type: "kubernetes"
|
||||||
extra:
|
|
||||||
helm_info:
|
|
||||||
masternode_ip:
|
|
||||||
- "192.168.33.100"
|
|
||||||
masternode_username: "helm_user"
|
|
||||||
masternode_password: "helm_pass"
|
|
||||||
|
|
||||||
In addition to using ``bearer_token`` to authenticate with Kubernetes ,
|
|
||||||
OpenID token [#sixth]_ is also supported. The following sample specifies
|
|
||||||
``oidc_token_url``, ``client_id``, ``client_secret``, ``username``, ``password``
|
|
||||||
instead of ``bearer_token`` for OpenID token authentication.
|
|
||||||
|
|
||||||
Before using OpenID token authentication, additional settings are required.
|
|
||||||
Please refer to [#seventh]_, and how to get the values of the ``oidc_token_url``,
|
|
||||||
``client_id``, ``client_secret``, ``username``, ``password`` and ``ssl_ca_cert``
|
|
||||||
parameters is documented.
|
|
||||||
|
|
||||||
The SSL certificates of Kubernetes and OpenID provider are concatenated
|
|
||||||
in ``ssl_ca_cert``.
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ cat vim-k8s.yaml
|
|
||||||
auth_url: "https://192.168.33.100:6443"
|
|
||||||
project_name: "default"
|
|
||||||
oidc_token_url: "https://192.168.33.100:8443/realms/oidc/protocol/openid-connect/token"
|
|
||||||
client_id: "tacker"
|
|
||||||
client_secret: "A93HfOUpySm6BjPug9PJdJumjEGUJMhc"
|
|
||||||
username: "end-user"
|
|
||||||
password: "end-user"
|
|
||||||
ssl_ca_cert: "-----BEGIN CERTIFICATE-----
|
|
||||||
MIICwjCCAaqgAwIBAgIBADANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDEwdrdWJl
|
|
||||||
LWNhMB4XDTIwMDgyNjA5MzIzMVoXDTMwMDgyNDA5MzIzMVowEjEQMA4GA1UEAxMH
|
|
||||||
a3ViZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkeE16lPAd
|
|
||||||
pfJj5GJMvZJFcX/CD6EB/LUoKwGmqVoOUQPd3b/NGy+qm+3bO9EU73epUPsVaWk2
|
|
||||||
Lr+Z1ua7u+iib/OMsfsSXMZ5OEPgd8ilrTGhXOH8jDkif9w1NtooJxYSRcHEwxVo
|
|
||||||
+aXdIJhqKdw16NVP/elS9KODFdRZDfQ6vU5oHSg3gO49kgv7CaxFdkF7QEHbchsJ
|
|
||||||
0S1nWMPAlUhA5b8IAx0+ecPlMYUGyGQIQgjgtHgeawJebH3PWy32UqfPhkLPzxsy
|
|
||||||
TSxk6akiXJTg6mYelscuxPLSe9UqNvHRIUoad3VnkF3+0CJ1z0qvfWIrzX3w92/p
|
|
||||||
YsDBZiP6vi8CAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMB
|
|
||||||
Af8wDQYJKoZIhvcNAQELBQADggEBAIbv2ulEcQi019jKz4REy7ZyH8+ExIUBBuIz
|
|
||||||
InAkfxNNxV83GkdyA9amk+LDoF/IFLMltAMM4b033ZKO5RPrHoDKO+xCA0yegYqU
|
|
||||||
BViaUiEXIvi/CcDpT9uh2aNO8wX5T/B0WCLfWFyiK+rr9qcosFYxWSdU0kFeg+Ln
|
|
||||||
YAaeFY65ZWpCCyljGpr2Vv11MAq1Tws8rEs3rg601SdKhBmkgcTAcCzHWBXR1P8K
|
|
||||||
rfzd6h01HhIomWzM9xrP2/2KlYRvExDLpp9qwOdMSanrszPDuMs52okXgfWnEqlB
|
|
||||||
2ZrqgOcTmyFzFh9h2dj1DJWvCvExybRmzWK1e8JMzTb40MEApyY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC7TCCAdWgAwIBAgIUQK2k5uNvlRLx43LI/t3a2/A/3iQwDQYJKoZIhvcNAQEL
|
|
||||||
BQAwFTETMBEGA1UEAxMKa3ViZXJuZXRlczAeFw0yMjA4MDQwNjIwNTFaFw0yMzA4
|
|
||||||
MDQwNjIwNTFaMBMxETAPBgNVBAMMCEtleWNsb2FrMIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEAni7HWLn2IpUImGO1sbBf/XuqATkXSeIIRuQuFymwYPoX
|
|
||||||
BP7RowzrbfF9KUwdIKlz9IXjqb1hplumiqNy1Sc7MmrTY9Fj87MNAMlnCIvyWkjE
|
|
||||||
XVXWxGef49mqc85P2K1iuAsr2R7sDrv7SC0ch+lHclOjGDmCjKOk8qF3kD1LATWg
|
|
||||||
zf42aXb4nNF9kyIOPEbI+jX4PWhAQpEz5nIG+xIRjTHGfacjpeg0+XOK21wLAuQB
|
|
||||||
fqebJ6GxX4OzB37ZtLLgrKyBYWaWuYkWbexVRM3wEvQu8ENkvhV017iPuPHSxNWx
|
|
||||||
Y8z072XMs9j8XRQD65EVqObXyizotPRJF4slEJ9qMQIDAQABozcwNTAJBgNVHRME
|
|
||||||
AjAAMAsGA1UdDwQEAwIF4DAbBgNVHREEFDAShwR/AAABhwTAqAIhhwQKCgCMMA0G
|
|
||||||
CSqGSIb3DQEBCwUAA4IBAQBebjmNHd8sJXjvPQc3uY/3KSDpk9AYfYzhUZvcvLNg
|
|
||||||
z0llFqXHaFlMqHTsz1tOH4Ns4PDKKoRT0JIKC1FkvjzqgL+X2jWFS0NRoNyd3W3B
|
|
||||||
yHLEL7MdQqDR+tZX02EGfaGXjuy8GHIU4J2hXhohmpn6ntfiRONfY8jaEjIecPFS
|
|
||||||
IwZWXNhsDESa1zuDe0PatES/Ati8bAUpN2rb/7rsE/AeM5GXpQfOKV0XxdIeBZ82
|
|
||||||
Vf5cUDWPipvq2Q9KS+yrTvEObGtA6gKhQ4bpz3MieU3N8AtQpEKtROH7mJWMHyl2
|
|
||||||
roD1k8KeJlfvR/XcVTGFcgIdNLfKIdd99Xfi4gSaIKuw
|
|
||||||
-----END CERTIFICATE-----"
|
|
||||||
type: "kubernetes"
|
|
||||||
|
|
||||||
2. Register Kubernetes VIM
|
2. Register Kubernetes VIM
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -205,7 +124,6 @@ the [1. Create a config file] chapter.
|
|||||||
| auth_url | https://192.168.33.100:6443 |
|
| auth_url | https://192.168.33.100:6443 |
|
||||||
| created_at | 2020-10-19 08:08:12.116040 |
|
| created_at | 2020-10-19 08:08:12.116040 |
|
||||||
| description | |
|
| description | |
|
||||||
| extra | helm_info=masternode_ip=['192.168.33.100'], masternode_password=helm_user, masternode_username=helm_pass |
|
|
||||||
| id | 8d8373fe-6977-49ff-83ac-7756572ed186 |
|
| id | 8d8373fe-6977-49ff-83ac-7756572ed186 |
|
||||||
| is_default | False |
|
| is_default | False |
|
||||||
| name | test-vim-k8s |
|
| name | test-vim-k8s |
|
||||||
@ -240,9 +158,6 @@ Also we can check if the status of VIM is REACHABLE by
|
|||||||
|
|
||||||
Prepare VNF Package
|
Prepare VNF Package
|
||||||
===================
|
===================
|
||||||
|
|
||||||
If we want to deploy CNF through helm, we can refer to `Prepare VNF Package`_.
|
|
||||||
|
|
||||||
1. Create Directories of VNF Package
|
1. Create Directories of VNF Package
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
TOSCA YAML CSAR file is an archive file using the ZIP file format whose
|
TOSCA YAML CSAR file is an archive file using the ZIP file format whose
|
||||||
@ -256,7 +171,7 @@ Here is a sample of building a VNF Package CSAR directory:
|
|||||||
.. _Create a Kubernetes Object File:
|
.. _Create a Kubernetes Object File:
|
||||||
|
|
||||||
2. Create a Kubernetes Object File
|
2. Create a Kubernetes Object File
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
A CSAR VNF package shall have a object file that defines Kubernetes resources
|
A CSAR VNF package shall have a object file that defines Kubernetes resources
|
||||||
to be deployed.
|
to be deployed.
|
||||||
The file name shall have an extension of ".yaml".
|
The file name shall have an extension of ".yaml".
|
||||||
@ -266,7 +181,7 @@ different yaml files.
|
|||||||
.. note:: Please refer to Kubernetes api resource [#second]_ for an example yaml file of
|
.. note:: Please refer to Kubernetes api resource [#second]_ for an example yaml file of
|
||||||
each resource.
|
each resource.
|
||||||
|
|
||||||
For the types of resources that can be deployed in Victoria, please refer to
|
For the types of resources that can be deployed, please refer to
|
||||||
following link Kubernetes resource kind support [#third]_.
|
following link Kubernetes resource kind support [#third]_.
|
||||||
|
|
||||||
The following is a simple example of ``deployment`` resource.
|
The following is a simple example of ``deployment`` resource.
|
||||||
@ -734,9 +649,6 @@ After the command is executed, the generated ID is ``VNF instance ID``.
|
|||||||
|
|
||||||
Instantiate VNF
|
Instantiate VNF
|
||||||
===============
|
===============
|
||||||
|
|
||||||
If we want to deploy CNF through helm, we can refer to `Instantiate VNF`_.
|
|
||||||
|
|
||||||
1. Set the Value to the Request Parameter File
|
1. Set the Value to the Request Parameter File
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Get the ID of target VIM.
|
Get the ID of target VIM.
|
||||||
@ -799,10 +711,29 @@ vimId and vimType.
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
There is a difference in resource creation
|
||||||
|
depending on the API version.
|
||||||
|
version 1 API creates the resources in order sorted by `kinds`.
|
||||||
|
version 2 API creates the resources in the order of
|
||||||
|
`lcm-kubernetes-def-files` list.
|
||||||
|
Therefore, version 2 API requires users to specify the
|
||||||
|
`lcm-kubernetes-def-files` list in the correct order.
|
||||||
|
|
||||||
|
In the case of version 1 API,
|
||||||
`additionalParams` can also contain `vdu_mapping` parameter.
|
`additionalParams` can also contain `vdu_mapping` parameter.
|
||||||
In this case, specify the type and name of the resource corresponding to the
|
In this case, specify the type and name of the resource corresponding to the
|
||||||
`VDU ID`` defined in the VNFD as follows:
|
`VDU ID`` defined in the VNFD as follows:
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
version 2 API does not support `vdu_mapping` parameter.
|
||||||
|
Although specifying it does not cause an error,
|
||||||
|
it is meaningless.
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ cat ./instance_kubernetes.json
|
$ cat ./instance_kubernetes.json
|
||||||
@ -844,7 +775,7 @@ chapter.
|
|||||||
Instantiate request for VNF Instance 92cf0ccb-e575-46e2-9c0d-30c67e75aaf6 has been accepted.
|
Instantiate request for VNF Instance 92cf0ccb-e575-46e2-9c0d-30c67e75aaf6 has been accepted.
|
||||||
|
|
||||||
3. Check the Instantiation State
|
3. Check the Instantiation State
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
We could check the Instantiation State by running the following command.
|
We could check the Instantiation State by running the following command.
|
||||||
When the Instantiation State is INSTANTIATED, indicate the instantiation is
|
When the Instantiation State is INSTANTIATED, indicate the instantiation is
|
||||||
successful.
|
successful.
|
||||||
@ -945,7 +876,3 @@ References
|
|||||||
.. [#third] https://specs.openstack.org/openstack/tacker-specs/specs/victoria/container-network-function.html#kubernetes-resource-kind-support
|
.. [#third] https://specs.openstack.org/openstack/tacker-specs/specs/victoria/container-network-function.html#kubernetes-resource-kind-support
|
||||||
.. [#fourth] https://docs.openstack.org/tacker/latest/user/vnfd-sol001.html
|
.. [#fourth] https://docs.openstack.org/tacker/latest/user/vnfd-sol001.html
|
||||||
.. [#fifth] https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names
|
.. [#fifth] https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names
|
||||||
.. [#sixth] https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens
|
|
||||||
.. [#seventh] https://docs.openstack.org/tacker/latest/reference/kubernetes_openid_token_auth_usage_guide.html
|
|
||||||
.. _Prepare VNF Package : https://docs.openstack.org/tacker/latest/user/mgmt_driver_deploy_k8s_and_cnf_with_helm.html#prepare-vnf-package
|
|
||||||
.. _Instantiate VNF : https://docs.openstack.org/tacker/latest/user/mgmt_driver_deploy_k8s_and_cnf_with_helm.html#instantiate-vnf
|
|
||||||
|
@ -25,6 +25,7 @@ Container
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
etsi_containerized_vnf_usage_guide
|
etsi_containerized_vnf_usage_guide
|
||||||
|
etsi_cnf_helm_v2
|
||||||
|
|
||||||
Scale
|
Scale
|
||||||
^^^^^
|
^^^^^
|
||||||
@ -108,9 +109,6 @@ Container
|
|||||||
Error Handling
|
Error Handling
|
||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
VM
|
|
||||||
~~
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
@ -119,8 +117,8 @@ VM
|
|||||||
.. TODO(h-asahina): add `Action Driver`
|
.. TODO(h-asahina): add `Action Driver`
|
||||||
* https://etherpad.opendev.org/p/tacker-wallaby-revise-docs
|
* https://etherpad.opendev.org/p/tacker-wallaby-revise-docs
|
||||||
|
|
||||||
Management Driver
|
Management Driver (v1 API)
|
||||||
^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
.. TODO(h-asahina): add `Overview`
|
.. TODO(h-asahina): add `Overview`
|
||||||
* https://etherpad.opendev.org/p/tacker-wallaby-revise-docs
|
* https://etherpad.opendev.org/p/tacker-wallaby-revise-docs
|
||||||
|
@ -44,37 +44,20 @@ procedure to instantiate VNF.
|
|||||||
You can refer to :doc:`./vnf-package` for the operation of uploading
|
You can refer to :doc:`./vnf-package` for the operation of uploading
|
||||||
VNF package.
|
VNF package.
|
||||||
|
|
||||||
The sample packages for the following four cases can be obtained from
|
|
||||||
the following links.
|
|
||||||
|
|
||||||
* `VNF Package for Common instantiate`_
|
|
||||||
|
|
||||||
* `change from image to image`_ flavour_id=image
|
|
||||||
|
|
||||||
* `change from image to volume`_ flavour_id=image
|
|
||||||
|
|
||||||
* `change from volume to image`_ flavour_id=volume
|
|
||||||
|
|
||||||
* `change from volume to volume`_ flavour_id=volume
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
You can deploy a VM directly by image, or you can create a volume by image
|
You can deploy a VM directly by image or volume.
|
||||||
first, and then create a VM by the volume. Therefore, when updating the
|
Therefore, when updating the
|
||||||
image of the VM, there will be four cases. The above four links correspond
|
image of the VM, there will be two cases.
|
||||||
to four cases respectively.
|
|
||||||
|
|
||||||
Use the common VNF package and the flavor_id after the above four links to
|
Use the common VNF package and the flavor_id to instantiate,
|
||||||
instantiate, and then use the VNF package in the corresponding link to
|
and then use the VNF package in the corresponding link to
|
||||||
execute ``change current vnf package`` operation, you can update the image
|
execute ``change current vnf package`` operation,
|
||||||
of the VM in the following four ways.
|
you can update the image of the VM in the following two ways.
|
||||||
|
|
||||||
1. change VM created by image to VM created by new image
|
1. change VM created by image to VM created by new image
|
||||||
|
|
||||||
2. change VM created by image to VM created by volume
|
2. change VM created by volume to VM created by new volume
|
||||||
|
|
||||||
3. change VM created by volume to VM created by image
|
|
||||||
|
|
||||||
4. change VM created by volume to VM created by new volume
|
|
||||||
|
|
||||||
Change Current VNF Package
|
Change Current VNF Package
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -100,9 +83,7 @@ definition file before running command for changing the VNF package.
|
|||||||
"additionalParams": {
|
"additionalParams": {
|
||||||
"upgrade_type": "RollingUpdate",
|
"upgrade_type": "RollingUpdate",
|
||||||
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
||||||
"lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf",
|
|
||||||
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
||||||
"lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf",
|
|
||||||
"vdu_params": [{
|
"vdu_params": [{
|
||||||
"vdu_id": "VDU1",
|
"vdu_id": "VDU1",
|
||||||
"old_vnfc_param": {
|
"old_vnfc_param": {
|
||||||
@ -140,9 +121,7 @@ definition file before running command for changing the VNF package.
|
|||||||
"additionalParams": {
|
"additionalParams": {
|
||||||
"upgrade_type": "RollingUpdate",
|
"upgrade_type": "RollingUpdate",
|
||||||
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
|
||||||
"lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf",
|
|
||||||
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
|
||||||
"lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf",
|
|
||||||
"vdu_params": [{
|
"vdu_params": [{
|
||||||
"vdu_id": "VDU2",
|
"vdu_id": "VDU2",
|
||||||
"old_vnfc_param": {
|
"old_vnfc_param": {
|
||||||
@ -174,15 +153,9 @@ You can set following parameter in additionalParams:
|
|||||||
* - lcm-operation-coordinate-old-vnf
|
* - lcm-operation-coordinate-old-vnf
|
||||||
- 1
|
- 1
|
||||||
- The file path of the script that simulates the behavior of CoordinateVNF for old VNF.
|
- The file path of the script that simulates the behavior of CoordinateVNF for old VNF.
|
||||||
* - lcm-operation-coordinate-old-vnf-class
|
|
||||||
- 1
|
|
||||||
- The class name of CoordinateVNF for old VNF.
|
|
||||||
* - lcm-operation-coordinate-new-vnf
|
* - lcm-operation-coordinate-new-vnf
|
||||||
- 1
|
- 1
|
||||||
- The file path of the script that simulates the behavior of CoordinateVNF for new VNF.
|
- The file path of the script that simulates the behavior of CoordinateVNF for new VNF.
|
||||||
* - lcm-operation-coordinate-new-vnf-class
|
|
||||||
- 1
|
|
||||||
- The class name of CoordinateVNF for new VNF.
|
|
||||||
* - vdu_params
|
* - vdu_params
|
||||||
- 0..N
|
- 0..N
|
||||||
- VDU information of target VDU to update. Specifying a vdu_params is required for OpenStack VIM and not required for Kubernetes VIM.
|
- VDU information of target VDU to update. Specifying a vdu_params is required for OpenStack VIM and not required for Kubernetes VIM.
|
||||||
@ -246,18 +219,20 @@ You can set following parameter in additionalParams:
|
|||||||
supports ``RollingUpdate`` type. You can set it via ``upgrade_type``
|
supports ``RollingUpdate`` type. You can set it via ``upgrade_type``
|
||||||
param.
|
param.
|
||||||
|
|
||||||
* Currently only support update images of VMs.
|
* Currently only support update images of VMs and modify external networks..
|
||||||
|
|
||||||
* Currently unsupported updates:
|
* Currently unsupported updates:
|
||||||
|
|
||||||
* This API currently does not support increasing or decreasing the number
|
* This API currently does not support increasing or decreasing the number
|
||||||
of VNFcs according to the VNF package.
|
of VNFcs according to the VNF package.
|
||||||
* The add and delete operations of the entire VDU are not supported.
|
* The add and delete operations of the entire VDU are not supported.
|
||||||
* In the definition of ETSI, external networks (e.g. extVirtualLinks,
|
* In the definition of ETSI, external and internal networks
|
||||||
extManagedVirtualLinks) can be modified. This API currently does not
|
(e.g. extVirtualLinks, extManagedVirtualLinks) can be modified.
|
||||||
support the operations of modifying, adding, and deleting these
|
This current API supports the operations of modifying external
|
||||||
networks.
|
networks only and does not support the following operations.
|
||||||
|
|
||||||
|
* Adding and deleting external networks.
|
||||||
|
* Modifying, adding, and deleting internal networks.
|
||||||
|
|
||||||
How to Change VM created by image to VM created by new image
|
How to Change VM created by image to VM created by new image
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -599,381 +574,6 @@ See `Heat CLI reference`_. for details on Heat CLI commands.
|
|||||||
'3f87132d-0c98-42a6-aa7b-b7db1f25e4fa' to
|
'3f87132d-0c98-42a6-aa7b-b7db1f25e4fa' to
|
||||||
'18fd7e66-c81f-48bb-bf18-d523996ce59c'.
|
'18fd7e66-c81f-48bb-bf18-d523996ce59c'.
|
||||||
|
|
||||||
How to Change VM created by image to VM created by volume
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Execute Change Current VNF Package CLI command. After complete this change
|
|
||||||
operation you should check resource status by Heat CLI commands.
|
|
||||||
|
|
||||||
1. check 'ID' and 'Stack Status' of the stack before and after operation.
|
|
||||||
This is to confirm that stack 'ID' has changed before and after operation,
|
|
||||||
and that the Stack update has been updated successfully.
|
|
||||||
|
|
||||||
2. check 'physical_resource_id' and 'resource_status' of the VDU.
|
|
||||||
This is to confirm that 'physical_resource_id' of VDU has
|
|
||||||
changed before and after operation, and that the 'resource_status' of VDU has
|
|
||||||
been created successfully.
|
|
||||||
|
|
||||||
3. check 'image' information of VDU before and after operation. This is to
|
|
||||||
confirm that VDU's has changed from created by image to created by volume.
|
|
||||||
|
|
||||||
.. note:: Only single VM support change from image to volume.
|
|
||||||
|
|
||||||
* Check point 1 before operation
|
|
||||||
|
|
||||||
Stack information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ID | Stack Name | Stack Status |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| 26c0d3fe-4e9d-4059-8b60-4f407fc268ee | vnf-679131c9-9f66-4930-a74c-1d382610d3c4 | CREATE_COMPLETE |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
|
|
||||||
* Check point 2 before operation
|
|
||||||
|
|
||||||
VDU(single) information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource list 26c0d3fe-4e9d-4059-8b60-4f407fc268ee
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| resource_name | physical_resource_id | resource_type | resource_status | updated_time |
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| VDU1_scale_in | 2e9275cb862a40a3915339666ea9496d | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T02:51:12Z |
|
|
||||||
| VDU1_scale_out | ff4186d24bc74f0ca6723f277739d232 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T02:51:12Z |
|
|
||||||
| VDU1_scale | 657c5b64-753e-43b5-b1e7-1ce929b21278 | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2022-03-18T02:51:13Z |
|
|
||||||
| VDU2 | 256ed8f8-b051-4bb5-8d3b-b0056c571d10 | OS::Nova::Server | CREATE_COMPLETE | 2022-03-18T02:51:13Z |
|
|
||||||
| VDU2_CP1 | 70c383f8-97ee-4ed4-82c8-68e87fbb1a0f | OS::Neutron::Port | CREATE_COMPLETE | 2022-03-18T02:51:13Z |
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
|
|
||||||
* Check point 3 before operation
|
|
||||||
|
|
||||||
VDU(single) detailed information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource show 26c0d3fe-4e9d-4059-8b60-4f407fc268ee VDU2 \
|
|
||||||
-c attributes --fit-width
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Field | Value |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| attributes | {'id': '256ed8f8-b051-4bb5-8d3b-b0056c571d10', 'name': 'vn-31c9-9f66-4930-a74c-1d382610d3c4-VDU2-exts43f5p4dn', 'status': 'ACTIVE', 'tenant_id': 'b7457dcef9374c2fa72e22c452bb04e9', 'user_id': |
|
|
||||||
| | 'ed6a354ef25041ac92c0e445e91cc9a9', 'metadata': {}, 'hostId': 'd2de6a234a80a445a7ee385f445e6084358f3aef2e110d7bc888ccf2', 'image': {'id': 'de5e0908-2e07-4250-a788-d3b693425f9f', 'links': [{'rel': 'bookmark', 'href': |
|
|
||||||
| | 'http://192.168.2.100/compute/images/de5e0908-2e07-4250-a788-d3b693425f9f'}]}, 'flavor': {'vcpus': 1, 'ram': 512, 'disk': 1, 'ephemeral': 0, 'swap': 0, 'original_name': 'm1.tiny', 'extra_specs': {'hw_rng:allowed': 'True'}}, |
|
|
||||||
| | 'created': '2022-03-18T02:51:17Z', 'updated': '2022-03-18T02:51:26Z', 'addresses': {'net0': [{'version': 4, 'addr': '10.10.0.101', 'OS-EXT-IPS:type': 'fixed', 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:13:2a:61'}]}, 'accessIPv4': |
|
|
||||||
| | '', 'accessIPv6': '', 'links': [{'rel': 'self', 'href': 'http://192.168.2.100/compute/v2.1/servers/256ed8f8-b051-4bb5-8d3b-b0056c571d10'}, {'rel': 'bookmark', 'href': |
|
|
||||||
| | 'http://192.168.2.100/compute/servers/256ed8f8-b051-4bb5-8d3b-b0056c571d10'}], 'OS-DCF:diskConfig': 'MANUAL', 'progress': 0, 'OS-EXT-AZ:availability_zone': 'nova', 'config_drive': '', 'key_name': None, 'OS-SRV- |
|
|
||||||
| | USG:launched_at': '2022-03-18T02:51:40.000000', 'OS-SRV-USG:terminated_at': None, 'security_groups': [{'name': 'default'}], 'OS-EXT-SRV-ATTR:host': 'compute101', 'OS-EXT-SRV-ATTR:instance_name': 'instance-000007bb', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:hypervisor_hostname': 'compute101', 'OS-EXT-SRV-ATTR:reservation_id': 'r-2gt4gvxy', 'OS-EXT-SRV-ATTR:launch_index': 0, 'OS-EXT-SRV-ATTR:hostname': 'vn-31c9-9f66-4930-a74c-1d382610d3c4-vdu2-exts43f5p4dn', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:kernel_id': '', 'OS-EXT-SRV-ATTR:ramdisk_id': '', 'OS-EXT-SRV-ATTR:root_device_name': '/dev/vda', 'OS-EXT-SRV-ATTR:user_data': '...' |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
* Execute Change Current VNF Package
|
|
||||||
|
|
||||||
Change Current VNF Package execution of the entire VNF:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
|
|
||||||
./sample_param_file_for_single_resource.json \
|
|
||||||
--os-tacker-api-version 2
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
Change Current VNF Package for VNF Instance 679131c9-9f66-4930-a74c-1d382610d3c4 has been accepted.
|
|
||||||
|
|
||||||
* Check point 1 after operation
|
|
||||||
|
|
||||||
Stack information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ID | Stack Name | Stack Status |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| 26c0d3fe-4e9d-4059-8b60-4f407fc268ee | vnf-679131c9-9f66-4930-a74c-1d382610d3c4 | UPDATE_COMPLETE |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
'Stack Status' transitions to UPDATE_COMPLETE.
|
|
||||||
|
|
||||||
* Check point 2 after operation
|
|
||||||
|
|
||||||
VDU(single) information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource list 26c0d3fe-4e9d-4059-8b60-4f407fc268ee
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| resource_name | physical_resource_id | resource_type | resource_status | updated_time |
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| VDU1_scale_in | 2e9275cb862a40a3915339666ea9496d | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T02:51:12Z |
|
|
||||||
| VDU1_scale_out | ff4186d24bc74f0ca6723f277739d232 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T02:51:12Z |
|
|
||||||
| VDU1_scale | 657c5b64-753e-43b5-b1e7-1ce929b21278 | OS::Heat::AutoScalingGroup | UPDATE_COMPLETE | 2022-03-18T03:02:27Z |
|
|
||||||
| VDU2_CP1 | 70c383f8-97ee-4ed4-82c8-68e87fbb1a0f | OS::Neutron::Port | CREATE_COMPLETE | 2022-03-18T02:51:13Z |
|
|
||||||
| VDU2-VirtualStorage | ea8a15c2-45f8-4230-94b0-b79dce28f3dd | OS::Cinder::Volume | CREATE_COMPLETE | 2022-03-18T03:01:42Z |
|
|
||||||
| multi | 90b16501-bbb2-4f59-bbb8-96dcf74de13c | OS::Cinder::VolumeType | CREATE_COMPLETE | 2022-03-18T03:01:42Z |
|
|
||||||
| VDU2 | 3bd7c3eb-7d9d-4861-9ea3-052286f3238f | OS::Nova::Server | CREATE_COMPLETE | 2022-03-18T03:01:59Z |
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
'resource_status' transitions to CREATE_COMPLETE.
|
|
||||||
'physical_resource_id' changes from
|
|
||||||
'256ed8f8-b051-4bb5-8d3b-b0056c571d10' to
|
|
||||||
'3bd7c3eb-7d9d-4861-9ea3-052286f3238f'.
|
|
||||||
|
|
||||||
* Check point 3 after operation
|
|
||||||
|
|
||||||
VDU(single) detailed information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource show 26c0d3fe-4e9d-4059-8b60-4f407fc268ee VDU2 \
|
|
||||||
-c attributes --fit-width
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Field | Value |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| attributes | {'id': '3bd7c3eb-7d9d-4861-9ea3-052286f3238f', 'name': 'vn-31c9-9f66-4930-a74c-1d382610d3c4-VDU2-f2fjfnlznq2l', 'status': 'ACTIVE', 'tenant_id': 'b7457dcef9374c2fa72e22c452bb04e9', 'user_id': |
|
|
||||||
| | 'ed6a354ef25041ac92c0e445e91cc9a9', 'metadata': {}, 'hostId': 'd2de6a234a80a445a7ee385f445e6084358f3aef2e110d7bc888ccf2', 'image': '', 'flavor': {'vcpus': 2, 'ram': 2048, 'disk': 10, 'ephemeral': 0, 'swap': 0, |
|
|
||||||
| | 'original_name': 'ds2G', 'extra_specs': {'hw_rng:allowed': 'True'}}, 'created': '2022-03-18T03:02:00Z', 'updated': '2022-03-18T03:02:14Z', 'addresses': {'net0': [{'version': 4, 'addr': '10.10.0.101', 'OS-EXT-IPS:type': |
|
|
||||||
| | 'fixed', 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:13:2a:61'}]}, 'accessIPv4': '', 'accessIPv6': '', 'links': [{'rel': 'self', 'href': 'http://192.168.2.100/compute/v2.1/servers/3bd7c3eb-7d9d-4861-9ea3-052286f3238f'}, {'rel': |
|
|
||||||
| | 'bookmark', 'href': 'http://192.168.2.100/compute/servers/3bd7c3eb-7d9d-4861-9ea3-052286f3238f'}], 'OS-DCF:diskConfig': 'MANUAL', 'progress': 0, 'OS-EXT-AZ:availability_zone': 'nova', 'config_drive': '', 'key_name': None, |
|
|
||||||
| | 'OS-SRV-USG:launched_at': '2022-03-18T03:02:28.000000', 'OS-SRV-USG:terminated_at': None, 'security_groups': [{'name': 'default'}], 'OS-EXT-SRV-ATTR:host': 'compute101', 'OS-EXT-SRV-ATTR:instance_name': 'instance-000007bd', |
|
|
||||||
| | 'OS-EXT-SRV-ATTR:hypervisor_hostname': 'compute101', 'OS-EXT-SRV-ATTR:reservation_id': 'r-bi7mipxi', 'OS-EXT-SRV-ATTR:launch_index': 0, 'OS-EXT-SRV-ATTR:hostname': 'vn-31c9-9f66-4930-a74c-1d382610d3c4-vdu2-f2fjfnlznq2l', |
|
|
||||||
| | 'OS-EXT-SRV-ATTR:kernel_id': '', 'OS-EXT-SRV-ATTR:ramdisk_id': '', 'OS-EXT-SRV-ATTR:root_device_name': '/dev/vda', 'OS-EXT-SRV-ATTR:user_data': '...', 'OS-EXT-STS:task_state': None, 'OS-EXT-STS:vm_state': 'active', |
|
|
||||||
| | 'OS-EXT-STS:power_state': 1, 'os-extended-volumes:volumes_attached': [{'id': 'ea8a15c2-45f8-4230-94b0-b79dce28f3dd', 'delete_on_termination': |
|
|
||||||
| | False}], 'host_status': 'UP', 'locked': False, 'locked_reason': None, 'description': None, 'tags': [], 'trusted_image_certificates': None, 'server_groups': [], 'os_collect_config': {}} |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
.. note:: You can check VDU has changed from created by image
|
|
||||||
'de5e0908-2e07-4250-a788-d3b693425f9f' to created by volume
|
|
||||||
'ea8a15c2-45f8-4230-94b0-b79dce28f3dd'.
|
|
||||||
|
|
||||||
How to Change VM created by volume to VM created by image
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Execute Change Current VNF Package CLI command. After complete this change
|
|
||||||
operation you should check resource status by Heat CLI commands.
|
|
||||||
|
|
||||||
1. check 'ID' and 'Stack Status' of the stack before and after operation.
|
|
||||||
This is to confirm that stack 'ID' has changed before and after operation,
|
|
||||||
and that the Stack update has been updated successfully.
|
|
||||||
|
|
||||||
2. check 'physical_resource_id' and 'resource_status' of the VDU.
|
|
||||||
This is to confirm that 'physical_resource_id' of VDU has
|
|
||||||
changed before and after operation, and that the 'resource_status' of VDU has
|
|
||||||
been created successfully.
|
|
||||||
|
|
||||||
3. check 'image' and 'volume' information of VDU before and after operation.
|
|
||||||
This is to confirm that VDU's has changed from created by volume to created
|
|
||||||
by image.
|
|
||||||
|
|
||||||
.. note:: Only single VM support change from image to volume.
|
|
||||||
|
|
||||||
* Check point 1 before operation
|
|
||||||
|
|
||||||
Stack information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ID | Stack Name | Stack Status |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ba66ff3f-cb83-403a-b75a-4ef24f67afea | vnf-e4d76bde-1a4c-40f5-8405-5536403e73d5 | CREATE_COMPLETE |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
|
|
||||||
* Check point 2 before operation
|
|
||||||
|
|
||||||
VDU(single) information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource list ba66ff3f-cb83-403a-b75a-4ef24f67afea
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| resource_name | physical_resource_id | resource_type | resource_status | updated_time |
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| VDU1_scale_in | 26696adeb09b401982afb626b8f6a332 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU1_scale_out | 8edd5b6d76d44843b3a2b6798288f256 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU1_scale | 592c21ca-ed4f-4a4d-bbbd-7c9e80d0f6b0 | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU2 | d6bf000e-021a-4c0c-b043-7936331ed22a | OS::Nova::Server | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU2-VirtualStorage | 60db6ba6-d637-4ba5-9c18-fa5d64930123 | OS::Cinder::Volume | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| multi | 69c67ded-71d5-4d44-9c9f-ba988643c27e | OS::Cinder::VolumeType | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU2_CP1 | 62af0f3a-bcf9-40b6-a12e-fc56152f156c | OS::Neutron::Port | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
+---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
|
|
||||||
* Check point 3 before operation
|
|
||||||
|
|
||||||
VDU(single) detailed information before operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource show ba66ff3f-cb83-403a-b75a-4ef24f67afea VDU2 \
|
|
||||||
-c attributes --fit-width
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Field | Value |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| attributes | {'id': 'd6bf000e-021a-4c0c-b043-7936331ed22a', 'name': 'vn-6bde-1a4c-40f5-8405-5536403e73d5-VDU2-m7zwdqixjkpi', 'status': 'ACTIVE', 'tenant_id': 'b7457dcef9374c2fa72e22c452bb04e9', 'user_id': |
|
|
||||||
| | 'ed6a354ef25041ac92c0e445e91cc9a9', 'metadata': {}, 'hostId': 'd2de6a234a80a445a7ee385f445e6084358f3aef2e110d7bc888ccf2', 'image': '', 'flavor': {'vcpus': 1, 'ram': 512, 'disk': 1, 'ephemeral': 0, 'swap': 0, 'original_name': |
|
|
||||||
| | 'm1.tiny', 'extra_specs': {'hw_rng:allowed': 'True'}}, 'created': '2022-03-18T04:57:35Z', 'updated': '2022-03-18T04:57:49Z', 'addresses': {'net0': [{'version': 4, 'addr': '10.10.0.101', 'OS-EXT-IPS:type': 'fixed', 'OS-EXT- |
|
|
||||||
| | IPS-MAC:mac_addr': 'fa:16:3e:2f:ca:38'}]}, 'accessIPv4': '', 'accessIPv6': '', 'links': [{'rel': 'self', 'href': 'http://192.168.2.100/compute/v2.1/servers/d6bf000e-021a-4c0c-b043-7936331ed22a'}, {'rel': 'bookmark', 'href': |
|
|
||||||
| | 'http://192.168.2.100/compute/servers/d6bf000e-021a-4c0c-b043-7936331ed22a'}], 'OS-DCF:diskConfig': 'MANUAL', 'progress': 0, 'OS-EXT-AZ:availability_zone': 'nova', 'config_drive': '', 'key_name': None, 'OS-SRV- |
|
|
||||||
| | USG:launched_at': '2022-03-18T04:58:03.000000', 'OS-SRV-USG:terminated_at': None, 'security_groups': [{'name': 'default'}], 'OS-EXT-SRV-ATTR:host': 'compute101', 'OS-EXT-SRV-ATTR:instance_name': 'instance-000007be', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:hypervisor_hostname': 'compute101', 'OS-EXT-SRV-ATTR:reservation_id': 'r-ddim06pv', 'OS-EXT-SRV-ATTR:launch_index': 0, 'OS-EXT-SRV-ATTR:hostname': 'vn-6bde-1a4c-40f5-8405-5536403e73d5-vdu2-m7zwdqixjkpi', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:kernel_id': '', 'OS-EXT-SRV-ATTR:ramdisk_id': '', 'OS-EXT-SRV-ATTR:root_device_name': '/dev/vda', 'OS-EXT-SRV-ATTR:user_data': 'Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0yODc5ODU4MTc |
|
|
||||||
| | 5', 'OS-EXT-STS:task_state': None, 'OS-EXT-STS:vm_state': 'active', 'OS-EXT-STS:power_state': 1, 'os-extended-volumes:volumes_attached': [{'id': '60db6ba6-d637-4ba5-9c18-fa5d64930123', 'delete_on_termination': False}], |
|
|
||||||
| | 'host_status': 'UP', 'locked': False, 'locked_reason': None, 'description': None, 'tags': [], 'trusted_image_certificates': None, 'server_groups': [], 'os_collect_config': {}} |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
* Execute Change Current VNF Package
|
|
||||||
|
|
||||||
Change Current VNF Package execution of the entire VNF:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
|
|
||||||
./sample_param_file_for_single_resource.json \
|
|
||||||
--os-tacker-api-version 2
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
Change Current VNF Package for VNF Instance e4d76bde-1a4c-40f5-8405-5536403e73d5 has been accepted.
|
|
||||||
|
|
||||||
* Check point 1 after operation
|
|
||||||
|
|
||||||
Stack information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ID | Stack Name | Stack Status |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
| ba66ff3f-cb83-403a-b75a-4ef24f67afea | vnf-e4d76bde-1a4c-40f5-8405-5536403e73d5 | UPDATE_COMPLETE |
|
|
||||||
+--------------------------------------+------------------------------------------+-----------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
'Stack Status' transitions to UPDATE_COMPLETE.
|
|
||||||
|
|
||||||
* Check point 2 after operation
|
|
||||||
|
|
||||||
VDU(single) information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource list ba66ff3f-cb83-403a-b75a-4ef24f67afea
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| resource_name | physical_resource_id | resource_type | resource_status | updated_time |
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
| VDU1_scale_in | 26696adeb09b401982afb626b8f6a332 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU1_scale_out | 8edd5b6d76d44843b3a2b6798288f256 | OS::Heat::ScalingPolicy | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU1_scale | 592c21ca-ed4f-4a4d-bbbd-7c9e80d0f6b0 | OS::Heat::AutoScalingGroup | UPDATE_COMPLETE | 2022-03-18T05:03:55Z |
|
|
||||||
| VDU2_CP1 | 62af0f3a-bcf9-40b6-a12e-fc56152f156c | OS::Neutron::Port | CREATE_COMPLETE | 2022-03-18T04:57:21Z |
|
|
||||||
| VDU2 | 7687d229-d3c7-4c88-9783-1b0a09bb169f | OS::Nova::Server | CREATE_COMPLETE | 2022-03-18T05:03:23Z |
|
|
||||||
+----------------+--------------------------------------+----------------------------+-----------------+----------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
'resource_status' transitions to CREATE_COMPLETE.
|
|
||||||
'physical_resource_id' changes from
|
|
||||||
'd6bf000e-021a-4c0c-b043-7936331ed22a' to
|
|
||||||
'7687d229-d3c7-4c88-9783-1b0a09bb169f'.
|
|
||||||
|
|
||||||
* Check point 3 after operation
|
|
||||||
|
|
||||||
VDU(single) detailed information after operation:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack stack resource show 5330ea82-0fd6-4a29-a796-0646e7c6815f VDU2 \
|
|
||||||
-c attributes --fit-width
|
|
||||||
|
|
||||||
Result:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Field | Value |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| attributes | {'id': '7687d229-d3c7-4c88-9783-1b0a09bb169f', 'name': 'vn-6bde-1a4c-40f5-8405-5536403e73d5-VDU2-jexec2twpgpp', 'status': 'ACTIVE', 'tenant_id': 'b7457dcef9374c2fa72e22c452bb04e9', 'user_id': |
|
|
||||||
| | 'ed6a354ef25041ac92c0e445e91cc9a9', 'metadata': {}, 'hostId': 'd2de6a234a80a445a7ee385f445e6084358f3aef2e110d7bc888ccf2', 'image': {'id': '6fbf2395-5140-406b-abfe-b80fc0ff7ead', 'links': [{'rel': 'bookmark', 'href': |
|
|
||||||
| | 'http://192.168.2.100/compute/images/6fbf2395-5140-406b-abfe-b80fc0ff7ead'}]}, 'flavor': {'vcpus': 1, 'ram': 512, 'disk': 1, 'ephemeral': 0, 'swap': 0, 'original_name': 'm1.tiny', 'extra_specs': {'hw_rng:allowed': 'True'}}, |
|
|
||||||
| | 'created': '2022-03-18T05:03:23Z', 'updated': '2022-03-18T05:03:32Z', 'addresses': {'net0': [{'version': 4, 'addr': '10.10.0.101', 'OS-EXT-IPS:type': 'fixed', 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:2f:ca:38'}]}, 'accessIPv4': |
|
|
||||||
| | '', 'accessIPv6': '', 'links': [{'rel': 'self', 'href': 'http://192.168.2.100/compute/v2.1/servers/7687d229-d3c7-4c88-9783-1b0a09bb169f'}, {'rel': 'bookmark', 'href': |
|
|
||||||
| | 'http://192.168.2.100/compute/servers/7687d229-d3c7-4c88-9783-1b0a09bb169f'}], 'OS-DCF:diskConfig': 'MANUAL', 'progress': 0, 'OS-EXT-AZ:availability_zone': 'nova', 'config_drive': '', 'key_name': None, 'OS-SRV- |
|
|
||||||
| | USG:launched_at': '2022-03-18T05:03:46.000000', 'OS-SRV-USG:terminated_at': None, 'security_groups': [{'name': 'default'}], 'OS-EXT-SRV-ATTR:host': 'compute101', 'OS-EXT-SRV-ATTR:instance_name': 'instance-000007c0', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:hypervisor_hostname': 'compute101', 'OS-EXT-SRV-ATTR:reservation_id': 'r-rqd3rep5', 'OS-EXT-SRV-ATTR:launch_index': 0, 'OS-EXT-SRV-ATTR:hostname': 'vn-6bde-1a4c-40f5-8405-5536403e73d5-vdu2-jexec2twpgpp', 'OS-EXT- |
|
|
||||||
| | SRV-ATTR:kernel_id': '', 'OS-EXT-SRV-ATTR:ramdisk_id': '', 'OS-EXT-SRV-ATTR:root_device_name': '/dev/vda', 'OS-EXT-SRV-ATTR:user_data': 'Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT02NzkzNzUxNjg |
|
|
||||||
| | 2', 'OS-EXT-STS:task_state': None, 'OS-EXT-STS:vm_state': 'active', 'OS-EXT-STS:power_state': 1, 'os-extended-volumes:volumes_attached': [], 'host_status': 'UP', 'locked': False, 'locked_reason': None, 'description': None, |
|
|
||||||
| | 'tags': [], 'trusted_image_certificates': None, 'server_groups': [], 'os_collect_config': {}} |
|
|
||||||
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
.. note:: You can check VDU has changed from created by volume
|
|
||||||
'60db6ba6-d637-4ba5-9c18-fa5d64930123' to created by image
|
|
||||||
'6fbf2395-5140-406b-abfe-b80fc0ff7ead'.
|
|
||||||
|
|
||||||
How to Change VM created by volume to VM created by volume
|
How to Change VM created by volume to VM created by volume
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -295,8 +295,6 @@ Rollback VNF LCM Operation
|
|||||||
the IP address and Port Id will be recovered by its rollback operation.
|
the IP address and Port Id will be recovered by its rollback operation.
|
||||||
| Otherwise, dynamic IP address and Port Id are not recovered
|
| Otherwise, dynamic IP address and Port Id are not recovered
|
||||||
by rollback operation.
|
by rollback operation.
|
||||||
| Currently, Instantiate VNF with kubernetes vim does not support rollback
|
|
||||||
operation when using v2 API.
|
|
||||||
|
|
||||||
This manual describes the following operations as use cases for
|
This manual describes the following operations as use cases for
|
||||||
rollback operations.
|
rollback operations.
|
||||||
@ -514,10 +512,6 @@ Retry VNF LCM Operation
|
|||||||
-
|
-
|
||||||
- X
|
- X
|
||||||
|
|
||||||
.. note::
|
|
||||||
| Currently, Instantiate VNF with kubernetes vim does not support retry
|
|
||||||
operation when using v2 API.
|
|
||||||
|
|
||||||
This manual describes the following operations as use cases for
|
This manual describes the following operations as use cases for
|
||||||
retry operations.
|
retry operations.
|
||||||
|
|
||||||
|
@ -391,7 +391,12 @@ This is the VNFC instance ID.
|
|||||||
|
|
||||||
This manual shows an example of healing VDU1 as VNFC.
|
This manual shows an example of healing VDU1 as VNFC.
|
||||||
In this manual, **b07ba349-1366-4d14-91e9-07842cdfa7ab** corresponds to
|
In this manual, **b07ba349-1366-4d14-91e9-07842cdfa7ab** corresponds to
|
||||||
the VNFC instance ID of VDU1.
|
the ``VNFC_instance_ID`` of VDU1.
|
||||||
|
|
||||||
|
.. note:: In the case of version 1 API,
|
||||||
|
``VNFC_INSTANCE_ID`` is ``instantiatedVnfInfo.vnfcResourceInfo.id``.
|
||||||
|
In the case of version 2 API,
|
||||||
|
``VNFC_INSTANCE_ID`` is ``instantiatedVnfInfo.vnfcInfo.id``.
|
||||||
|
|
||||||
When healing specified with VNFC instances, the following
|
When healing specified with VNFC instances, the following
|
||||||
APIs are executed from Tacker to Heat.
|
APIs are executed from Tacker to Heat.
|
||||||
|
@ -223,22 +223,28 @@ Deployment`_.
|
|||||||
|
|
||||||
Prepare Kubernetes VIM
|
Prepare Kubernetes VIM
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
First, you need to prepare a server with Kubernetes and Helm installed.
|
The following change is required from original section `Prepare Kubernetes
|
||||||
If the server is deployed by :ref:`Deploy Kubernetes Cluster by helm`,
|
VIM`_:
|
||||||
you can skip steps 1 and 2 below.
|
|
||||||
|
* Skip the VIM registration procedure
|
||||||
|
|
||||||
1. Create a Config File
|
1. Create a Config File
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
You can refer to the `Create a Config File`_ section to create a config file.
|
This step is not required because it is performed in conjunction with the VIM
|
||||||
|
registration during the Helm installation procedure.
|
||||||
|
After completing the procedures in this chapter, execute the following
|
||||||
|
:ref:`Register Kubernetes VIM by helm charts` instead of conventional procedure
|
||||||
|
(`2. Register Kubernetes VIM`_).
|
||||||
|
|
||||||
|
.. _Register Kubernetes VIM by helm charts:
|
||||||
|
|
||||||
2. Register Kubernetes VIM
|
2. Register Kubernetes VIM
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
You can refer to the `Register Kubernetes VIM`_ section to register VIM.
|
If Helm is used, no new registration is required because
|
||||||
|
:ref:`Deploy Kubernetes Cluster by helm` registers VIM when Kubernetes Cluster
|
||||||
3. Confirm VIM status
|
is deployed.
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
For the registered VIM information, confirm that the VIM registered in
|
||||||
For the registered VIM information, confirm that the VIM exists and
|
:ref:`Deploy Kubernetes Cluster by helm` exists and the Status is "REACHABLE".
|
||||||
the Status is "REACHABLE".
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -522,8 +528,6 @@ Reference
|
|||||||
.. _Instantiate VNF : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#set-the-value-to-the-request-parameter-file
|
.. _Instantiate VNF : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#set-the-value-to-the-request-parameter-file
|
||||||
.. _1. Set the Value to the Request Parameter File : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#set-the-value-to-the-request-parameter-file
|
.. _1. Set the Value to the Request Parameter File : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#set-the-value-to-the-request-parameter-file
|
||||||
.. _4. Check the Deployment in Kubernetes : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#check-the-deployment-in-kubernetes
|
.. _4. Check the Deployment in Kubernetes : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#check-the-deployment-in-kubernetes
|
||||||
.. _Create a Config File : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#create-a-config-file
|
|
||||||
.. _Register Kubernetes VIM : https://docs.openstack.org/tacker/latest/user/etsi_containerized_vnf_usage_guide.html#register-kubernetes-vim
|
|
||||||
|
|
||||||
.. [#Helm-Create] : https://helm.sh/docs/helm/helm_create/
|
.. [#Helm-Create] : https://helm.sh/docs/helm/helm_create/
|
||||||
.. [#Helm-Package] : https://helm.sh/docs/helm/helm_package/
|
.. [#Helm-Package] : https://helm.sh/docs/helm/helm_package/
|
||||||
|
@ -2,6 +2,15 @@
|
|||||||
How to use a Sample VNF Package for practical use cases
|
How to use a Sample VNF Package for practical use cases
|
||||||
=======================================================
|
=======================================================
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
This document shows a sample VNF Package and
|
||||||
|
VNF operations with v1 VNF LCM API.
|
||||||
|
Note that v2 API and CNF operations have
|
||||||
|
different requirements for a VNF Package
|
||||||
|
and API parameters.
|
||||||
|
See the API reference and other use case guides
|
||||||
|
for details on requirements.
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -31,25 +31,30 @@ Any file name and class name are acceptable.
|
|||||||
userdata class must inherit "userdata_utils.AbstractUserData",
|
userdata class must inherit "userdata_utils.AbstractUserData",
|
||||||
then functions have to be implemented.
|
then functions have to be implemented.
|
||||||
|
|
||||||
Followings are requirements for methods supported by latest Tacker.
|
Followings are requirements of methods supported by latest Tacker.
|
||||||
|
|
||||||
Input of instantiate()
|
Input of all methods
|
||||||
----------------------
|
--------------------
|
||||||
|
|
||||||
The function can use the following input data.
|
All methods can use the following input data.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
The details of data types are defined in ETSI NFV SOL documents.
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
- req: operationParams corresponding to API request
|
||||||
- inst: VnfInstance
|
- inst: VnfInstance
|
||||||
- grant_req: GrantRequest
|
- grant_req: GrantRequest
|
||||||
- grant: Grants
|
- grant: Grants
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
- tmp_csar_dir: the temporary path of csar expanded by Tacker
|
||||||
|
|
||||||
|
|
||||||
Output of instantiate()
|
Output of methods
|
||||||
-----------------------
|
-----------------
|
||||||
|
|
||||||
The function must return the following structure.
|
The required output is different for methods.
|
||||||
|
|
||||||
|
instantiate()
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The method must return the following structure.
|
||||||
Data are for stack create API in HEAT.
|
Data are for stack create API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -57,9 +62,9 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'template': value, 'parameters': value, 'files': value}
|
fields = {'template': value, 'parameters': value, 'files': value}
|
||||||
|
|
||||||
- template: Dump of top HOT file.
|
- template: Dump of top HOT file
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
- files: Dump of all nested HOT files in the package.
|
- files: Dump of all nested HOT files in the package
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -76,23 +81,10 @@ Following shows sample output.
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
Input of scale()
|
scale()
|
||||||
----------------
|
^^^^^^^
|
||||||
|
|
||||||
The function can use the following input data.
|
The method must return the following structure.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
|
||||||
- inst: VnfInstance
|
|
||||||
- grant_req: GrantRequest
|
|
||||||
- grant: Grants
|
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
|
||||||
|
|
||||||
|
|
||||||
Output of scale()
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The function must return the following structure.
|
|
||||||
Data are for update stack API in HEAT.
|
Data are for update stack API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -100,7 +92,7 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
||||||
|
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -111,23 +103,10 @@ Following shows sample output.
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
Input of scale_rollback()
|
scale_rollback()
|
||||||
-------------------------
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The function can use the following input data.
|
The method must return the following structure.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
|
||||||
- inst: VnfInstance
|
|
||||||
- grant_req: GrantRequest
|
|
||||||
- grant: Grants
|
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
|
||||||
|
|
||||||
|
|
||||||
Output of scale_rollback()
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
The function must return the following structure.
|
|
||||||
Data are for update stack API in HEAT.
|
Data are for update stack API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -135,7 +114,7 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
||||||
|
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -146,23 +125,10 @@ Following shows sample output.
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
Input of change_ext_conn_rollback()
|
change_ext_conn()
|
||||||
-----------------------------------
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The function can use the following input data.
|
The method must return the following structure.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
|
||||||
- inst: VnfInstance
|
|
||||||
- grant_req: GrantRequest
|
|
||||||
- grant: Grants
|
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
|
||||||
|
|
||||||
|
|
||||||
Output of change_ext_conn_rollback()
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
The function must return the following structure.
|
|
||||||
Data are for update stack API in HEAT.
|
Data are for update stack API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -170,7 +136,7 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
||||||
|
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -181,23 +147,10 @@ Following shows sample output.
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
Input of change_ext_conn()
|
change_ext_conn_rollback()
|
||||||
--------------------------
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The function can use the following input data.
|
The method must return the following structure.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
|
||||||
- inst: VnfInstance
|
|
||||||
- grant_req: GrantRequest
|
|
||||||
- grant: Grants
|
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
|
||||||
|
|
||||||
|
|
||||||
Output of change_ext_conn()
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The function must return the following structure.
|
|
||||||
Data are for update stack API in HEAT.
|
Data are for update stack API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -205,7 +158,7 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
||||||
|
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -216,23 +169,10 @@ Following shows sample output.
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
Input of heal()
|
heal()
|
||||||
---------------
|
^^^^^^
|
||||||
|
|
||||||
The function can use the following input data.
|
The method must return the following structure.
|
||||||
The details of data types are defined in ETSI NFV SOL documents.
|
|
||||||
|
|
||||||
- req: InstantiateVnfRequest
|
|
||||||
- inst: VnfInstance
|
|
||||||
- grant_req: GrantRequest
|
|
||||||
- grant: Grants
|
|
||||||
- tmp_csar_dir: the temporary path of csar expanded by Tacker.
|
|
||||||
|
|
||||||
|
|
||||||
Output of heal()
|
|
||||||
----------------
|
|
||||||
|
|
||||||
The function must return the following structure.
|
|
||||||
Data are for update stack API in HEAT.
|
Data are for update stack API in HEAT.
|
||||||
The requirements of HEAT API are described in
|
The requirements of HEAT API are described in
|
||||||
`reference of Orchestration Service API v1
|
`reference of Orchestration Service API v1
|
||||||
@ -240,7 +180,7 @@ The requirements of HEAT API are described in
|
|||||||
|
|
||||||
fields = {'parameters': {'nfv': {}}}
|
fields = {'parameters': {'nfv': {}}}
|
||||||
|
|
||||||
- parameters: Input parameters for Heat API.
|
- parameters: Input parameters for Heat API
|
||||||
|
|
||||||
Following shows sample output.
|
Following shows sample output.
|
||||||
|
|
||||||
@ -250,9 +190,8 @@ Following shows sample output.
|
|||||||
|
|
||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
Sample userdata script using AutoScalingGroup
|
||||||
Sample userdata script
|
=============================================
|
||||||
======================
|
|
||||||
|
|
||||||
If users do not specify the userdata in instantiate VNF request,
|
If users do not specify the userdata in instantiate VNF request,
|
||||||
the default process runs according to the following script.
|
the default process runs according to the following script.
|
||||||
@ -279,6 +218,202 @@ The following is sample Base HOT corresponding to above sample userdata script.
|
|||||||
:language: yaml
|
:language: yaml
|
||||||
|
|
||||||
|
|
||||||
|
Sample userdata script for not using AutoScalingGroup
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
Even if OS::Heat::AutoScalingGroup is not specified in HOT,
|
||||||
|
Tacker can create the desired number of VNFC resources
|
||||||
|
as individual resources on the basis of the VNFD.
|
||||||
|
This configuration enables users to handle individual VNFC resources,
|
||||||
|
e.g. users can change images or networks of specified VNFC.
|
||||||
|
|
||||||
|
The following shows the sample userdata script
|
||||||
|
for handling VNFCs without AutoScalingGroup.
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../tacker/sol_refactored/infra_drivers/openstack/userdata_standard.py
|
||||||
|
|
||||||
|
Following is the specification of the sample UserData script.
|
||||||
|
|
||||||
|
* UserData script calculates the number of VNFCs on the basis of
|
||||||
|
the number of ``VnfInstance.instantiatedVnfInfo.vnfcResourceInfo``,
|
||||||
|
``Grant.addResources``, and ``Grant.removeResources``
|
||||||
|
similar to the method of calculating desired_capacity.
|
||||||
|
`get_param_capacity`, which is one of the utility functions
|
||||||
|
for UserData class can be used to get the number of resources.
|
||||||
|
|
||||||
|
* UserData script describes the same number of resources
|
||||||
|
as VNFC to adjusted HOT.
|
||||||
|
|
||||||
|
* UserData scripts create the resource id of VNFC (e.g. VDU1-0, VDU-1-1).
|
||||||
|
* Properties of resources are copied from BaseHOT.
|
||||||
|
|
||||||
|
* UserData script makes the input-parameter corresponding to Adjusted HOT.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
There is a difference in scale-in operation with and without AutoScalingGroup.
|
||||||
|
VNFCs are deleted in order from the latest in scale-in operation.
|
||||||
|
In the case of using AutoScalingGroup, the latest resource is determined
|
||||||
|
on the basis of the `creation_time` by OpenStack Nova.
|
||||||
|
Since `creation_time` is updated by heal operation,
|
||||||
|
the order of VNFCs is changed dynamically.
|
||||||
|
On the other hand, in the case of not using AutoScalingGroup,
|
||||||
|
the latest resource is determined by the resource-id (e.g. VDU1-0, VDU1-1).
|
||||||
|
Thus the order of the VNFc is not changed by heal operation when not using
|
||||||
|
AutoScalingGroup.
|
||||||
|
|
||||||
|
This userdata script creates the adjusted HOT from BaseHOT
|
||||||
|
in the VNF package and it is used as HEAT template.
|
||||||
|
|
||||||
|
The following shows a sample BaseHOT and adjusted HOT.
|
||||||
|
|
||||||
|
BaseHOT
|
||||||
|
-------
|
||||||
|
|
||||||
|
* top HOT
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
description: Test Base HOT
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
nfv:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
resources:
|
||||||
|
VDU1:
|
||||||
|
type: VDU1.yaml
|
||||||
|
properties:
|
||||||
|
name: { get_param: [ nfv, VDU, VDU1, computeName ] }
|
||||||
|
flavor: { get_param: [ nfv, VDU, VDU1, computeFlavourId ] }
|
||||||
|
image: { get_param: [ nfv, VDU, VDU1, vcImageId ] }
|
||||||
|
zone: { get_param: [ nfv, VDU, VDU1, locationConstraints] }
|
||||||
|
net: { get_param: [ nfv, CP, VDU1_CP1, network] }
|
||||||
|
|
||||||
|
* nested HOT (VDU1.yaml specified in above top HOT)
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
description: 'VDU1 HOT for Sample VNF'
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
zone:
|
||||||
|
type: string
|
||||||
|
net:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
resources:
|
||||||
|
VDU1:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: { get_param: name }
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
image: { get_param: image }
|
||||||
|
networks:
|
||||||
|
- port:
|
||||||
|
get_resource: VDU1_CP1
|
||||||
|
|
||||||
|
availability_zone: { get_param: zone }
|
||||||
|
|
||||||
|
VDU1_CP1:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network: { get_param: net }
|
||||||
|
|
||||||
|
* Input-parameter
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
"nfv": {
|
||||||
|
"VDU": {
|
||||||
|
"VDU1": {
|
||||||
|
"computeName": "VDU1",
|
||||||
|
"computeFlavourId": "m1.tiny",
|
||||||
|
"vcImageId": "6b8a14f0-1b40-418a-b650-ae4a0378daa5",
|
||||||
|
"locationConstraints": "zone-x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CP": {
|
||||||
|
"VDU1_CP1": {
|
||||||
|
"network": "67c837dc-c247-4a3e-ac0f-5603bfef1ba3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Adjusted HOT
|
||||||
|
------------
|
||||||
|
|
||||||
|
* top HOT
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
description: Test Base HOT
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
nfv:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
resources:
|
||||||
|
VDU1-0:
|
||||||
|
type: VDU1.yaml
|
||||||
|
properties:
|
||||||
|
name: { get_param: [ nfv, VDU, VDU1-0, computeName ] }
|
||||||
|
flavor: { get_param: [ nfv, VDU, VDU1-0, computeFlavourId ] }
|
||||||
|
image: { get_param: [ nfv, VDU, VDU1-0, vcImageId ] }
|
||||||
|
zone: { get_param: [ nfv, VDU, VDU1-0, locationConstraints ] }
|
||||||
|
net: { get_param: [ nfv, CP, VDU1_CP1-0, network ] }
|
||||||
|
VDU1-1:
|
||||||
|
type: VDU1.yaml
|
||||||
|
properties:
|
||||||
|
name: { get_param: [ nfv, VDU, VDU1-1, computeName ] }
|
||||||
|
flavor: { get_param: [ nfv, VDU,VDU1-1, computeFlavourId ] }
|
||||||
|
image: { get_param: [ nfv, VDU,VDU1-1, vcImageId ] }
|
||||||
|
zone: { get_param: [ nfv, VDU,VDU1-1, locationConstraints ] }
|
||||||
|
net: { get_param: [ nfv, CP, VDU1_CP1-1,network ] }
|
||||||
|
|
||||||
|
* nested HOT
|
||||||
|
|
||||||
|
Only the top HOT is changed to the adjusted HOT.
|
||||||
|
Nested HOT is unchanged from BaseHOT.
|
||||||
|
|
||||||
|
* Input-parameter
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
"nfv": {
|
||||||
|
"VDU": {
|
||||||
|
"VDU1-0": {
|
||||||
|
"computeName": "VDU1-0",
|
||||||
|
"computeFlavourId": "m1.tiny",
|
||||||
|
"vcImageId": "6b8a14f0-1b40-418a-b650-ae4a0378daa5",
|
||||||
|
"locationConstraints": "zone-x"
|
||||||
|
},
|
||||||
|
"VDU1-1": {
|
||||||
|
"computeName": "VDU1-1",
|
||||||
|
"computeFlavourId": "m1.large",
|
||||||
|
"vcImageId": "0ef0597c-4aab-4235-8513-bf5d8304fe64",
|
||||||
|
"locationConstraints": "zone-y"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CP": {
|
||||||
|
"VDU1_CP1-0": {
|
||||||
|
"network": "67c837dc-c247-4a3e-ac0f-5603bfef1ba3"
|
||||||
|
},
|
||||||
|
"VDU1_CP1-1": {
|
||||||
|
"network": "4d8aa289-21eb-4997-86f2-49a884f78d0b"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Utility functions for userdata class
|
Utility functions for userdata class
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
@ -293,9 +428,9 @@ def get_vnfd(vnfd_id, csar_dir)
|
|||||||
Get vnfd in yaml format.
|
Get vnfd in yaml format.
|
||||||
|
|
||||||
**vnf_id**: vnfid
|
**vnf_id**: vnfid
|
||||||
, **csar_dir**: the path of csar.
|
, **csar_dir**: the path of csar
|
||||||
|
|
||||||
It returns an instance of `**Vnfd** class`_.
|
It returns an instance of `Vnfd class`_.
|
||||||
|
|
||||||
|
|
||||||
def init_nfv_dict(hot_template)
|
def init_nfv_dict(hot_template)
|
||||||
@ -316,7 +451,7 @@ Get flavor of VDU. If Grant contains the flavor, it is returned.
|
|||||||
Otherwise, flavor is obtained from vnfd and returned.
|
Otherwise, flavor is obtained from vnfd and returned.
|
||||||
|
|
||||||
**vdu_name**: the name of VDU
|
**vdu_name**: the name of VDU
|
||||||
, **req**: InstantiateVnfRequest
|
, **req**: operationParams corresponding to API request
|
||||||
, **vnfd**: vnfd
|
, **vnfd**: vnfd
|
||||||
, **grant**: Grants
|
, **grant**: Grants
|
||||||
|
|
||||||
@ -331,7 +466,7 @@ If Grant contains the glance-imageId corresponding to the VDU, it is returned.
|
|||||||
Otherwise, name of software image is obtained from vnfd and returned.
|
Otherwise, name of software image is obtained from vnfd and returned.
|
||||||
|
|
||||||
**vdu_name**: the name of VDU
|
**vdu_name**: the name of VDU
|
||||||
, **req**: InstantiateVnfRequest
|
, **req**: operationParams corresponding to API request
|
||||||
, **vnfd**: vnfd
|
, **vnfd**: vnfd
|
||||||
, **grant**: Grants
|
, **grant**: Grants
|
||||||
|
|
||||||
@ -344,7 +479,7 @@ def get_param_zone(vdu_name, grant_req, grant)
|
|||||||
Get zone id of VDU.
|
Get zone id of VDU.
|
||||||
|
|
||||||
**vdu_name**: the name of VDU
|
**vdu_name**: the name of VDU
|
||||||
, **req**: InstantiateVnfRequest
|
, **req**: operationParams corresponding to API request
|
||||||
, **vnfd**: vnfd
|
, **vnfd**: vnfd
|
||||||
, **grant**: Grants
|
, **grant**: Grants
|
||||||
|
|
||||||
@ -392,7 +527,7 @@ Get network resourceId of CP.
|
|||||||
|
|
||||||
**cp_name**: the name of CP
|
**cp_name**: the name of CP
|
||||||
, **grant**: Grants
|
, **grant**: Grants
|
||||||
, **req**: InstantiateVnfRequest
|
, **req**: operationParams corresponding to API request
|
||||||
|
|
||||||
It returns network resourceId.
|
It returns network resourceId.
|
||||||
|
|
||||||
@ -404,7 +539,7 @@ Get fixed IP addresses of CP.
|
|||||||
|
|
||||||
**cp_name**: the name of CP
|
**cp_name**: the name of CP
|
||||||
, **grant**: Grants
|
, **grant**: Grants
|
||||||
, **req**: InstantiateVnfRequest
|
, **req**: operationParams corresponding to API request
|
||||||
|
|
||||||
It returns fixed IP address of CP.
|
It returns fixed IP address of CP.
|
||||||
|
|
||||||
@ -524,5 +659,5 @@ It returns the result of json_merge_patch (IETF RFC 7396).
|
|||||||
.. _VNF Package manual: https://docs.openstack.org/tacker/latest/user/vnf-package.html
|
.. _VNF Package manual: https://docs.openstack.org/tacker/latest/user/vnf-package.html
|
||||||
.. _reference of Orchestration Service API v1 "POST /v1/{tenant_id}/stacks": https://docs.openstack.org/api-ref/orchestration/v1/?expanded=create-stack-detail#create-stack
|
.. _reference of Orchestration Service API v1 "POST /v1/{tenant_id}/stacks": https://docs.openstack.org/api-ref/orchestration/v1/?expanded=create-stack-detail#create-stack
|
||||||
.. _reference of Orchestration Service API v1 "PATCH /v1/{tenant_id}/stacks/{stack_name}/{stack_id}": https://docs.openstack.org/api-ref/orchestration/v1/?expanded=update-stack-patch-detail#update-stack-patch
|
.. _reference of Orchestration Service API v1 "PATCH /v1/{tenant_id}/stacks/{stack_name}/{stack_id}": https://docs.openstack.org/api-ref/orchestration/v1/?expanded=update-stack-patch-detail#update-stack-patch
|
||||||
.. _**Vnfd** class: ../../../tacker/sol_refactored/common/vnfd_utils.py
|
.. _Vnfd class: https://github.com/openstack/tacker/blob/master/tacker/sol_refactored/common/vnfd_utils.py#L33
|
||||||
.. _ETSI NFV SOL003: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf
|
.. _ETSI NFV SOL003: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf
|
||||||
|
Loading…
Reference in New Issue
Block a user