OAI 5G core network have different network functions which can be used invidiually or deployed all together in different combination on a production grade Kubernetes cluster.
Core Services:
- Mysql
- NRF
- SMF
- UPF(SPGWU)
- AMF
RAN Services:
- gNBRFsim
- NR-UE
Each network function is deployed in a pod and these pods are distrubuted among different nodes.
The cluster on which these Charms will be deployed should have RBAC and Multus CNI. Multus is necessary to provide multiple interfaces to AMF and UPF/SPGWU
To create osm vnf and ns package, use the following commands which will generate a vnf package structure named oai-vnf and ns package structure named oai-ns
# in the rep root dir execute the following commands.
osm nfpkg-create oai_vnf/
osm nspkg-create oai_ns/
Onboarded package can be verified with the following commands.
osm nfpkg-list # or use osm vnfd-list
osm nspkg-list # or use osm nsd-list
Create a dummy vim that can be used when the k8scluster being added to osm.
osm vim-create --namd <vim-name> --account_type dummy
if there is a proper VIM like openstack, use the following command.
osm vim-create --name <vim-name> --user <username> --password <password> \
--auth_url <openstack-url> --tenet <tenant-name> --account_type openstack
vim-name
is the name of the vim being created.username
andpassword
are the credentials of openstack.tenant-name
is the tenant to be assosiated to the user in the openstack.openstack-url
is the url of openstack which will be used as VIM.
K8scluster used to attach a cluster with OSM which will be used for knf deployment.
osm k8scluster-add --creds <k8s-config-file> --version v1 --vim <vim-name> --description 'K8s Cluster for KNFs' --k8s-nets '{"net1": "vim-net"}' <cluster-name>
k8s-config-file
is the configuration file of kubernetes cluster.
To instantiating the oai network service use the following command.
osm ns-create --ns_name <ns-name> --nsd_name oai-ns --vim_account <vim-name>
To verifying the instantiating process use the following commands.
# with the osm client
osm ns-list
# for detail information
osm ns-show
# use kubectl command.
kubectl -n oai-kdu-*** get pods
metadata.yaml
file must hassummary
field- every hook file should start with executable line related to the file. e.g py file:
#!/usr/bin/env python3
- AMF: 172.21.6.201
- SPGWU: 172.21.6.200
- NR-UR: 172.21.6.204
- GNB: 172.21.6.202 , 172.21.6.203