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
- Improvements in esthetics and bug fixes.
- Updated Component Architecture.
- Updated Schema Catalog.
- User Stories related to O-RAN integration and service assurance.
- Versioning support for 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
- Functional improvements to Porch include the following:
- Using the default exponential back-off in case of errors, instead of a constant 30-second retry. For details, see https://github.com/nephio-project/porch/pull/76.
- Showing kpt package rendering errors via the status of PackageVariant. For details, see https://github.com/nephio-project/porch/pull/75.
- Support for new field selectors: spec.workspaceName and spec.lifecycle on PackageRevision resources. For details, see https://github.com/nephio-project/porch/pull/70.
- Caching in the case of multiple repository resources pointing to the same Git repository has been fixed. For details, see https://github.com/nephio-project/porch/pull/68.
- The PackageRevision’s metadata.uid field is now unique. For details, see https://github.com/nephio-project/porch/pull/61.
- Caching for packageRevisionResources has been removed. They should not have been cached. For details, see https://github.com/nephio-project/porch/pull/55.
- Pod templating for the function runner has been introduced. For details, see https://github.com/nephio-project/porch/pull/54.
- Garbage collection has been updated to reclaim the pods in the namespace which contain only KRM functions. For details, see https://github.com/nephio-project/porch/pull/52.
- Functional improvements to Porchctl, including the following:
- The porchctl version has now been returned correctly. For details, see https://github.com/nephio-project/porch/pull/65.
- The error message that appears when the metadata is missing is now less confusing. For details, see https://github.com/nephio-project/porch/pull/39.
- Unit testing for rpkg commands has been improved. For details, see https://github.com/nephio-project/porch/pull/33.
- Porchctl rpkg commands now print to stdout on normal completion and stderr on errors. For details, see https://github.com/nephio-project/porch/pull/30.
- Porch security improvements:
- Support for CA bundle for verification of TLS for Git repository commits. For details, see https://github.com/nephio-project/porch/pull/58.
- Configuration of an external webhook and associated certs for resource deletion is now supported. For details, see https://github.com/nephio-project/porch/pull/53.
- Missing repository RBAC roles for porch controllers have been added. For details, see https://github.com/nephio-project/porch/pull/56.
- The Porch namespace in the generated cert/webhook can now be configured. For details, see https://github.com/nephio-project/porch/pull/26.