Yoga 系列发布说明¶
7.0.0¶
新特性¶
支持 RESTfulAPI 的多版本。客户端可以使用 ETSI NFV 定义的 VNF LCM API “1.3.0” 和 “2.0.0”。
新增基于 ETSI NFV 规范的 List VNF LCM API 版本和 Show VNF LCM API 版本 RESTful API。它们使客户端能够检索支持的 VNF LCM API 版本。
新增基于 ETSI NFV 规范的以下新的 RESTful API 版本。新增了创建 VNF、删除 VNF、实例化 VNF、终止 VNF、列出 VNF、显示 VNF、列出 VNF LCM 操作发生、显示 VNF LCM 操作发生、创建订阅、列出订阅和显示订阅的版本 “2.0.0” API。
VNF LCM API “2.0.0” 提供了一种新的 userdata 脚本类型和实用函数来描述它。它们使用户能够自由操作 HEAT 以满足 VNF 的独特需求。
添加了一个示例 Ansible Driver,作为用户希望使用 ansible 配置 VNFs 的选项。此 Ansible Driver 支持关键 LCM,例如 instantiate_end、scale_start、scale_end、heal_end 和 terminate_start。提供了一个包含 Ansible Driver 示例用法的示例 VNF 包。还提供了用户手册,解释使用 Ansible Driver 的环境准备步骤。
新增基于 ETSI NFV 规范的 Change Current VNF Package API。Tacker 支持使用此 API 进行 VNF 升级。目前,它仅支持 VNF 升级的几种方法中的“RollingUpdate”。
新增基于 ETSI NFV 规范的 Change external VNF connectivity API 的版本 “2.0.0”。
支持基于 ETSI NFV 规范的以下新的 RESTful API 的基于容器的 VNF 操作。新增了 Kubernetes vim 的版本 “2.0.0” API 的实例化 VNF、终止 VNF 和更改当前 VNF 包。除了 Scale VNF 和 Heal VNF 之外的其他 API,例如 Create VNF、Delete VNF、List VNF、Show VNF 等,由于它们使用不依赖于 vim 类型(OpenStack、Kubernetes)的通用处理,因此已经支持 Kubernetes vim。未来将支持带有 Kubernetes vim 的 Scale VNF 和 Heal VNF 的版本 “2.0.0” API。
新增基于 ETSI NFV 规范的 Fail operation API 的版本 “2.0.0”。
新增基于 ETSI NFV 规范的 Heal VNF API 的版本 “2.0.0”。
新增基于 ETSI NFV 规范的 Modify VNF Information API 的版本 “2.0.0”。
新增基于 ETSI NFV 规范的 Retry operation API 的版本 “2.0.0”。
新增基于 ETSI NFV 规范的 Rollback operation API 的版本 “2.0.0”。
新增基于 ETSI NFV 规范的 Scale VNF API 的版本 “2.0.0”。
通过使用 Robot Framework 和 ETSI NFV-TST API 测试代码支持符合 ETSI NFV 标准的自动化测试。此功能使用 Robot Framework,它利用 ETSI NFV-TST API 测试代码以黑盒测试级别测试 tacker 的 ETSI NFV 合规性。这是额外的质量测试措施,以确保添加的 tacker 功能符合 ETSI NFV 标准。
此功能旨在在 scale 和 heal 操作期间通过 lcm_user_data 脚本自定义堆栈参数。用户可以通过 lcm_user_data 脚本提供堆栈参数。
提供在 Kubernetes 集群环境中启用 Docker 私有注册表镜像使用的功能。我们提供 MgmtDriver 的示例,可以在部署 Kubernetes 集群 VNF 之前为 Kubernetes 集群部署 Docker 私有注册表 VNF,并部署可以支持上述创建的 Docker 私有注册表以及在 Tacker 外部创建的任何其他注册表的 Kubernetes 集群 VNF。
使用 MgmtDriver 的 Kubernetes 集群实例化操作:MgmtDriver 配置与新创建的所有 Master/Worker VM 上的 Docker 私有注册表的连接。
使用 MgmtDriver 的 Kubernetes 集群 Worker-nodes 扩展操作:MgmtDriver 配置与新创建的 Worker VM 上的 Docker 私有注册表的连接。
使用 MgmtDriver 的整个 Kubernetes 集群 Heal 操作:MgmtDriver 配置与创建的所有 Master/Worker VM 上的 Docker 私有注册表的连接。
使用 MgmtDriver 的 Kubernetes 集群中单个节点 Heal 操作:MgmtDriver 配置与创建的 Master/Worker VM 上的 Docker 私有注册表的连接。
添加了用于处理 Helm chart 的 Kubernetes VIM 新接口。它允许用户将 Helm chart 文件作为 MCIOP 包含在他们的 VNF 包中,以便使用它们来实例化和终止 CNF。并更新 MgmtDriver 示例以安装和配置 Helm 包,以便在部署的 Kubernetes 集群 VNF 中使用 Helm cli 命令,并在 master 节点恢复后恢复已注册的 helm 仓库和 chart。
MgmtDriver 功能配置 VNF 供应商提供的应用程序。VNF 供应商可以通过 MgmtDriver 自定义应用程序的配置方法。这些自定义由 ETSI NFV-SOL001 v2.6.1 中的“interface”定义指定。我们提供 MgmtDriver 示例和脚本,这些脚本可以部署 Kubernetes 集群。它可以使用 kubespray 作为 Ansible playbook 来安装 Kubernetes 集群 VNF,并安装和配置 HAproxy 负载均衡器以用于 Kubernetes 集群。我们还提供用户指南,帮助用户了解如何使用此功能。
实例化 kubernetes 集群:可以使用 ETSI NFV-SOL 003 v2.6.1 中的 VNF 生命周期管理接口来实例化 Kubernetes 集群。
扩展 kubernetes worker node:使用 MgmtDriver 支持对包括 Kubernetes 集群的 VNF 的 Worker-nodes 进行扩展操作。
Heal kubernetes worker node:使用 MgmtDriver 支持对包括 Kubernetes 集群的 VNF 的 Worker-nodes 进行 Heal 操作。
用户在 InstantiateVnfRequest 中指定目标命名空间,以在 Kubernetes VIM 上部署 CNF。additionalParams 字段为目标命名空间提供了新的参数
namespace。VNF 中的 Kubernetes 资源必须位于同一命名空间中。
支持 VNF 生命周期管理中的多租户策略。此功能根据 ETSI NFV-SOL 的 VNF 管理分离资源,例如虚拟化基础设施管理器 (VIM)、虚拟化网络功能包 (VNF 包) 和虚拟化网络功能生命周期管理接口 (VNF LCM) 与租户相关。仅允许由相同租户的 VIM 实例化 VNF。此功能未解决允许非管理员用户实例化 VNFs 的已知问题,未来版本可能会解决该问题。
支持根据 ETSI NFV SOL013 处理大型查询结果。此功能为目标 API 的查询请求提供分页响应。除此之外,还可以一次性获取所有记录。
支持部署具有 Cinder 卷的存储服务器的 Kubernetes 集群 VNF。此功能使用户能够部署在其上具有 PersistentVolume 的 CNF。为 MgmtDriver 添加了以下更改。
使用 Cinder 卷创建一个存储服务器 VM。
在存储服务器中将 Cinder 卷作为 NFS 共享目录公开。
将 NFS 共享目录注册为 Kubernetes PersistentVolumes。
在所有 LCM 操作中,在新创建的 Master/Worker VM 上安装 NFS 客户端。
通过在 MgmtDriver 中添加
modify_start和modify_end来支持对 VNF 实例进行配置更改,以用于 Modify VNF 操作。我们提供 MgmtDriver 的示例,该示例更改 Kubernetes 中的 ConfigMap 和 Secret 的配置,并更改 Pod 和 Deployment 清单中的镜像参数。
已知问题¶
关于示例 Ansible Driver,由于 Management Driver 的限制,目前部署 flavor 仅共享一个 config.yaml。
关于符合 ETSI NFV 标准的自动化测试,由于错误(1)Tacker Bug 和(2)ETSI NFV-TST API 测试代码中的问题,一些测试失败了。(1) 在此合规性测试中检测到 Tacker Bug,例如 Bug-#1945387,并且相应的测试目前失败。修复错误后测试将通过。(2) ETSI NFV-TST API 测试代码中的问题,例如 schema 和 mock 服务器位置问题,也导致一些测试失败。解决这些问题后测试将通过。由于这些现有的失败项目,此测试目前不具有投票权。
非管理员用户无法实例化 VNFs。
关于根据 ETSI NFV SOL013 处理大型查询结果,“vnfpkgm/v1/vnf_packages” API 尚未具有分页功能,因为与其他 API 相比,实现时间较长。由于实际用例中分页的可能性较小,因此将在下一个版本中完成实现。
升级说明¶
更改使用 Helm chart 实例化的 CNF 的 scale 操作,以通过指定在实例化时提前为每个 aspect_id 指定副本计数参数来使用 Helm cli 执行。此更改使得从 Tacker 进行 scale 操作后,直接在 Kubernetes VIM 中升级 Helm 值(例如 nodeSelector 或 tolerations)不会更改副本数。