| .. vim: syntax=rst |
| |
| ================ |
| Developer Guide |
| ================ |
| |
| Setting Up Aether-in-a-Box |
| __________________________ |
| |
| Aether-in-a-Box (AiaB) provides an easy way to deploy Aether’s SD-CORE |
| components and run basic tests to validate the installation. This guide |
| describes the steps to set up AiaB. |
| |
| AiaB can be set up with a 4G or 5G SD-CORE. We use SimApp to configure |
| the required state in SD-CORE for testing core functionality. |
| |
| Helm charts are the primary method of installing the SD-CORE resources. |
| AiaB offers a great deal of flexibility regarding which Helm chart |
| versions to install: |
| |
| * Local definitions of charts (for testing Helm chart changes) |
| * Latest published charts (for deploying a development version of Aether) |
| * Specified versions of charts (for deploying a specific Aether release) |
| |
| AiaB can be run on a bare metal machine or VM. System prerequisites: |
| |
| * Ubuntu 18.04 |
| * Kernel 4.15 or later |
| * Haswell CPU or newer |
| |
| Clone Repositories |
| __________________ |
| |
| To initialize the AiaB environment, first clone the following repository using |
| your Gerrit ID:: |
| |
| cd ~ |
| git clone "ssh://<username>@gerrit.opencord.org:29418/aether-in-a-box" |
| |
| mkdir -p ~/cord |
| cd ~/cord |
| git clone "ssh://<username>@gerrit.opencord.org:29418/sdcore-helm-charts" |
| git clone "ssh://<username>@gerrit.opencord.org:29418/aether-helm-charts" |
| |
| Set up Authentication Tokens |
| ____________________________ |
| |
| :: |
| |
| cd ~/aether-in-a-box |
| |
| Edit the file configs/authentication. |
| |
| Fill out REGISTRY_USERNAME and REGISTRY_CLI_SECRET as follows: |
| |
| * Log into the Aether Harbor Registry using your Crowd credentials |
| * Select User Profile from the drop-down menu in the upper right corner |
| * For REGISTRY_USERNAME, use the Username in your profile |
| * Copy the CLI secret to the clipboard and paste to REGISTRY_CLI_SECRET |
| |
| Also fill out REPO_USERNAME and REPO_PASSWORD with the information needed to |
| authenticate with Aether’s Helm chart repositories. |
| |
| If you have already set up AiaB but you used incorrect credentials, first |
| clean up AiaB as described in the Cleanup section, then edit |
| configs/authentication and re-build AiaB. |
| |
| Start the 4G SD-CORE |
| ____________________ |
| |
| :: |
| |
| make test |
| |
| Start the 5G SD-CORE |
| ____________________ |
| |
| If you have already installed the 4G SD-CORE, you must skip this step. |
| Only one version of the SD-CORE can be installed at a time.:: |
| |
| make 5gc |
| |
| You can use gnbsim to test 5G functionality. Detailed steps in link below:: |
| |
| .. _`gNB Simulator`: |
| |
| Cleanup |
| _______ |
| |
| The first time you build AiaB, it takes a while because it sets up the |
| Kubernetes cluster. Subsequent builds will be much faster if you follow |
| these steps to clean up the Helm charts without destroying the Kubernetes |
| cluster.:: |
| |
| Clean up the 4G SD-CORE: *make reset-test |
| Clean up the 5G SD-CORE: *make reset-5g-test |
| |
| Developer Loop |
| ______________ |
| |
| Suppose you wish to test a new build of a 5G SD-CORE services. You can deploy |
| custom images by editing ~/aether-in-a-box/5g-core-values.yaml, for example:: |
| |
| images: |
| tags: |
| webui: registry.aetherproject.org/omecproject/5gc-webui:onf-release3.0.5-roc-935305f |
| pullPolicy: IfNotPresent |
| |
| To upgrade a running 5G SD-CORE with the new image, or to deploy the 5G SD-CORE |
| with the image:: |
| |
| make 5gc |
| |
| Troubleshooting / Known Issues |
| ______________________________ |
| |
| If you suspect a problem, first verify that all pods are in Running state:: |
| |
| kubectl -n omec get pods |
| kubectl -n aether-roc get pods |
| |
| If the pods are stuck in ImagePullBackOff state, then it’s likely an issue |
| with credentials. See the Set up Authentication Tokens section. |
| |
| 4G Test Fails |
| _____________ |
| |
| Occasionally make test (for 4G) fails for unknown reasons; this is true |
| regardless of which Helm charts are used. If this happens, first try |
| cleaning up AiaB and re-running the test. If make test fails consistently, |
| check whether the configuration has been pushed to the SD-CORE:: |
| |
| kubectl -n omec logs config4g-0 | grep "Successfully" |
| |
| You should see that a device group and slice has been pushed:: |
| |
| [INFO][WebUI][CONFIG] Successfully posted message for device group 4g-oaisim-user to main config thread |
| [INFO][WebUI][CONFIG] Successfully posted message for slice default to main config thread |
| |
| Then tail the config4g-0 log and make sure that the configuration has been |
| successfully pushed to all SD-CORE components. |