Skip to content

Latest commit

 

History

History
136 lines (89 loc) · 3.13 KB

README-o2imsbuilder.md

File metadata and controls

136 lines (89 loc) · 3.13 KB

Build and deploy O2 services over O-Cloud (INF)

Bring up builder container from O-Cloud controller node

mkdir -p /home/sysadmin/share
sudo docker run -dt --privileged -v /home/sysadmin/share/:/home/sysadmin/share/ -v /var/run:/var/run --name o2imsbuilder centos:7

Build O2 service images inside the builder container

sudo docker exec -it o2imsbuilder bash
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce
docker ps

yum install -y git

cd /home/sysadmin/share/
git clone "https://gerrit.o-ran-sc.org/r/pti/o2"
cd o2

mkdir -p temp
cd temp
git clone --depth 1 --branch r/stx.7.0 https://opendev.org/starlingx/config.git
git clone --branch master https://opendev.org/starlingx/distcloud-client.git
(cd distcloud-client && git reset --hard eb4e7eeeb09bdf2e1b80984b378c5a8ea9930f04)
cd -

docker-compose build

exit

Push O2 service images to local registry (with auth user admin)

sudo docker tag o2imsdms:latest registry.local:9001/o-ran-sc/pti-o2imsdms:2.0.0
sudo docker image push registry.local:9001/o-ran-sc/pti-o2imsdms:2.0.0

Deploy O2 services with helm chart over O-Cloud controller node (with auth user admin)

export NAMESPACE=oran-o2
kubectl create ns ${NAMESPACE}

cd /home/sysadmin/
source /etc/platform/openrc
cat <<EOF>ocloud-override.yaml
imagePullSecrets:
  - default-registry-key

o2ims:
  serviceaccountname: admin-oran-o2
  images:
    tags:
      o2service: registry.local:9001/o-ran-sc/pti-o2imsdms:2.0.0
      postgres: docker.io/library/postgres:9.6
      redis: docker.io/library/redis:alpine
    pullPolicy: IfNotPresent
  logginglevel: "DEBUG"

ocloud:
  OS_AUTH_URL: "${OS_AUTH_URL}"
  OS_USERNAME: "${OS_USERNAME}"
  OS_PASSWORD: "${OS_PASSWORD}"
EOF

sudo docker login registry.local:9001 -u ${OS_PROJECT_NAME} -p ${OS_PASSWORD}

kubectl -n ${NAMESPACE} create secret docker-registry ${OS_PROJECT_NAME}-${NAMESPACE}-registry-secret \
--docker-server=registry.local:9001 --docker-username=${OS_PROJECT_NAME} \
--docker-password=${OS_PASSWORD} [email protected]

cd /home/sysadmin/share/o2

helm install o2imstest charts/ -f /home/sysadmin/ocloud-override.yaml

kubectl -n ${NAMESPACE} get pods

test api endpoint

curl -k http(s)://<Node IP>:30205
curl -k http(s)://<Node IP>:30205/o2ims_infrastructureInventory/v1

Debug tips

kubectl -n ${NAMESPACE} logs -f o2api-<xxx> -c o2api
kubectl -n ${NAMESPACE} logs -f o2api-<xxx> -c postgres
kubectl -n ${NAMESPACE} logs -f o2api-<xxx> -c o2pubsub
kubectl -n ${NAMESPACE} logs -f o2api-<xxx> -c watcher


kubectl -n ${NAMESPACE} logs -f o2api-<xxx> -c o2api

kubectl -n ${NAMESPACE} exec -it o2api-<xxx> -c postgres -- bash
    psql -U o2ims

        \c o2ims

        \d

        select * from ocloud;

        \q

    exit

Issues:

1, there is chance the containers crash due to random bootstrap order of containers