Nephio R3 Release Notes

Overview

The theme of R3 is the strengthening of the platform and preparation for O-RAN. As such, a key focus in this release has been on improving the functional robustness, stability, and usability of the Nephio core components. In addition, a significant effort has been made to improve the documentation and simplify developer workflows, to ease the onboarding of new developers into the Nephio community. A number of O-RAN user stories have been triaged in readiness for implementation in future releases.

Prerequisites

Refer to the Install Guide for the prerequisites on supported environments.

Support matrix

The sandbox environment requires a physical or virtual machine with the following:

  • Ubuntu-20.04-focal or Ubuntu 22.04 Linux Or Fedora 34.
  • A minimum of eight cores. 16 cores is the recommended quantity, however, as they are needed for end-to-end testing with RAN and core.
  • 32 GB memory.
  • 200 GB disk size.
  • A default user with sudo passwordless permissions.

This installation has been verified on virtual machines (VMs) running on Google Cloud.

A Nephio sandbox can be created on any Kubernetes cluster, from v1.26 onwards.

Features

API

No changes.

Web UI

The UI has received a dependency refresh. A new Tabs component has been introduced, as well as fixes to security vulnerabilities.

Packages

The following packages have been introduced:

  • Catalog fixes.
  • Packages for deploying OSC RIC.

Functionalities

  • Platform

    • Fixes, security patches, and enhancements to Porch. See Appendix for details.
    • The Porch development environment has been improved, with a tutorial, script support, and makefile targets now available. Developers can now do the following: VSCode towards a local KIND porch installation.
      • Run the end-to-end tests locally.
      • Work on Linux or MacOS locally or using a VM.
    • The Porch documentation has been improved with the addition of a Porch tutorial, which takes the user through the main Porch use cases. Documentation on how to use Porchctl has also been added.
    • The Porch build and test toolchain has been augmented. The additions include the following:
      • Upgrading the Go version to 1.22.
      • Adding GitHub actions, to build the latest Porch and Porchctl images.
      • Support for running the Porch/Porchctl tests locally.
      • Upgrading the versions of various dependencies.
  • Documentation

  • Nephio experimental

    • Ytt-declarative-configuration is a generic KPT function that uses the power YTT to achieve higher-level intent automation, reducing the complexities and costs associated with infrastructure provisioning. This simplifies the deployment and management for the operator by enabling YTT’s templating capabilities to configure the network functions.
    • Tko is a self-contained playground for new ideas for Nephio’s future.
      • It stores all the data in a traditional SQL backend by default, including support for planetary-scale databases, such as Spanner.
      • It validates the Kubernetes Resource Machine (KRM), before allowing it to be stored in the backend.
      • It implements a minimalistic plugin system. An SDK for Python-based plugins is included, together with support for kpt functions.
      • It includes a topology plugin, with support for TOSCA, as well as native Helm support.
      • It implements a more declarative specialization workflow.
      • It includes web and terminal user interfaces (TUIs).
  • Security

    • The OpenSSF best practices score has improved from 3.6 to 7.6.
    • Release digital signing automation.
    • A vulnerability reporting process has been set in place.

Fixes

  • The Porchctl development builds have been added.
  • The Rpkg update panic has been fixed.
  • The Porch race condition has been fixed.
  • High package approval time in Porch has been fixed. This should reduce the overall deployment time.
  • Porch package revision fixes have been performed.
  • Porch connection failure with self-signed certificates has been fixed.
  • The OAI RAN operator has been updated to reflect the NFDeployment status.

Limitations

  • Intercluster networking is not dynamic. Therefore, as more clusters are deployed, some manual tweaking will be needed for intercluster communications.
  • Provisioning of the VLAN interfaces on the nodes is currently performed manually.
  • Feedback of the workload deployments from the workload clusters to the management cluster is limited. You may need to connect directly to the workload cluster via kubectl to resolve any deployment issues.
  • The web UI features are limited to the viewing and editing of packages, and resources in those packages, and their deployment. Additional features will be added in subsequent releases.
  • When the capacities of the UPF, SMF, and AMF NFs are changed, the free5GC operator on the workload cluster will instantiate a new POD with correspondingly modified resources (CPU, memory, and so on). During this process, the pod will restart. This is a limitation of free5GC.
  • Only Gitea works with automated cluster provisioning to create new repositories and join them to Nephio. To use a different Git provider, you must manually provision the cluster repositories, register them to the Nephio management server, and set up Config Sync on the workload cluster.
  • The web UI does not require authentication in the current demo configuration. Testing of the web UI with authentication configured has not yet been done.
  • The web UI only shows the resources in the default namespace.
  • While many types of Git authentication are supported, testing has only been done with token-based Git authentication in Gitea.

Known issues and workarounds

  • Packages may take time to be approved by the auto-approval controller. If they appear to have frozen, it may help to restart the Porch and the Nephio controllers using the following commands:
kubectl -n porch-system rollout restart deploy porch-server
kubectl -n nephio-system rollout restart deploy nephio-controller
  • Occasional calls to porchctl rpkg copy may fail with the following message:

    Error: Internal error occurred: error applying patch: conflict: fragment line does not match src line.

    If such a message appears, then retry in a little while, as this error may resolve itself. Restarting Porch may also help.

Appendix

Porch fixes and enhancements