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
|
||||
required: false
|
||||
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:
|
||||
description: |
|
||||
Additional parameters passed by the NFVO as input to the process,
|
||||
@ -1281,7 +1293,20 @@ vnf_instance_description:
|
||||
type: string
|
||||
vnf_instance_extensions:
|
||||
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
|
||||
required: false
|
||||
type: key value pairs
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
||||
|
||||
"additionalParams": {
|
||||
"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",
|
||||
"vdu_params": [{
|
||||
"vdu_id": "VDU1",
|
||||
"old_vnfc_param": {
|
||||
@ -31,5 +30,195 @@
|
||||
"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
|
||||
- vnfdId: change_vnfpkg_vnfd_id
|
||||
- extVirtualLinks: ext_virtual_links
|
||||
- vimConnectionInfo: change_current_vnf_package_vim_connection_info
|
||||
- additionalParams: change_current_vnf_package_additional_params
|
||||
|
||||
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",
|
||||
"additionalParams": {
|
||||
"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"],
|
||||
"vdu_params": [{
|
||||
"vdu_id": "VDU1"
|
||||
@ -93,13 +89,15 @@ definition file before running command for changing the VNF package.
|
||||
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
|
||||
"additionalParams": {
|
||||
"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:
|
||||
|
||||
.. list-table:: additionalParams
|
||||
@ -112,60 +110,12 @@ You can set following parameter in additionalParams:
|
||||
* - upgrade_type
|
||||
- 1
|
||||
- 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
|
||||
- 0..N
|
||||
- VDU information of target VDU to update. Specifying a vdu_params is required for OpenStack VIM and not required for Kubernetes VIM.
|
||||
- 1..N
|
||||
- VDU information of target VDU to update.
|
||||
* - > vdu_id
|
||||
- 1
|
||||
- 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
|
||||
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
|
||||
update the path of the manifest file of the deployment resource.
|
||||
* ``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
|
||||
``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
|
||||
``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
|
||||
|
||||
$ 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
|
||||
===================================================================
|
||||
===============================================
|
||||
|
||||
This section covers how to deploy ETSI NFV-SOL containerized VNF
|
||||
in Tacker using Kubernetes VIM.
|
||||
@ -41,7 +41,7 @@ The following figure shows an overview of the CNF deployment.
|
||||
Prepare Kubernetes VIM
|
||||
=======================
|
||||
1. Create a Config File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Before register a Kubernetes VIM to tacker, we should create config file.
|
||||
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",
|
||||
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
|
||||
|
||||
$ cat vim-k8s.yaml
|
||||
auth_url: "https://192.168.33.100:6443"
|
||||
project_name: "default"
|
||||
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
|
||||
LWNhMB4XDTIwMDgyNjA5MzIzMVoXDTMwMDgyNDA5MzIzMVowEjEQMA4GA1UEAxMH
|
||||
a3ViZS1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkeE16lPAd
|
||||
@ -90,72 +75,6 @@ the control target of Tacker.
|
||||
2ZrqgOcTmyFzFh9h2dj1DJWvCvExybRmzWK1e8JMzTb40MEApyY=
|
||||
-----END CERTIFICATE-----"
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -205,7 +124,6 @@ the [1. Create a config file] chapter.
|
||||
| auth_url | https://192.168.33.100:6443 |
|
||||
| created_at | 2020-10-19 08:08:12.116040 |
|
||||
| description | |
|
||||
| extra | helm_info=masternode_ip=['192.168.33.100'], masternode_password=helm_user, masternode_username=helm_pass |
|
||||
| id | 8d8373fe-6977-49ff-83ac-7756572ed186 |
|
||||
| is_default | False |
|
||||
| name | test-vim-k8s |
|
||||
@ -240,9 +158,6 @@ Also we can check if the status of VIM is REACHABLE by
|
||||
|
||||
Prepare VNF Package
|
||||
===================
|
||||
|
||||
If we want to deploy CNF through helm, we can refer to `Prepare VNF Package`_.
|
||||
|
||||
1. Create Directories of VNF Package
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
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:
|
||||
|
||||
2. Create a Kubernetes Object File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
A CSAR VNF package shall have a object file that defines Kubernetes resources
|
||||
to be deployed.
|
||||
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
|
||||
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]_.
|
||||
|
||||
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
|
||||
===============
|
||||
|
||||
If we want to deploy CNF through helm, we can refer to `Instantiate VNF`_.
|
||||
|
||||
1. Set the Value to the Request Parameter File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
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.
|
||||
In this case, specify the type and name of the resource corresponding to the
|
||||
`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
|
||||
|
||||
$ cat ./instance_kubernetes.json
|
||||
@ -844,7 +775,7 @@ chapter.
|
||||
Instantiate request for VNF Instance 92cf0ccb-e575-46e2-9c0d-30c67e75aaf6 has been accepted.
|
||||
|
||||
3. Check the Instantiation State
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
We could check the Instantiation State by running the following command.
|
||||
When the Instantiation State is INSTANTIATED, indicate the instantiation is
|
||||
successful.
|
||||
@ -945,7 +876,3 @@ References
|
||||
.. [#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
|
||||
.. [#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
|
||||
|
||||
etsi_containerized_vnf_usage_guide
|
||||
etsi_cnf_helm_v2
|
||||
|
||||
Scale
|
||||
^^^^^
|
||||
@ -108,9 +109,6 @@ Container
|
||||
Error Handling
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
VM
|
||||
~~
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
@ -119,8 +117,8 @@ VM
|
||||
.. TODO(h-asahina): add `Action Driver`
|
||||
* https://etherpad.opendev.org/p/tacker-wallaby-revise-docs
|
||||
|
||||
Management Driver
|
||||
^^^^^^^^^^^^^^^^^
|
||||
Management Driver (v1 API)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. TODO(h-asahina): add `Overview`
|
||||
* 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
|
||||
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::
|
||||
You can deploy a VM directly by image, or you can create a volume by image
|
||||
first, and then create a VM by the volume. Therefore, when updating the
|
||||
image of the VM, there will be four cases. The above four links correspond
|
||||
to four cases respectively.
|
||||
You can deploy a VM directly by image or volume.
|
||||
Therefore, when updating the
|
||||
image of the VM, there will be two cases.
|
||||
|
||||
Use the common VNF package and the flavor_id after the above four links to
|
||||
instantiate, and then use the VNF package in the corresponding link to
|
||||
execute ``change current vnf package`` operation, you can update the image
|
||||
of the VM in the following four ways.
|
||||
Use the common VNF package and the flavor_id to instantiate,
|
||||
and then use the VNF package in the corresponding link to
|
||||
execute ``change current vnf package`` operation,
|
||||
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
|
||||
|
||||
2. change VM created by image to VM created by volume
|
||||
|
||||
3. change VM created by volume to VM created by image
|
||||
|
||||
4. change VM created by volume to VM created by new volume
|
||||
2. change VM created by volume to VM created by new volume
|
||||
|
||||
Change Current VNF Package
|
||||
--------------------------
|
||||
@ -100,9 +83,7 @@ definition file before running command for changing the VNF package.
|
||||
"additionalParams": {
|
||||
"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",
|
||||
"vdu_params": [{
|
||||
"vdu_id": "VDU1",
|
||||
"old_vnfc_param": {
|
||||
@ -140,9 +121,7 @@ definition file before running command for changing the VNF package.
|
||||
"additionalParams": {
|
||||
"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",
|
||||
"vdu_params": [{
|
||||
"vdu_id": "VDU2",
|
||||
"old_vnfc_param": {
|
||||
@ -174,15 +153,9 @@ You can set following parameter in additionalParams:
|
||||
* - 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
|
||||
- 0..N
|
||||
- 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``
|
||||
param.
|
||||
|
||||
* Currently only support update images of VMs.
|
||||
* Currently only support update images of VMs and modify external networks..
|
||||
|
||||
* Currently unsupported updates:
|
||||
|
||||
* This API currently does not support increasing or decreasing the number
|
||||
of VNFcs according to the VNF package.
|
||||
* The add and delete operations of the entire VDU are not supported.
|
||||
* In the definition of ETSI, external networks (e.g. extVirtualLinks,
|
||||
extManagedVirtualLinks) can be modified. This API currently does not
|
||||
support the operations of modifying, adding, and deleting these
|
||||
networks.
|
||||
* In the definition of ETSI, external and internal networks
|
||||
(e.g. extVirtualLinks, extManagedVirtualLinks) can be modified.
|
||||
This current API supports the operations of modifying external
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -599,381 +574,6 @@ See `Heat CLI reference`_. for details on Heat CLI commands.
|
||||
'3f87132d-0c98-42a6-aa7b-b7db1f25e4fa' to
|
||||
'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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
@ -295,8 +295,6 @@ Rollback VNF LCM Operation
|
||||
the IP address and Port Id will be recovered by its rollback operation.
|
||||
| Otherwise, dynamic IP address and Port Id are not recovered
|
||||
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
|
||||
rollback operations.
|
||||
@ -514,10 +512,6 @@ Retry VNF LCM Operation
|
||||
-
|
||||
- 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
|
||||
retry operations.
|
||||
|
||||
|
@ -391,7 +391,12 @@ This is the VNFC instance ID.
|
||||
|
||||
This manual shows an example of healing VDU1 as VNFC.
|
||||
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
|
||||
APIs are executed from Tacker to Heat.
|
||||
|
@ -223,22 +223,28 @@ Deployment`_.
|
||||
|
||||
Prepare Kubernetes VIM
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
First, you need to prepare a server with Kubernetes and Helm installed.
|
||||
If the server is deployed by :ref:`Deploy Kubernetes Cluster by helm`,
|
||||
you can skip steps 1 and 2 below.
|
||||
The following change is required from original section `Prepare Kubernetes
|
||||
VIM`_:
|
||||
|
||||
* Skip the VIM registration procedure
|
||||
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
You can refer to the `Register Kubernetes VIM`_ section to register VIM.
|
||||
|
||||
3. Confirm VIM status
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
For the registered VIM information, confirm that the VIM exists and
|
||||
the Status is "REACHABLE".
|
||||
If Helm is used, no new registration is required because
|
||||
:ref:`Deploy Kubernetes Cluster by helm` registers VIM when Kubernetes Cluster
|
||||
is deployed.
|
||||
For the registered VIM information, confirm that the VIM registered in
|
||||
:ref:`Deploy Kubernetes Cluster by helm` exists and the Status is "REACHABLE".
|
||||
|
||||
.. 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
|
||||
.. _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
|
||||
.. _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-Package] : https://helm.sh/docs/helm/helm_package/
|
||||
|
@ -2,6 +2,15 @@
|
||||
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
|
||||
--------
|
||||
|
||||
|
@ -31,25 +31,30 @@ Any file name and class name are acceptable.
|
||||
userdata class must inherit "userdata_utils.AbstractUserData",
|
||||
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.
|
||||
|
||||
- req: InstantiateVnfRequest
|
||||
- req: operationParams corresponding to API request
|
||||
- inst: VnfInstance
|
||||
- grant_req: GrantRequest
|
||||
- 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.
|
||||
The requirements of HEAT API are described in
|
||||
`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}
|
||||
|
||||
- template: Dump of top HOT file.
|
||||
- parameters: Input parameters for Heat API.
|
||||
- files: Dump of all nested HOT files in the package.
|
||||
- template: Dump of top HOT file
|
||||
- parameters: Input parameters for Heat API
|
||||
- files: Dump of all nested HOT files in the package
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -76,23 +81,10 @@ Following shows sample output.
|
||||
return fields
|
||||
|
||||
|
||||
Input of scale()
|
||||
----------------
|
||||
scale()
|
||||
^^^^^^^
|
||||
|
||||
The function can use the following input data.
|
||||
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.
|
||||
The method must return the following structure.
|
||||
Data are for update stack API in HEAT.
|
||||
The requirements of HEAT API are described in
|
||||
`reference of Orchestration Service API v1
|
||||
@ -100,7 +92,7 @@ The requirements of HEAT API are described in
|
||||
|
||||
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
||||
|
||||
- parameters: Input parameters for Heat API.
|
||||
- parameters: Input parameters for Heat API
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -111,23 +103,10 @@ Following shows sample output.
|
||||
return fields
|
||||
|
||||
|
||||
Input of scale_rollback()
|
||||
-------------------------
|
||||
scale_rollback()
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The function can use the following input data.
|
||||
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.
|
||||
The method must return the following structure.
|
||||
Data are for update stack API in HEAT.
|
||||
The requirements of HEAT API are described in
|
||||
`reference of Orchestration Service API v1
|
||||
@ -135,7 +114,7 @@ The requirements of HEAT API are described in
|
||||
|
||||
fields = {'parameters': {'nfv': {'VDU': new_vdus}}}
|
||||
|
||||
- parameters: Input parameters for Heat API.
|
||||
- parameters: Input parameters for Heat API
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -146,23 +125,10 @@ Following shows sample output.
|
||||
return fields
|
||||
|
||||
|
||||
Input of change_ext_conn_rollback()
|
||||
-----------------------------------
|
||||
change_ext_conn()
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The function can use the following input data.
|
||||
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.
|
||||
The method must return the following structure.
|
||||
Data are for update stack API in HEAT.
|
||||
The requirements of HEAT API are described in
|
||||
`reference of Orchestration Service API v1
|
||||
@ -170,7 +136,7 @@ The requirements of HEAT API are described in
|
||||
|
||||
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
||||
|
||||
- parameters: Input parameters for Heat API.
|
||||
- parameters: Input parameters for Heat API
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -181,23 +147,10 @@ Following shows sample output.
|
||||
return fields
|
||||
|
||||
|
||||
Input of change_ext_conn()
|
||||
--------------------------
|
||||
change_ext_conn_rollback()
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The function can use the following input data.
|
||||
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.
|
||||
The method must return the following structure.
|
||||
Data are for update stack API in HEAT.
|
||||
The requirements of HEAT API are described in
|
||||
`reference of Orchestration Service API v1
|
||||
@ -205,7 +158,7 @@ The requirements of HEAT API are described in
|
||||
|
||||
fields = {'parameters': {'nfv': {'CP': new_cps}}}
|
||||
|
||||
- parameters: Input parameters for Heat API.
|
||||
- parameters: Input parameters for Heat API
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -216,23 +169,10 @@ Following shows sample output.
|
||||
return fields
|
||||
|
||||
|
||||
Input of heal()
|
||||
---------------
|
||||
heal()
|
||||
^^^^^^
|
||||
|
||||
The function can use the following input data.
|
||||
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.
|
||||
The method must return the following structure.
|
||||
Data are for update stack API in HEAT.
|
||||
The requirements of HEAT API are described in
|
||||
`reference of Orchestration Service API v1
|
||||
@ -240,7 +180,7 @@ The requirements of HEAT API are described in
|
||||
|
||||
fields = {'parameters': {'nfv': {}}}
|
||||
|
||||
- parameters: Input parameters for Heat API.
|
||||
- parameters: Input parameters for Heat API
|
||||
|
||||
Following shows sample output.
|
||||
|
||||
@ -250,9 +190,8 @@ Following shows sample output.
|
||||
|
||||
return fields
|
||||
|
||||
|
||||
Sample userdata script
|
||||
======================
|
||||
Sample userdata script using AutoScalingGroup
|
||||
=============================================
|
||||
|
||||
If users do not specify the userdata in instantiate VNF request,
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
====================================
|
||||
|
||||
@ -293,9 +428,9 @@ def get_vnfd(vnfd_id, csar_dir)
|
||||
Get vnfd in yaml format.
|
||||
|
||||
**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)
|
||||
@ -316,7 +451,7 @@ Get flavor of VDU. If Grant contains the flavor, it is returned.
|
||||
Otherwise, flavor is obtained from vnfd and returned.
|
||||
|
||||
**vdu_name**: the name of VDU
|
||||
, **req**: InstantiateVnfRequest
|
||||
, **req**: operationParams corresponding to API request
|
||||
, **vnfd**: vnfd
|
||||
, **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.
|
||||
|
||||
**vdu_name**: the name of VDU
|
||||
, **req**: InstantiateVnfRequest
|
||||
, **req**: operationParams corresponding to API request
|
||||
, **vnfd**: vnfd
|
||||
, **grant**: Grants
|
||||
|
||||
@ -344,7 +479,7 @@ def get_param_zone(vdu_name, grant_req, grant)
|
||||
Get zone id of VDU.
|
||||
|
||||
**vdu_name**: the name of VDU
|
||||
, **req**: InstantiateVnfRequest
|
||||
, **req**: operationParams corresponding to API request
|
||||
, **vnfd**: vnfd
|
||||
, **grant**: Grants
|
||||
|
||||
@ -392,7 +527,7 @@ Get network resourceId of CP.
|
||||
|
||||
**cp_name**: the name of CP
|
||||
, **grant**: Grants
|
||||
, **req**: InstantiateVnfRequest
|
||||
, **req**: operationParams corresponding to API request
|
||||
|
||||
It returns network resourceId.
|
||||
|
||||
@ -404,7 +539,7 @@ Get fixed IP addresses of CP.
|
||||
|
||||
**cp_name**: the name of CP
|
||||
, **grant**: Grants
|
||||
, **req**: InstantiateVnfRequest
|
||||
, **req**: operationParams corresponding to API request
|
||||
|
||||
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
|
||||
.. _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
|
||||
.. _**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
|
||||
|
Loading…
Reference in New Issue
Block a user