Nephio R3 Release Notes

Overview

The theme of R3 is “strengthen the platform ; get ready for O-RAN”. As such, a major 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 put into improving the documentation and simplifying developer workflows, to ease 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

Please refer to the Install Guide for the prerequisites on supported environments.

Support Matrix

The sandbox environment requires a physical or virtual machine with:

  • Ubuntu-20.04-focal or Ubuntu 22.04 Linux Or Fedora 34
  • Minimum 8 cores and Recommended 16 cores (Needed for end-to-end testing with RAN and core )
  • 32 GB memory
  • 200 GB disk size
  • Default user with sudo passwordless permissions

This installation has been verified on VMs running on Google Cloud.

A Nephio sandbox can be created on any Kubernetes cluster v1.26 and above.

Features

API

No changes

Web UI

UI received dependency refresh, new Tabs component and security vulnerabilities fixes.

Packages

  • Catalog fixes
  • Packages to deploy OSC RIC

Functionalities

  • Platform

    • Fixes, Security patches and enhancements to Porch. See Appendix for details.
    • The Porch development environment is much improved, with a tutorial, script support, and makefile targets available. Developers can now
      • Run Porch locally on Kind
      • Run the Porch Server or Porch controllers in 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 was improved with the addition of a Porch tutorial, which steps the user through the main Porch use cases. Documentation on how to use Porchctl was also added
    • The Porch build and test toolchain was heavily augmented. Among them was stepping 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, and stepping the versions of various dependencies.
  • Documentation

  • Nephio experimental

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

    • OpenSSF best practices score improved from 3.6 to 7.6
    • Release digital signing automation
    • Vulnerability reporting process set in place

Fixes

  • Porchctl development builds added
  • Rpkg update panic is fixed
  • Porch race condition is fixed
  • High package approval time in the porch is fixed which should reduce the overall deployment time.
  • Porch package revision fixes
  • Porch connection failure with self-signed certificates is fixed
  • Updated OAI RAN operator to reflect NFDeployment status

Limitations

  • Inter-cluster networking is not dynamic so as more clusters are deployed, some manual tweaking will be needed for inter-cluster communications.
  • Provisioning of VLAN interfaces on nodes is manual at this time.
  • Feedback of workload deployments from workload clusters to the Management cluster is limited. You may need to connect directly to the Workload cluster via kubectl to debug any deployment issues.
  • Web UI features are limited to view/edit 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 etc.) 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 cluster repositories, register them to the Nephio management server, and set up Config Sync on the Workload cluster.
  • The WebUI does not require authentication in the current demo configuration. Testing of the WebUI with authentication configured has not been done at this time.
  • The WebUI only shows resources in the default namespace.
  • While many types of Git authentication are supported, the testing was only done with token-based Git authentication in Gitea.

Known Issues and Workarounds

  • Packages may take a long time to be approved by the auto-approval controller. If they seem stuck, restarting Porch and the Nephio controllers may help:
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 a message like Error: Internal error occurred: error applying patch: conflict: fragment line does not match src line. Try again in a little while, this may clear up on its own. Restarting Porch may also help.

Appendix

Porch Fixes and enhancements