O-RAN SC Bronze(or release 'B') has been released at 2020/6/21.
Follow link: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=14221635
(1) SMO deployment
https://wiki.o-ran-sc.org/display/GS/SMO+Installation
First of all, you need a VM. Recommend OS is Ubuntu 18.04 LTS (Bionic Beaver). But I am using a cloned Debian-testing VM.
dabs@RICBronze:~/oran/dep/smo/bin$ uname -a
Linux RICBronze 5.6.0-1-amd64 #1 SMP Debian 5.6.7-1 (2020-04-29) x86_64 GNU/Linux
[Step 1: Obtaining the Deployment Scripts and Charts] is very simple:
dabs@RICBronze:~$ mkdir oran
dabs@RICBronze:~$ cd oran
dabs@RICBronze:~/oran$ git clone http://gerrit.o-ran-sc.org/r/it/dep -b bronze
Cloning into 'dep'...
warning: redirecting to https://gerrit.o-ran-sc.org/r/it/dep/
remote: Counting objects: 3, done
remote: Total 4412 (delta 0), reused 4412 (delta 0)
Receiving objects: 100% (4412/4412), 2.21 MiB | 45.00 KiB/s, done.
Resolving deltas: 100% (1784/1784), done.
dabs@RICBronze:~/oran$ cd dep/
dabs@RICBronze:~/oran/dep$ git submodule update --init --recursive --remote
Submodule 'ric-dep' (https://gerrit.o-ran-sc.org/r/ric-plt/ric-dep) registered for path 'ric-dep'
Cloning into '/home/dabs/oran/dep/ric-dep'...
Submodule path 'ric-dep': checked out 'f13294efad66831d8140c35d21fb59d19160493d'
[Step 2: Generation of cloud-init Script]:
update dep/tools/k8s/etc/infra.rc:
dabs@RICBronze:~/oran/dep/tools/k8s/etc$ cat infra.rc
# modify below for RIC infrastructure (docker-k8s-helm) component versions
# RIC tested
#INFRA_DOCKER_VERSION=""
#INFRA_HELM_VERSION="2.12.3"
#INFRA_K8S_VERSION="1.16.0"
#INFRA_CNI_VERSION="0.7.5"
# older RIC tested
#INFRA_DOCKER_VERSION=""
#INFRA_HELM_VERSION="2.12.3"
#INFRA_K8S_VERSION="1.13.3"
#INFRA_CNI_VERSION="0.6.0"
# ONAP Frankfurt
INFRA_DOCKER_VERSION="18.09.7"
INFRA_K8S_VERSION="1.15.9"
INFRA_CNI_VERSION="0.7.5"
INFRA_HELM_VERSION="2.16.6"
run gen-cloud-init.sh to generate the k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh script:
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ ./gen-cloud-init.sh
find: warning: you have specified the global option -maxdepth after the argument -type, but global options are not positional, i.e., -maxdepth affects tests specified before it as well as those specified after it. Please specify global options before other arguments.
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/env.rc
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/infra.rc
reading in values in /home/dabs/oran/dep/tools/k8s/bin/../etc/openstack.rc
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ ls
deploy-stack.sh gen-ric-heat-yaml.sh k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh uninstall
gen-cloud-init.sh install undeploy-stack.sh
[Step 3: Installation of Kubernetes, Helm, Docker, etc.]
First, make changes to the script: k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh
(1) As I am using debian-testing, update the DOCKERVERSION part as below:
(2) update k8s mirror:
(3) update docker mirror:
(4) comment last line to avoid sudden VM reboot(O_O, I thought system failure happened!!!):
(5) edit /etc/hosts:
(6) update docker apt repository
$sudo apt-key fingerprint 0EBFCD88
#for ubuntu
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#for debian-testing
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable"
Now, run the script for the 1st time, you should encounter problems, and use CTRL+C to end the infinite loop of 'waiting for 0/8 pods ready and take-a-nap' :
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo ./k8s-1node-cloud-init-k_1_15-h_2_16-d_18_09.sh
This is caused by the docker-pull-firewalled-problem, you will need following docker images for [Step 3]:
For the k8s.gcr.io/* images, solution:
$sudo kubeadm config images list | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#registry.aliyuncs.com/google_containers#g' | sudo sh -x
$sudo docker images | grep registry.aliyuncs.com/google_containers | awk '{print "docker tag ",$1":"$2,$1":"$2}' | sed -e 's#registry.aliyuncs.com/google_containers#k8s.gcr.io#2' | sudo sh -x
$sudo docker images | grep registry.aliyuncs.com/google_containers | awk '{print "docker rmi ", $1":"$2}' | sudo sh -x
For the flannel image, solution:
manually download flannel:v0.12.0 from github or baidu-netdisk-link:
https://github.com/coreos/flannel/releases/download/v0.12.0/flanneld-v0.12.0-amd64.docker
链接: https://pan.baidu.com/s/1_3H6_0kaJwkmse1v6dYt1w 提取码: jdmc
$sudo docker load < ~/Downloads/flanneld-v0.12.0-amd64.docker
For the tiller image, solution:
dabs@RICBronze:/tmp$ docker pull sapcc/tiller:v2.16.6
v2.16.6: Pulling from sapcc/tiller
aad63a933944: Pull complete
5a5f2e29be4f: Pull complete
d2bd87496312: Pull complete
27aa33a05387: Pull complete
Digest: sha256:e88aaf190da692e7a31d825e3e88a3264a1c03b430f995b8f58d2cb55cb434a8
Status: Downloaded newer image for sapcc/tiller:v2.16.6
dabs@RICBronze:/tmp$ docker tag sapcc/tiller:v2.16.6 gcr.io/kubernetes-helm/tiller:v2.16.6
dabs@RICBronze:/tmp$ docker rmi sapcc/tiller:v2.16.6
Untagged: sapcc/tiller:v2.16.6
Untagged: sapcc/tiller@sha256:e88aaf190da692e7a31d825e3e88a3264a1c03b430f995b8f58d2cb55cb434a8
With all the docker images ready, you can run the script for the 2nd time. Eventually, you will end up with an one-node k8s cluster, and 9 Running pods.
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo kubectl get nodes
[sudo] password for dabs:
NAME STATUS ROLES AGE VERSION
ricbronze Ready master 2m33s v1.15.9
dabs@RICBronze:~/oran/dep/tools/k8s/bin$ sudo kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5d4dd4b4db-gdb5r 1/1 Running 1 2m22s
kube-system coredns-5d4dd4b4db-st47q 1/1 Running 1 2m22s
kube-system etcd-ricbronze 1/1 Running 1 101s
kube-system kube-apiserver-ricbronze 1/1 Running 1 83s
kube-system kube-controller-manager-ricbronze 1/1 Running 1 99s
kube-system kube-flannel-ds-amd64-25qhz 1/1 Running 1 2m22s
kube-system kube-proxy-r8qgg 1/1 Running 1 2m22s
kube-system kube-scheduler-ricbronze 1/1 Running 1 91s
kube-system tiller-deploy-666f9c57f4-f2gzv 1/1 Running 1 70s
Manually reboot VM and you are ready for [Step 4: Deploy SMO].
dabs@RICBronze:~/oran/dep$ cd smo/bin
dabs@RICBronze:~/oran/dep/smo/bin$ ls
install uninstall
dabs@RICBronze:~/oran/dep/smo/bin$ sudo ./install initlocalrepo
[Step 4] really needs hours as been told...
Good luck!