X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=README-o2imsbuilder.md;h=adb5e42dd2ec6f085bd3067de71af4f24f9c6f9c;hb=refs%2Fheads%2Fi-release;hp=a2b4816dcb6a73d8a55e050169c1c7869c8eb3e0;hpb=57c39a0eb78be768f44784eb057c365da4203d60;p=pti%2Fo2.git diff --git a/README-o2imsbuilder.md b/README-o2imsbuilder.md index a2b4816..adb5e42 100644 --- a/README-o2imsbuilder.md +++ b/README-o2imsbuilder.md @@ -1,77 +1,136 @@ - -## build o2ims from a container over INF - - -## bring up container - -## Important: make sure container and host shares the same filepath to overcome local dir mounting issue - -mkdir -p /home/sysadmin/share -sudo docker run -dt --privileged -v /home/sysadmin/share/:/home/sysadmin/share/ -v /var/run:/var/run --name o2imsbuilder2 centos:7 - -## build inside container -sudo docker exec -it o2imsbuilder2 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 https://opendev.org/starlingx/config.git -git clone https://opendev.org/starlingx/distcloud-client.git -cd - - -docker-compose build - -## test over inf host -export NAMESPACE=orano2 -kubectl create ns ${NAMESPACE} - -source /etc/platform/openrc -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} --docker-email=noreply@windriver.com - -==> secret/admin-orano2-registry-secret created - -sudo docker tag o2imsdms:latest registry.local:9001/admin/o2imsdms:0.1.1 -sudo docker image push registry.local:9001/admin/o2imsdms:0.1.1 - -cd /home/sysadmin/share/o2 - -cat <ocloud-override.yaml -o2ims: - imagePullSecrets: admin-orano2-registry-secret - image: - repository: registry.local:9001/admin/o2imsdms - tag: 0.1.1 - pullPolicy: IfNotPresent - logginglevel: "DEBUG" - -ocloud: - OS_AUTH_URL: "your O-Cloud Auth endpoint, e.g. http://1.2.3.4:5000/v3" - OS_USERNAME: "Your auth Username" - OS_PASSWORD: "Your auth Password" -EOF - -helm install o2imstest charts/ -f ocloud-override.yaml - -kubectl -n ${NAMESPACE} get pods - - -## issues: + +## Build and deploy O2 services over O-Cloud (INF) + + +## Bring up builder container from O-Cloud controller node + + +```sh +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 + + +```sh +sudo docker exec -it o2imsbuilder bash +``` + + +```sh +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) + +```sh +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) + +```sh +export NAMESPACE=oran-o2 +kubectl create ns ${NAMESPACE} + +cd /home/sysadmin/ +source /etc/platform/openrc +cat <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} --docker-email=noreply@windriver.com + +cd /home/sysadmin/share/o2 + +helm install o2imstest charts/ -f /home/sysadmin/ocloud-override.yaml + +kubectl -n ${NAMESPACE} get pods + +``` + +### test api endpoint + +```sh +curl -k http(s)://:30205 +curl -k http(s)://:30205/o2ims_infrastructureInventory/v1 +``` + + +### Debug tips + +```sh +kubectl -n ${NAMESPACE} logs -f o2api- -c o2api +kubectl -n ${NAMESPACE} logs -f o2api- -c postgres +kubectl -n ${NAMESPACE} logs -f o2api- -c o2pubsub +kubectl -n ${NAMESPACE} logs -f o2api- -c watcher + + +kubectl -n ${NAMESPACE} logs -f o2api- -c o2api + +kubectl -n ${NAMESPACE} exec -it o2api- -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