Yoga Series Release Notes

7.0.0

New Features

  • Support multi-version of RESTfulAPI. The client can use both VNF LCM API “1.3.0” and “2.0.0” defined by ETSI NFV.

  • Add new RESTful APIs of List VNF LCM API versions and Show VNF LCM API versions based on ETSI NFV specifications. They enable the client to retrieve supported versions of VNF LCM API.

  • Add the following new version of RESTful APIs based on ETSI NFV specifications. Version “2.0.0” API of Create VNF, Delete VNF, Instantiate VNF, Terminate VNF, List VNF, Show VNF, List VNF LCM operation occurrence, Show VNF LCM operation occurrence, Create subscription, List subscription, and Show subscription are added.

  • VNF LCM API “2.0.0” provides a new type of userdata script and utility functions to describe it. They enable the user to freely operate HEAT to meet the unique requirements of VNF.

  • Add a Sample Ansible Driver as an option for users who want to use Ansible to configure VNFs. This Ansible Driver supports the key LCMs such as instantiate_end, scale_start, scale_end, heal_end and terminate_start. A Sample VNF package which contains sample usage of Ansible Driver is provided. The user manual is also provided to explain the steps in preparing the environment to use Ansible Driver.

  • Add Change Current VNF Package API based on ETSI NFV specifications. Tacker supports a VNF upgrade using this API. Currently, it only supports “RollingUpdate” out of several methods for a VNF upgrade.

  • Add the Version “2.0.0” of Change external VNF connectivity API based on ETSI NFV specifications.

  • Support Container-based VNF operation with the following new version of RESTful APIs based on ETSI NFV specifications. Version “2.0.0” API of Instantiate VNF, Terminate VNF, and Change Current VNF Package support Kubernetes vim. Other APIs besides Scale VNF and Heal VNF, such as Create VNF, Delete VNF, List VNF, Show VNF, and so on have already supported Kubernetes vim because they use common processing that does not depend on vim type: OpenStack, Kubernetes. Version “2.0.0” API of Scale VNF and Heal VNF with Kubernetes vim will be supported in future.

  • Add the Version “2.0.0” of Fail operation API based on ETSI NFV specifications.

  • Add the Version “2.0.0” of Heal VNF API based on ETSI NFV specifications.

  • Add the Version “2.0.0” of Modify VNF Information API based on ETSI NFV specifications.

  • Add the Version “2.0.0” of Retry operation API based on ETSI NFV specifications.

  • Add the Version “2.0.0” of Rollback operation API based on ETSI NFV specifications.

  • Add the Version “2.0.0” of Scale VNF API based on ETSI NFV specifications.

  • Support ETSI NFV compliant automated testing by using the Robot Framework and ETSI NFV-TST API test codes. This feature uses the Robot Framework which utilizes the ETSI NFV-TST API test codes to test tacker for ETSI NFV compliance in a Black Box testing level. This is an additional quality test measure to ensure that the added tacker features comply to the ETSI NFV standards.

  • This feature is to enable the customisation of stack parameters during scale and heal operation through lcm_user_data script. Users can provide stack parameters through lcm_user_data script.

  • Functions to enable the use of Docker private registry images in a Kubernetes Cluster environment. We provide the sample of MgmtDriver which can deploy Docker private registry VNF for Kubernetes cluster before deploying Kubernetes cluster VNF, and deploy Kubernetes cluster VNF that can support both the Docker private registry created above and any others created outside of Tacker.

    Instantiate operation for Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on newly created all Master/Worker VMs.

    Scale-out operation for Kubernetes cluster Worker-nodes with MgmtDriver: MgmtDriver configures connections with Docker private registries on newly created Worker VMs.

    Heal operation for the entire Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on the created all Master/Worker VMs.

    Heal operation for a single node in Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on the created Master/Worker VM.

  • Add a new interface for Kubernetes VIM to handle Helm chart. It enables Users to include Helm chart files as MCIOP in their VNF Packages, to instantiate and terminate CNF with them. And update sample of MgmtDriver to install and configure Helm package for using Helm CLI command in the deployed Kubernetes cluster VNF, and to restore the registered helm repositories and charts after the master node is healed.

  • MgmtDriver function configures applications provided by VNF vendors. VNF vendors can customize configuration methods for applications via MgmtDriver. These customizations are specified by “interface” definition in ETSI NFV-SOL001 v2.6.1. We provide the sample of MgmtDriver and scripts which can deploy a Kubernetes cluster. It can use kubespray as Ansible playbooks to install Kubernetes cluster VNF, and also install and configure HAproxy load balancer for the Kubernetes cluster. We also provide a user guide to help users understand how to use this feature.

    Instantiate kubernetes cluster: The Kubernetes cluster can be instantiated with VNF Lifecycle Management Interface in ETSI NFV-SOL 003 v2.6.1.

    Scale Kubernetes worker node: Scaling operations on the Worker-nodes for the VNF including Kubernetes cluster is supported with MgmtDriver.

    Heal kubernetes worker node: Healing operations on the Worker-nodes for the VNF including Kubernetes cluster is supported with MgmtDriver.

  • The user specifies the target namespace in the InstantiateVnfRequest to deploy the CNF on the Kubernetes VIM. The additionalParams field provides the new parameter namespace for the target namespace. The Kubernetes resources in the VNF must be in the same namespace.

  • Support multi-tenant policy in VNF Lifecycle Management. The feature separates resources such as Virtualized Infrastructure Managers(VIMs), Virtualized Network Function Packages (VNF packages), and Virtualized Network Function Lifecycle Management Interface (VNF LCM) related to ETSI NFV-SOL based VNF management concerning tenants. Only allows VNF instantiation by VIM of the same tenant. This feature does not address the known issue of allowing non admin users to instantiate VNFs, it may be addressed in a future release.

  • Support handling large query results according to ETSI NFV SOL013. This feature provides paged response regarding a query request of target APIs. In addition to that, fetching entire records at once becomes available.

  • Support deploying Kubernetes cluster VNF which has a storage server with Cinder volume. This feature enables users to deploy CNF which has PersistentVolume on it. The following changes are added for MgmtDriver.

    • Create a storage server VM with Cinder volume.

    • Expose Cinder volume as NFS shared directories in the storage server.

    • Register NFS shared directories as Kubernetes PersistentVolumes.

    • Install NFS client on newly created Master/Worker VMs in all LCM operations.

  • Support configuration changes to VNF instances by adding modify_start and modify_end to MgmtDriver for the Modify VNF operation. We provide the sample of MgmtDriver which changes the configuration of ConfigMap and Secret in Kubernetes and changes the image parameters in the Pod and Deployment manifests.

Known Issues

  • Regarding Sample Ansible Driver, currently, deployment flavors share only one config.yaml due to a limitation in Management Driver.

  • Regarding ETSI NFV compliant automated testing, some of the tests are failing due to bugs (1) Tacker Bug and (2) Issues in the ETSI NFV-TST API test codes. (1) Tacker Bug such as Bug-#1945387 was detected in this compliance test and the corresponding test is currently failing. Test will pass once the bug is fixed. (2) Issues in the ETSI NFV-TST API test codes such as schema and mock server location issues also caused some tests to fail. Tests will pass once the issues are resolved. Due to these existing failed items, this test is currently non-voting.

  • A non-admin user can not instantiate VNFs.

  • Regarding handling large query results according to ETSI NFV SOL013, “vnfpkgm/v1/vnf_packages” API does not have the paging feature yet because of longer time to be implemented than the other APIs. Since there is less possibility to be paged in actual use case, the implementation will be done in the next release.

Upgrade Notes

  • Change scale operation of CNF that is instantiated with Helm chart to perform using Helm CLI by specifying replica count parameters for each aspect_id at instantiation in advance. This change makes that upgrading the Helm values (e.g. nodeSelector or tolerations) directly in Kubernetes VIM after a scale operation from Tacker does not change the number of replicas.