Zed Series Release Notes

8.0.0

Prelude

The 8.0.0 release includes many new features and bug fixes. Please be sure to read the upgrade section which describes the required actions to upgrade your cloud from 7.0.0 (Yoga) to 8.0.0 (Zed). There are a few major updates introduced in Zed.

  • ETSI NFV V2 APIs for CNF Heal, Scale and Rollback operation.

  • VNF AutoHealing triggered by FaultNotification.

  • Individual VNFc management using HOT.

  • OpenID for Kubernetes VIM Authentication.

  • Robot framework for ETSI NFV based auto testing.

  • Database synchronization between Tacker and Kubernetes to enable maintainers to get status of pods from Tacker.

New Features

  • Add a Sample Ansible Driver as an option for users who want to use ansible for configuration of 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. User manual is also provided to explain the steps in preparing the environment to use Ansible Driver.

  • Support AutoHealing using FaultNotification interface between Tacker and VIM. Provide sample Mgmt driver script to register/unregister FaultNotification interface. At the same time, a user guide is also made to help users understand the function.

  • 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.

  • 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.

  • 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 patch adds the ability to periodically synchronize resources in K8s VIM and Tacker DB. There is no interface on the K8s to notify Tacker when the auto-scale or auto-heal of a pod is running and the pod information is updated. This can lead to inconsistencies between the Pod information in Tacker database and the Pod information running on the actual K8s. This function periodically checks the pod information in the Tacker database and the pod information in the K8s, and updates the information in the Tacker database according to the K8s side if there is any inconsistency.

  • Adding the VNF version upgrading function to the tacker-db-manage command, which enables users to upgrade VNFs from v1 to v2 without re-instantiating it.

  • In the current implementation, when users invoke update operation of ConfigMaps and Secrets, all Pods are restarted even if they don’t use those updated ConfigMaps and Secrets.

    Remove this limitation by filtering out resources that use Configmaps/Secrets and restarting those resources.

  • When executing the ‘openstack vim register’ or ‘openstack vim set’ command, if the extra parameter is specified in the config-file, data is stored in the extra field of the VIM DB. Develop to accept the vimConnectionInfo.extra field, if present, in the input parameter file when performing a CNF deployment via helm.

  • Support Change Current VNF Package API to change external CP. We add new functions to Openstack and UserData class, and extVirtualLinks parameter to ChangeCurrentVnfPkgRequest.

  • Support container based VNF AutoHeal and AutoScale operation with External Monitoring Tools. Add the Fault Management interfaces and CLI to support AutoHeal. AutoHeal supports two modes, Polling Mode and Notification Mode. Add the Performance Management interfaces and CLI to support AutoScale. The Fault Management and Performance Management interfaces are based on ETSI NFV-SOL 002 v3.3.1 and ETSI NFV-SOL 003 v3.3.1, which are Version “2.0.0” API of Tacker. Add the Prometheus Plugin that has a interface between tacker and the External Monitoring Tool. Prometheus Plugin supports data model conversion from Prometheus format data to SOL based FM/PM schema, and vice versa. At the same time, a user guide is also made to help users understand the function.

  • Support CNF Heal/Scale/Rollback operation in v2 LCM API. This feature provides the following CNF operations in v2 LCM API based on ETSI NFV specifications and instantiatiationLevel parameter to determine the initial number of Pods. * Scale VNF task * Heal VNF task * Rollback operation task (instantiate and scale-out)

  • Support LCM operations using Helm chart for v2 LCM API. This feature enables v2 LCM operations with Helm chart, instantiationLevel parameter to determine the initial number of Pods, and vimConnectionInfo.extra field.

  • Support individual VNFC management using OpenStack Heat. New sample BaseHOT, corresponding UserData script, and utility functions are added to UserData class for v2 VNF Lifecycle management API.

  • The Ansible driver can only run specific script files. Due to multi artifact support of mgmt driver, it will be extended to specify script files to be executed in each life cycle. This will be achieved by implementing primary and dependencies keys defined by TOSCA, primary can define the primary script, dependencies can define a secondary script that will be referenced by the primary script.

  • Adds “openid token” authentication strategy for Kubernetes VIM. Users can specify openid authentication parameters in the VIM Register Request or the VNF Instantiate Request to indicate tacker to use openid token for authentication.

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

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.

Upgrade Notes

  • Enable the creation of multiple VNF from a single VNF package during CNF instantiation (V1 API) by specifying vdu_mapping parameter in additionalParams.

    Please refer to our documentation for detail about specifying vdu_mapping parameter.

  • Improve performance of Tacker by refactoring some code, and corrects the output level of log.

    At the same time, the redirection when V2 calls HEAT’s API is removed instead of direct call, and the subcription filter when sends notification is improved in V1 code.

Bug Fixes

  • Fixes bug 1959885. Error 416 will come when range end greater than or equal to the size of the file is specified in fetching artifact.

  • Fixes bug 1960194. storageResourceIds of scaled out VDU will be populated correctly. storageResourceIds will be same as virtualStorageResourceInfo id.

  • Fixes bug 1967049. The name of change_ext_conn is wrongly mentioned in OpenStack document. It’s correct value is change-ext-conn. Corrected name from change_ext_conn to change-ext-conn in document.

  • Fixes bug 1967053. ipAddresses field is missing in the param file to instantiate the vnf in the document. This bug fixes the ipAddresses field in the example file in instantiation VNF OpenStack document.

  • Fixes bug 1973372. affectedVirtualStorages should be absent in notification when VNFD does not contain virtual storage.

  • Fixes bug 1976440, errors occurred while using the Mgmt Driver for LCM operations.

  • Fixes bug 1978071, the issue that k8s resource initialization fails when the manifest file contains special fields such as ‘exec’, ‘not’, ‘except’, ‘continue’, ‘from’.

  • Fixes bug 1978563. Number format value will be allowed in additionalParams section of instantiation json.

  • Fixes bug 1979413, create temp ssl cert file and set it to k8s client config if ‘ssl_ca_cert’ exists in VimConnectionInfo.interfaceInfo.

  • Fixes bug 1981183. Error logs will be generated when an error occurs in the process of Instantiation.

  • Fixes bug 1983096. When exception occurs in exception block of instantiation, heal, termination, change external connectivity operations then notification was not sent. After fix of this bug notification will be sent successfully.

  • Fixes bug 1983575. In a multi-tenant environment, tacker disallows deletion operation and showing of subscription details belonging to different tenants.

Other Notes

  • Added negative functional test cases for the multi-tenant environment, to validate that Tacker disallows deletion operation and sharing subscription and VNF package details of different tenants.