Tacker Horizon 中的 NFV 编排 API v2.0

本规范建议在 Tacker horizon 中支持 NFV 编排 API v2.0 [1]。当前的 tacker-horizon 仅提供调用遗留 API 的功能,这些 API 包含在 NFV 编排 API v1.0 中。由于 Tacker 社区已经宣布废弃遗留 API,我们应该将其更新为使用 v2.0 API 的视图。

https://blueprints.launchpad.net/tacker/+spec/v2-api-horizon

问题描述

Tacker 主要有两个 NFV 编排 API:v1.0 和 v2.0。其中,tacker-horizon 仅支持遗留 Tacker API,它是 v1.0 API 之一,包含三个 API,即遗留 Tacker API、虚拟化网络功能包 (VNF 包) 和虚拟化网络功能生命周期管理接口 (VNF LCM)。虽然 Tacker 被定义为由 API 客户端(如 NFVO/EM)调用,因此不一定需要提供 GUI,但一些尝试使用 Tacker 进行评估的人员首先会使用 tacker-horizon [2]。当前的 tacker-horizon 会给他们带来误解,认为 Tacker 同时充当 NFVO/VNFM,或者不符合 ETSI NFV 标准。为了避免这种情况,我们需要更新 tacker-horizon。

提议的变更

本规范建议使用以下最新的 NFV 编排 API v2.0 更新 tacker-horizon。

  • 虚拟化网络功能生命周期管理接口 (VNF LCM) v2

  • 虚拟化网络功能故障管理接口 (VNF FM) v1

  • 虚拟化网络功能性能管理接口 (VNF PM) v2

以下两个也包含在 v2.0 API 中的 API 不在范围内,因为它们仅假设由 Prometheus 等监控工具调用。

  • Prometheus 插件接口

  • 故障通知接口

此外,为了管理用于测试的 VNF 包,本规范还建议支持编排 API v1.0,如下所示。

  • 虚拟化网络功能包 (VNF 包)

注意

VNF 包管理本质上是 NFVO 功能,但是,在实验环境中,由于 NFVO 可能不可用,VNFM 自身管理 VNF 包更容易。

开发步骤如下。

  1. 重命名当前仪表板面板组(即 VNF 管理和 NFV 编排)为明确显示其为遗留版本的名称

  2. (可选) 向当前面板组添加弃用警告

  3. 在 tacker-horizon 的 tacker-client 中添加调用 v2.0 API 的新方法

  4. 添加并实现 v2.0 API 的新面板组

术语

元素名称

本文档的其余部分使用以下图中描述的元素名称。

../../../_images/data-table.png ../../../_images/detail-tab.png ../../../_images/modal.png

输入字段类型

以下符号用于指定输入字段类型。

<File>: 上传表单

示例

../../../_images/file.png

<KeyValue>: 键值对表单

示例

../../../_images/keyvalue.png

<Checkbox>: 复选框

示例

../../../_images/checkbox.png

FIELD!: FIELD 是必需的

示例

../../../_images/required.png

[A|B]: 包含值 A 和 B 的选项

示例

../../../_images/options.png

注意

按钮和上述下拉菜单都可以接受为实现这些选项的方式。

当前的 Tacker-horizon

这些图像显示了当前 tacker-horizon 的面板组。

../../../_images/current-th-1.png ../../../_images/current-th-2.png

上述图像中显示的 NFV 仪表板的结构如下所述。

  • VNF 管理
    • VNF 目录

    • VNF 管理器

  • NFV 编排
    • VIM 管理

    • VNFFG 目录

    • VNFFG 管理器

    • NS 目录

    • NS 管理器

它们都属于遗留 API,因此将在接下来的几个周期中删除。

建议的 Tacker-horizon

下面描述了建议的 tacker-horizon 的结构。基本上,预计这些面板将实现与相应的 CLI 命令相同的功能 [3]

  • VNF 包

  • VNF LCM v2
    • VNF LCM

    • VNF OP OCC

    • LCCN 订阅

  • VNF FM v1
    • 警报

    • 订阅

  • VNF PM v2
    • PM 作业

    • PM 阈值

在以下部分,将描述每个面板的详细信息。

VNF 包

数据表内容
  • ID

  • VNF 产品名称

  • 入职状态

  • 使用状态

  • 运行状态

表操作
  • 上传 VNF 包

  • 删除 VNF 包

“上传 VNF 包”操作执行创建 VNF 包信息和上传 VNF 包。

行操作
  • 获取 VNF 包

  • 更新 VNF 包信息

  • 删除 VNF 包

  • 创建 VNF 标识符

表操作菜单

详细信息选项卡组
  • VNF 包详细信息选项卡
    • 附加工件

    • 校验和

    • ID

    • 链接

    • 入职状态

    • 运行状态

    • 软件镜像

    • 使用状态

    • 用户定义的数据

    • VNF 产品名称

    • VNF 提供商

    • VNF 软件版本

    • VNFD ID

    • VNFD 版本

VNF LCM v2/VNF LCM

数据表内容
  • ID

  • VNF 实例名称

  • 实例化状态

  • VNF 提供商

  • VNF 软件版本

  • VNF 产品名称

  • VNFD ID

表操作
  • 创建 VNF 标识符

  • 删除 VNF 标识符

行操作
  • 实例化 VNF

  • 终止 VNF

  • 删除 VNF 标识符

  • 修复 VNF

  • 更新 VNF

  • 缩放 VNF

  • 更改外部 VNF 连接

  • 更改当前 VNF 包

表操作菜单

详细信息选项卡组
  • 列出 LCM 操作事件
    • ID

    • OperationState

    • VnfInstanceID

    • Operation

    • [行操作]
      • 回滚 VNF 生命周期管理操作

      • 重试

      • 失败

  • VNF 实例详细信息选项卡
    • ID

    • 已实例化的 Vnf 信息

    • 实例化状态

    • 链接

    • VIM 连接信息

    • VNF 实例描述

    • VNF 实例名称

    • VNF 产品名称

    • VNF 提供商

    • VNF 软件版本

    • VNFD ID

    • VNFD 版本

列出 LCM 操作事件的详细信息选项卡将重定向到 VNF LCMOPOCC v2 面板。按 VNF 实例 ID 过滤的列出 LCM 操作事件。

模态表单视图
  • 创建 VNF 标识符
    • VNFD ID!

    • 参数文件 <File>

    • 名称

    • 描述

  • 实例化 VNF
    • VNF 实例!

    • 参数文件! <File>

  • 终止 VNF
    • 终止类型 [GRACEFUL|FORCEFUL]

    • 优雅终止超时

    • 删除 VNF 实例 <Checkbox>

  • 修复 VNF
    • 原因

    • VNFC 实例

  • 更新 VNF
    • 参数文件! <File>

  • 缩放 VNF
    • 类型! [SCALE_IN|SCALE_OUT]

    • 方面 ID!

    • 步骤数

    • 参数文件 <File>

  • 更改外部 VNF 连接
    • 参数文件! <File>

  • 更改当前 VNF 包
    • 参数文件! <File>

VNF LCM v2/VNF LCM OP OCC

数据表内容
  • ID

  • OperationState

  • VnfInstanceID

  • Operation

表操作
  • 回滚 VNF 生命周期管理操作

  • 重试

  • 失败

对多个 VNF OP OCC 应用操作。

行操作
  • 回滚 VNF 生命周期管理操作

  • 重试

  • 失败

表操作菜单

详细信息选项卡组
  • VNF OP OCC 详细信息选项卡
    • CancelMode

    • ChangedExtConnectivity

    • ChangedInfo

    • Error

    • GrantID

    • ID

    • IsAutomaticInvocation

    • IsCancelPending

    • 链接

    • Operation

    • OperationParams

    • OperationState

    • ResourceChanges

    • StartTime

    • StateEnteredTime

    • VnfInstanceID

模态表单视图

VNF LCM v2/LCCN 订阅

数据表内容
  • ID

  • 回调 URI

表操作
  • 创建 Lccn 订阅

  • 删除 Lccn 订阅

行操作
  • 删除 Lccn 订阅

表操作菜单

详细信息选项卡组
  • LCCN 订阅详细信息选项卡
    • 回调 URI

    • 过滤器

    • ID

    • 链接

模态表单视图
  • 创建 Lccn 订阅
    • 参数文件! <File>

VNF FM v1/订阅

数据表内容
  • ID

  • 回调 Uri

表操作
  • 创建订阅

  • 删除订阅

行操作
  • 删除订阅

表操作菜单

详细信息选项卡组
  • VNF FM 订阅详细信息选项卡
    • 回调 Uri 过滤器

    • ID

    • 链接

模态表单视图
  • 创建订阅
    • 参数文件! <File>

VNF FM v1/警报

数据表内容
  • ID

  • 受管对象 ID

  • 确认状态

  • 事件类型

  • 感知严重性

  • 可能原因

表操作

行操作
  • 更新警报

表操作菜单

详细信息选项卡组
  • VNF FM 警报详细信息选项卡
    • 确认状态

    • 警报确认时间

    • 警报更改时间

    • 警报清除时间

    • 警报引发时间

    • 关联警报 ID

    • 事件时间

    • 事件类型

    • 故障详细信息

    • 故障类型

    • ID

    • 是根本原因

    • 链接

    • 受管对象 ID

    • 感知严重性

    • 可能原因

    • 根本原因故障资源

    • VNFC 实例 ID

模态表单视图
  • 更新警报
    • VNF FM 警报 ID!

    • ACK 状态! [ACKNOWLEDGED|UNACKNOWLEDGED]

VNF PM v2/PM 作业

数据表内容
  • ID

  • 对象类型

  • 链接

表操作
  • 创建 PM 作业

  • 删除 PM 作业

行操作
  • 更新 PM 作业

  • 删除 PM 作业

表操作菜单

详细信息选项卡组
  • VNF PM 作业详细信息选项卡
    • 回调 URI

    • 标准

    • ID

    • 链接

    • 对象实例 ID

    • 对象类型

    • 报告

    • 子对象实例 ID

  • PM 作业报告
    • 条目

PM 作业报告列出了报告字段的 PM 作业的详细信息。

模态表单视图
  • 创建 PM 作业
    • 参数文件! <File>

  • 更新 PM 作业
    • 参数文件! <File>

VNF PM v2/PM 阈值

数据表内容
  • ID

  • 对象类型

  • 链接

表操作
  • 创建 PM 阈值

  • 删除 PM 阈值

行操作
  • 更新 PM 阈值

  • 删除 PM 阈值

表操作菜单

详细信息选项卡组
  • VNF PM 阈值详细信息选项卡
    • 回调 URI

    • 标准

    • ID

    • 链接

    • 对象实例 ID

    • 对象类型

    • 子对象实例 ID

模态表单视图
  • 创建 PM 阈值
    • 参数文件! <File>

  • 更新 PM 阈值
    • 参数文件! <File>

讨论

  • 您需要决定是否维护 VIM 管理

  • 生成参数文件的表单可以在未来的版本中实现,但本周期内不会实现

备选方案

只是宣布 tacker-horizon 不支持最新的 2.0 API。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

使用当前 tacker-horizon 的 Tacker 用户会受到影响。

性能影响

无。

其他部署者影响

使用当前 tacker-horizon 的 Tacker 用户会受到影响。

开发人员影响

我们需要维护 tacker-horizon 以及服务器端 API。

实现

负责人

主要负责人
其他贡献者
  • 待定

工作项

  1. 重命名当前仪表板面板组(即 VNF 管理和 NFV 编排)为明确显示其为遗留版本的名称

  2. (可选) 向当前面板组添加弃用警告

  3. 在 tacker-horizon 的 tacker-client 中添加调用 v2.0 API 的新方法

  4. 添加并实现 v2.0 API 的新面板组

依赖项

测试

测试 tacker-horizon 已经在另一个 BP 中提出,不在此文档的范围内。

文档影响

无。

参考资料