本作品采用知识共享署名 3.0 未移植许可协议授权。
http://creativecommons.org/licenses/by/3.0/legalcode
Inline VNF 模板¶
https://blueprints.launchpad.net/tacker/+spec/vnf-inline-template
此蓝图将引入对 tacker vnf-create 命令的支持,使其 VNFD ID 可选。相反,支持一种选项,可以直接将 VNFD 模板传递给 vnf-create API / CLI。
问题描述¶
目前 VNF Catalog 是 Tacker 解决方案不可或缺的一部分。在实例化之前,VNFD 模板应该已经填充到 VNF Catalog 中。但是,当 Tacker 仅用作 G-VNFM 时,存在 VNF/NFV Catalog 存在于 Tacker 之外的情况。对于这些解决方案,使用 Tacker 的 VNF Catalog 没有意义。
在这种情况下,VNFD 模板将通过 CLI/API 在 VNF 创建期间直接提供。
提议的变更¶
VNFD 模板将直接提供给 CLI/API,同时创建 VNF。模板将不会作为 VNFD 入板。Tacker DB 将保存有关所用模板性质的信息。Tacker 服务器在创建 VNF 时,将绕过获取 VNFD 的逻辑,而是调用 tosca-parser 和 Heat APIs 来生成 VNF。Inline VNF 模板将优先于在 VNF 创建期间指定的 VNFD 名称或 ID。
备选方案¶
有两种方法可以实现这一点。
根本不在 Tacker DB 中存储模板。这似乎完全符合此 BP 的最初想法。但是,当存在过多的 VNF 时,将 VNF 映射到所用模板会变得困难。
将模板存储在 Tacker DB 的 VNFD 表中。模板将通过 “–all” 标志在 “vnfd list” 中显示。
此规范讨论的是选项 2。
数据模型影响¶
需要向 VNFD 表添加一列 “template-source”,指示模板的性质。该字段将具有 2 个值,即 “inline”(表示直接传递的模板)或 “onboarded”(表示从 Tacker DB 使用的模板)。
需要实现从 vnf 名称派生模板名称的逻辑。模板名称将为 “tmpl-<random-hex>-vnf-name”。
REST API 影响¶
‘Create VNF’ API 将具有一个 “vnf-template” 字段,该字段将保存用于 VNF 的模板。
‘Show VNFD’ API 将具有逻辑,根据是否提供了 “–all” 标志来删除 “template” 字段。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
客户端和 Horizon 变更
在 “create vnf” 命令中添加 “vnf-template” 参数
实现偏好逻辑,在同时指定模板和 vnfd ID 或名称时,优先考虑 vnfd-template
向 “vnfd list” API 添加 “all” 标志,以同时列出 inline 模板。这仅适用于 CLI,不适用于 Horizon
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Janki Chhatbar <jchhatba@redhat.com>
工作项¶
将 “vnf-template” 和 “all” 参数添加到 Tackerclient
实现优先考虑 inline 模板的逻辑
在服务器上实现变更
添加功能测试用例
添加有关使用此功能的用法指南
更新 API 参考指南,网址为 [1]
依赖项¶
无
测试¶
添加此功能的函数和单元测试。
文档影响¶
将提供用户指南。
参考资料¶
[1]. https://opendev.org/openstack/tacker/src/branch/master/api-ref/source/v1/vnfs.inc