# A simple note to build AiaB (public ver)
## Reference
* [related question on ONF Community Slack](https://onf-community.slack.com/archives/C01E4HMLBNV/p1626193051052300)
* [Aether-in-a-box docs](https://docs.aetherproject.org/master/developer/sdcore.html)
## Requirement
1. Access to [Aether registry](https://registry.aetherproject.org/harbor/projects)
2. Access to [Aether-in-a-box](https://gerrit.opencord.org/admin/repos/aether-in-a-box) repository
## Installation Steps
1. Clone the source repository
```
mkdir cord && cd cord
git clone "ssh://aweimeow@gerrit.opencord.org:29418/helm-charts"
git clone "ssh://aweimeow@gerrit.opencord.org:29418/aether-helm-charts"
cd $HOME
git clone "ssh://aweimeow@gerrit.opencord.org:29418/aether-in-a-box"
```
2. Start the build process
```
cd $HOME/aether-in-a-box
make test
# The hss, mme, spgwc pods will not up due to the credential wasn't given
```
3. Login the Docker registry and store secret in Kubernetes cluster
- Get the credential from [Aether registry](https://registry.aetherproject.org/harbor/projects)
- Execute the `docker login registry.aetherproject.org` command
- Apply the credential as secret to Kubernetes (in omec namespace)
```
# .dockerconfig is normally in $HOME/.docker/config.json
kubectl -n omec create secret generic aether.registry \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
```
4. The UE deployment was completed, ping test will start automatically.
```
Test1: ping from UE to SGI network gateway
ping -I oip1 192.168.250.1 -c 15
PING 192.168.250.1 (192.168.250.1) from 172.250.255.254 oip1: 56(84) bytes of data.
64 bytes from 192.168.250.1: icmp_seq=1 ttl=64 time=29.7 ms
...
64 bytes from 192.168.250.1: icmp_seq=15 ttl=64 time=21.4 ms
--- 192.168.250.1 ping statistics ---
15 packets transmitted, 15 received, 0% packet loss, time 14017ms
rtt min/avg/max/mdev = 13.281/21.813/29.753/5.173 ms
Test2: ping from UE to 8.8.8.8
ping -I oip1 8.8.8.8 -c 3
PING 8.8.8.8 (8.8.8.8) from 172.250.255.254 oip1: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=111 time=36.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=111 time=36.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=111 time=35.4 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 35.451/36.210/36.776/0.557 ms
Test3: ping from UE to google.com
ping -I oip1 google.com -c 3
PING google.com (142.250.190.142) from 172.250.255.254 oip1: 56(84) bytes of data.
64 bytes from ord37s36-in-f14.1e100.net (142.250.190.142): icmp_seq=1 ttl=111 time=28.4 ms
64 bytes from ord37s36-in-f14.1e100.net (142.250.190.142): icmp_seq=2 ttl=111 time=40.3 ms
64 bytes from ord37s36-in-f14.1e100.net (142.250.190.142): icmp_seq=3 ttl=111 time=28.3 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 28.364/32.400/40.376/5.641 ms
Finished to test
```
Check the pod status
```
aweimeow@node:~/aether-in-a-box$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default router 1/1 Running 0 11m
kube-system calico-kube-controllers-8f7bb5b75-qffjp 1/1 Running 0 54m
kube-system calico-node-gf2bb 1/1 Running 0 55m
kube-system coredns-dff8fc7d-w6rnf 1/1 Running 0 11m
kube-system dns-autoscaler-5d74bb9b8f-tr8xt 1/1 Running 0 54m
kube-system kube-apiserver-node1 1/1 Running 0 55m
kube-system kube-controller-manager-node1 1/1 Running 0 55m
kube-system kube-multus-ds-amd64-l2kpb 1/1 Running 0 54m
kube-system kube-proxy-cvdlt 1/1 Running 0 55m
kube-system kube-scheduler-node1 1/1 Running 0 55m
kube-system kubernetes-dashboard-667c4c65f8-snlpn 1/1 Running 0 54m
kube-system kubernetes-metrics-scraper-54fbb4d595-5855x 1/1 Running 0 54m
kube-system nodelocaldns-tcdtg 1/1 Running 0 54m
omec cassandra-0 1/1 Running 0 11m
omec enb-0 1/1 Running 0 2m49s
omec hss-0 1/1 Running 0 11m
omec mme-0 4/4 Running 0 11m
omec pcrf-0 1/1 Running 0 11m
omec spgwc-0 2/2 Running 0 11m
omec ue-0 1/1 Running 0 2m49s
omec ue-setup-if-x846s 0/1 Completed 0 2m53s
omec upf-0 4/4 Running 0 10m
```
## Reset test and deploy the 5G core
```
make reset-test
make 5gc
```
```
aweimeow@node:~/aether-in-a-box$ kubectl get pods -n omec
NAME READY STATUS RESTARTS AGE
amf-554d78cc4f-j6npv 1/1 Running 0 3m16s
ausf-76cd468bf-n9vp7 1/1 Running 0 3m15s
gnbsim-0 1/1 Running 0 2m2s
mongodb-55555bc884-z987f 1/1 Running 0 3m15s
nrf-748b4f64c8-rpvvj 1/1 Running 0 3m16s
nssf-56454fb8b5-q2jts 1/1 Running 0 3m16s
pcf-5f9d565cb-th29k 1/1 Running 0 3m15s
simapp-6659f94c97-pbrj2 1/1 Running 0 4m12s
smf-77d49f8d46-kq72h 1/1 Running 0 3m15s
udm-7d448f7b6-9r2s9 1/1 Running 0 3m16s
udr-9bf6567dd-q57px 1/1 Running 0 3m15s
ue-setup-if-x846s 0/1 Completed 0 12m
ue-teardown-if-mlhgc 0/1 Completed 0 5m
upf-0 4/4 Running 0 3m30s
webui-54f4f8b7d-csgq8 1/1 Running 0 3m16s
```
10. Clean
```
make clean
rm -rf /tmp/*
```