Skip to content
Snippets Groups Projects
Sagar Arora's avatar
Sagar Arora authored
* Adding back, plmn and mcc information for basic core
* Correcting the interfaces for smf, cu, cu-cp and cu-up
* Correcting the readme with steps to configure cu, cu-cp and cu-up
f55b345f
History
OpenAirInterface: Building UBI Container Images

TABLE OF CONTENTS

  1. Pre-requisites
  2. How to Build UBI Images of Core Network Function
  3. How to Build UBI Images of gNB and UE

0. Pre-requisites

We assume that there is already a project name oai-tutorial in case there is no project like that then create a new project oc new-project oai-tutorial.

Also you need to create configmaps and secrets because that is needed for creating the images of the network functions. In the future we will try to avoid using the entitlements. Run below commands from a RHEL8 host machine which have access to openshift cluster,

oc create configmap rhsm-conf --from-file /etc/rhsm/rhsm.conf
oc create configmap rhsm-ca --from-file /etc/rhsm/ca/redhat-uep.pem
oc create secret generic etc-pki-entitlement --from-file /etc/pki/entitlement/<pem>.pem --from-file /etc/pki/entitlement/<key>-key.pem

NOTE: The entitlements have to be renewed every month

1. How to Build UBI Images of Core Network Functions?

Create the build configs for each core network function, the build config yamls will also create the image streams.

oc create -f oai-amf-build-config.yaml
oc create -f oai-ausf-build-config.yaml
oc create -f oai-udr-build-config.yaml
oc create -f oai-udm-build-config.yaml
oc create -f oai-smf-build-config.yaml
oc create -f oai-spgwu-tiny-build-config.yaml
oc create -f oai-nrf-build-config.yaml

You can do oc get bc to see all the build configs in oai5g project. Once all the build config definations are there, you can start building the network function images parallel or one by one its a choice,

oc start-bc oai-amf 
oc start-bc oai-smf 
oc start-bc oai-ausf 
oc start-bc oai-nrf
oc start-bc oai-spgwu-tiny 
oc start-bc oai-udm
oc start-bc oai-udr

For the moment the dockerfiles used in these build configs are based on v1.4.0 release tag of all the network functions.

2. How to Build UBI Images of gNB and UE?

For the moment CU and DU are using the same image with different configuration parameters so you just need to build one monolythic gNB image. Also CU and DU are running fine in simulated mode but not with RRU, there is a problem which we will fix soon.

The gNB image is build in three steps

  • Base image
  • Builder image
  • Final/Target image

Every image has its own build config. For the moment you will see inside the build config embedded dockerfiles but this change in sometime and there will only one build config which will fetch dockerfile directly from the gitlab repository.

2.1 Start with building the base image

Develop branch is mostly stable and there is a new merge every week. First start with creating base image

oc create -f oai-ran-base-build-config.yaml
oc start-build oai-ran-base

Once done you need to build builder image

2.2 Creating builder image

oc create -f ran-build/ran-build.yaml 
oc start-build ran-build

2.3 Creating target image for oai-gNB

This target image is used by oai-gnb, oai-cu, oai-cu-cp and oai-du. But for oai-cu-up there is another target image.

If you are using another project than oai-tutorial then you need to make a small change in the build config file. Change the YOUR_PROJECT_NAME variable with your project name (oc project)

$: sed -i 's/oai-tutorial/$YOUR_PROJECT_NAME/g' oai-gnb-build-config.yaml

If you are using the project name as oai-tutorial then you can directly start building the target image.

oc create -f oai-gnb-build-config.yaml
oc start-build oai-gnb

2.4 Creating target image for oai-cu-up

This target image is only for oai-cu-up

If you are using another project than oai-tutorial then you need to make a small change in the build config file. Change the YOUR_PROJECT_NAME variable with your project name (oc project)

$: sed -i 's/oai-tutorial/$YOUR_PROJECT_NAME/g' oai-cu-up-build-config.yaml

If you are using the project name as oai-tutorial then you can directly start building the target image.

oc create -f oai-cu-up-build-config.yaml
oc start-build oai-cu-up

2.5 Creating NR-UE image

If you are using another project than oai-tutorial then you need to make a small change in the build config file. Change the YOUR_PROJECT_NAME variable with your project name (oc project)

$: sed -i 's/oai-tutorial/$YOUR_PROJECT_NAME/g' oai-nr-ue-build-config.yaml

If you are using the project name as oai-tutorial then you can directly start building the target image.

oc create -f oai-nr-ue-build-config.yaml
oc start-build oai-nr-ue 

You can follow our tutorial on how to deploy OAI5g Core, gNB and NR-UE via helm-charts and helm-spray.