INF Developer Guide
1. About the INF project
This project is a reference implementation of O-Cloud infrastructure which is based on StarlingX and OKD, and it supports multi-OS.
Currently the following OS are supported:
StarlingX
Debian 11 (bullseye)
OKD
CentOS Stream CoreOS 4.17
- Notes:
Debian based is the recommended platfrom.
The intended audiences of this guide are the developers who want to develop/integrate apps in INF platform, if you just want to install and deploy INF platform, you can ignore this guide and read the INF Installation Guide
Experimental feature: * INF project starts to support ARM64 architecture in this release as experimental feature (POC level), limited features implemented and tested.
It can only be natively built on HPE RL300 Gen11 server (Ampere Altra).
AIO-SX (std kernel) tested on VM and HPE RL300 server.
AIO-DX (std kernel) tested on VM.
1.1 About the Debian based implementaion
The project provde wrapper scripts to automate all the steps of StarlingX Debian Build Guide to build out the reference platform as an installable ISO image.
1.2 About the CentOS Stream CoreOS / OKD based implementation
Deployment automation and documentation for OKD / CentOS Stream CoreOS can be found under the ‘okd’ directory in the pti/rtp repository.
2. How to build the INF project
2.1 How to build the Debian based image
2.1.1 Prerequisite for Debian build environment
NOTE: The build system for Debian requires a Linux system with Docker and python 3.x installed. The the following steps have been tested on CentOS 7 and Ubuntu 20.04.
Refer to Install docker on ubuntu or Install docker on centos to install docker.
Refer to Configure_Debian_build_environment to install prerequisite packges and configure for Debian build environment.
2.1.2 Use wrapper script build_inf_debian.sh to build the Debian based image
# Get the wrapper script to build the debian image
$ wget -O build_inf_debian.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf_debian/build_inf_debian.sh;hb=HEAD'
$ chmod +x build_inf_debian.sh
$ WORKSPACE=/path/to/workspace
$ ./build_inf_debian.sh -w ${WORKSPACE}
If all go well, you will get the ISO image in: ${WORKSPACE}/prj_output/inf-image-debian-all-x86-64.iso
2.2 How to build the Debian based image for ARM64 arch
2.2.1 Prerequisite for Debian build environment
- NOTE:
The build env only tested on HPE RL300 server (Ampere Altra).
The build system for Debian requires a Linux system with Docker and python 3.x installed. The the following steps have been tested on Debian 11.
Refer to Install docker on ubuntu or Install docker on centos to install docker.
Refer to Configure_Debian_build_environment to install prerequisite packges and configure for Debian build environment.
2.2.2 Use wrapper script build_stx_debian.sh to build the Debian based image
# Get the wrapper script to build the debian image
$ wget -O build_stx_debian.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf_debian/build_stx_debian.sh;hb=HEAD'
$ chmod +x build_stx_debian.sh
$ WORKSPACE=/path/to/workspace
$ ./build_stx_debian.sh -w ${WORKSPACE} -a arm64
The build-image will always fail for now, do the following workaround after build-image fails:
cd ${WORKSPACE}
source env.prj-stx-deb
cd src/stx-tools
source import-stx
stx shell --container lat
# inside the LAT pod
cd /localdisk
. /opt/LAT/SDK/environment-setup-cortexa57-wrs-linux
appsdk --log-dir log genimage lat.yaml
If all go well, you will get the ISO image in: ${WORKSPACE}/localdisk/deploy/starlingx-qemuarm64-cd.iso