ETSI NFV-SOL CNF 更新

本文档描述了在 Tacker 中更新 CNF 的方法。请参阅 使用 Mgmt Driver 更新 ETSI NFV-SOL CNF,了解如何在 Tacker 中使用 Mgmt Driver 更新 CNF。

注意

本文档的内容已确认使用以下 VNF 包有效。

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

执行 ETSI NFV-SOL CNF(容器化 VNF)部署 流程中的“创建 VNF”到“实例化 VNF”步骤。

CNF 更新流程

如前提条件中所述,必须先创建 CNF 才能执行更新。

CLI 命令的详细信息请参阅 使用 v2 Tacker 进行 VNF 生命周期管理

要更新 VNF 实例,您需要准备一个 JSON 格式的定义文件。

{
  "vnfInstanceName": "sample"
}

注意

sample_param_file.json 包含 VNF 名称作为示例。更新操作可以更新以下内容:

  • vnfInstanceName

  • vnfInstanceDescription

  • vnfId

  • vnfConfigurableProperties

  • metadata

  • extensions

  • vnfcInfoModifications

  • vimConnectionInfo

注意

更新操作可以更改与现有 VNF 实例关联的 vimConnectionInfo。即使更新操作指定了与一个 VNF 实例关联的多个 vimConnectionInfo,也只会使用其中一个用于生命周期管理操作。无法删除已注册的 vimConnectionInfo 的键。

如何更新 CNF

执行更新 CLI 命令,并在更新前后检查 VNF 实例的名称。这是为了确认更新后 VNF 实例的名称已更改。

更新前的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID -c 'VNF Instance Name' \
  --os-tacker-api-version 2

结果

+-------------------+-------+
| Field             | Value |
+-------------------+-------+
| VNF Instance Name |       |
+-------------------+-------+

可以通过以下 CLI 命令执行更新 VNF:

$ openstack vnflcm update VNF_INSTANCE_ID --I sample_param_file.json \
  --os-tacker-api-version 2

结果

Update vnf:431b94b5-d7ba-4d1c-aa26-ecec65d7ee53

注意

创建描述要更改的资源信息的文件。

操作后的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID -c 'VNF Instance Name' \
  --os-tacker-api-version 2

结果

+-------------------+--------+
| Field             | Value  |
+-------------------+--------+
| VNF Instance Name | sample |
+-------------------+--------+

您可以确认 VNF 实例名称已通过更新操作更改。

如果更新操作没有更改 vnfdId,则应使用请求参数更新当前值。以下属性通过使用请求参数中的值与当前值进行 JSON Merge Patch 来更新:

  • vnfConfigurableProperties

  • metadata

  • extensions

如果更新操作请求更改 vnfdId,则除了请求参数中设置的属性外,VNF 实例的以下属性也应更新。这些属性将使用与新的 vnfdId 关联的 VNFD 中的值进行更新。

  • vnfProvider

  • vnfProductName

  • vnfSoftwareVersion

  • vnfdVersion

注意

在 CNF 的更新操作中,如果在更新 vnfdId 后执行“Scale”(扩展)或“Heal”(修复)操作,则应使用 更新 vnfdId 关联的 VNF 包。因此,为了维护 vnfdId 的更新,有必要先执行一次“Terminate VNF”(终止 VNF),然后执行“Instantiate VNF”(实例化 VNF)。