..
   SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
   SPDX-License-Identifier: Apache-2.0

.. _deployment_5G_guide:

5G Deployment Guide
===================

Deployment Overview
-------------------
SD-Core is released with Helm chart and container images.
We recommend using **Kubernetes** and **Helm** to deploy SD-Core.
SD-Core images are hosted on docker hub.

Hardware resource requirement
-----------------------------

.. list-table:: CPU & Memory Requirements for 5G components
  :widths: 5 5 5
  :header-rows: 1

  * - SD-Core Component
    - Required CPU
    - Required Memory in Gi
  * - AMF
    - 2 CPU Cores
    - 4Gi
  * - SMF
    - 2 CPU Cores
    - 4Gi
  * - NRF
    - 2 CPU Cores
    - 1Gi
  * - NSSF
    - 2 CPU Cores
    - 1Gi
  * - AUSF
    - 1 CPU Cores
    - 1Gi
  * - PCF
    - 1 CPU Cores
    - 1Gi
  * - UDR
    - 2 CPU Cores
    - 1Gi
  * - UDM
    - 2 CPU Cores
    - 1Gi
  * - Config5G(webconsole)
    - 1 CPU Cores
    - 1Gi
  * - SimApp
    - 1 CPU Cores
    - 1Gi
  * - MongoDB
    - 2 CPU Cores
    - 4Gi
  * - UPF-Adapter
    - 1 CPU Cores
    - 1Gi
  * - SCTP Load Balancer
    - 1 CPU Cores
    - 1Gi

.. note::
   SD-Core deployment is tested on Intel/AMD hardware. There is WIP to run SD-Core
   on ARM architecture.

Deployment Options
------------------

Development Environments
""""""""""""""""""""""""

Please refer (see :ref:`aiab-guide`) to setup 5G development environment.

Production Environments - 5G
""""""""""""""""""""""""""""

To install SD-Core into your Kubernetes cluster, follow instructions

Step1 - Clone SD-Core 5G Helm chart
'''''''''''''''''''''''''''''''''''
.. code-block::

  git clone "https://gerrit.opencord.org/sdcore-helm-charts"
  cd sdcore-helm-charts/sdcore-helm-charts/
  helm dep update #Update Helm dependencies

Step2 - Prepare your Helm value for 5G
''''''''''''''''''''''''''''''''''''''

You can modify existing values.yaml directly, but we recommend composing another value
file myvalues.yaml using values.yaml as an example. We are highlighting a few things we
need to modify here. More explanation of the supported Helm values can be found in the
Configuration section below.

Step3 - Install 5G using SD-Core umbrella helm chart
''''''''''''''''''''''''''''''''''''''''''''''''''''

The following command will deploy the SD-Core helm chart with release name sdcore-5g in the sdcore-5g namespace.

.. code-block::

    helm install -n sdcore-5g --create-namespace -f myvalues.yaml sdcore-5g  ~/cord/sdcore-helm-charts/sdcore-helm-charts

To verify the installation:

.. code-block::

    helm -n sdcore-5g ls
    xxxx@node:~$ helm -n sdcore-5g ls
    NAME     	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART         	APP VERSION
    sdcore-5g	sdcore-5g	1       	2022-03-05 16:25:32.338495035 -0700 MST	deployed	sd-core-0.10.9
    xxxx@node:~$

    xxxx@node:~$ kubectl get pods -n sdcore-5g
    NAME                          READY   STATUS    RESTARTS   AGE
    amf-6cddb6ff5-g5kwp           1/1     Running   0          8d
    ausf-64fb5c5df5-g9xps         1/1     Running   0          8d
    gnbsim-0                      1/1     Running   0          8d
    mongodb-0                     1/1     Running   0          8d
    mongodb-1                     1/1     Running   0          8d
    mongodb-arbiter-0             1/1     Running   0          8d
    nrf-69794885b-pgl8f           1/1     Running   0          8d
    nssf-fc9c48c89-dxqn7          1/1     Running   0          8d
    pcf-5c7d7767c9-wv6dl          1/1     Running   0          8d
    simapp-669b99db9d-lbbm4       1/1     Running   0          8d
    smf-b87fc6f8f-4jdqr           1/1     Running   0          8d
    smf-b87fc6f8f-xt2n2           1/1     Running   0          8d
    udm-f948b57dc-n5b4h           1/1     Running   0          8d
    udr-698445bd87-8ptpm          1/1     Running   0          8d
    upf-0                         5/5     Running   0          8d
    upf-adapter-c4844b7fb-wqbvw   1/1     Running   0          8d
    webui-8cfb9659c-hqfp9         1/1     Running   0          8d
    xxxx@node:~$

To uninstall:

.. code-block::

    helm -n sdcore-5g uninstall sdcore-5g
    kubectl delete namespace sdcore-5g # also remove the sdcore-5g if needed

Cloud Native Configuration - 5G
""""""""""""""""""""""""""""""""

Following configuration need to be enabled in 5G helm values override file.
It is important to understand usage of following flags

- **SCTP Load Balancer** :
  Enable this flag to introduce SCTP Load Balancer between gNBs and multiple AMF instances
  to load balance sctp connections across multiple AMF instances.

- **DB Store** :
  Enable this flag to preserve AMF context or SMF PDU session into Database.
  This is required for any AMF/SMF instance to load session/context of any
  other instance which being fault recovered.

- **UPF-Adapter** :
  Enable this flag to introduce UPF-Adapter between multiple SMF instances
  and UPF. This required for the case where UPF doesn't support multiple
  SMF association with same pfcp node-id.

- **NRF Keep-Alive** :
  Enable this flag for NRF to maintain multiple NF profiles and trigger periodic
  profile updates from the registered NFs.

- **UE IP-Address alloc via UPF** :
  Enable this flag to get UE IP-Address allocated via UPF rather than locally by SMF.

Enable AMF Sctp Load Balancer
'''''''''''''''''''''''''''''
Edit sd-core-5g-values.yaml as following

.. code-block::

    sctplb:
      deploy: true

Enable AMF DB Store
'''''''''''''''''''
Edit sd-core-5g-values.yaml as following

.. code-block::

    amf:
      cfgFiles:
        amfcfg.conf:
          configuration:
            enableDBStore: true

Enable SMF DB Store
'''''''''''''''''''
Edit sd-core-5g-values.yaml as following

.. code-block::

    smf:
      cfgFiles:
        smfcfg.conf:
          configuration:
            enableDBStore: true

Enable UPF-Adapter
''''''''''''''''''
Edit sd-core-5g-values.yaml as following

.. code-block::

    upfadapter:
      deploy: true

Enable NRF Keep-Alive
''''''''''''''''''''''
Edit sd-core-5g-values.yaml as following

.. code-block::

    nrf:
      cfgFiles:
        nrfcfg.conf:
          configuration:
            mongoDBStreamEnable: false
            nfProfileExpiryEnable: true
            nfKeepAliveTime: 60

Enable UE IP-Address allocation by UPF
''''''''''''''''''''''''''''''''''''''
This is optional feature to allocate UE IP-Address via UPF rather than locally via SMF.
Edit sd-core-5g-values.yaml as following

.. code-block::

 cpiface:
   dnn: "internet"
   hostname: "upf"
   enable_ue_ip_alloc: true
   ue_ip_pool: "172.250.0.0/16"
