Up-to-date information

See section "Demo on how to deploy the near-RT RIC, compile and connect the E2 simulator, compile the hello-world go xapp and how use the dms_cli to deploy it" in 2022-05-24 Release F or generally the links here: Introduction and guides#Installingthenear-RTRIC


Some old information from 2020 related to A1 (not sure if still works)

Create a Policy Type

Here we define a new policy type and call the A1 mediator to create such a policy type.

Run ...

$ cd ~/dep/
$ POLICY_TYPE_ID="20008"
$ echo '{ "name": "tsapolicy", "description": "tsa parameters", "policy_type_id": 20008, "create_schema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "TS Policy", "description": "TS policy type", "type": "object", "properties": { "threshold": { "type": "integer", "default": 0 } }, "additionalProperties": false } } ' > ts-policy-type-20008.json
$ curl -v -X PUT "http://$(hostname):32080/a1mediator/a1-p/policytypes/${POLICY_TYPE_ID}"   -H "accept: application/json" -H "Content-Type: application/json"   -d @./ts-policy-type-${POLICY_TYPE_ID}.json

List Policy Types

We now should see the newly created policy type when querying the A1 mediator.

Run ...

$ curl -X GET --header "Content-Type: application/json" --header "accept: application/json"   http://$(hostname):32080/a1mediator/a1-p/policytypes

Create a Policy Instance

Policy type is merely a declaration.  Now we create a policy instance, filling the properties with actual values.  This is also carried out by the A1 mediator. 

A1 mediator will distribute the new policy instance to the Traffic Steering xApp. 

And then we should see that the TS xApp receives this policy instancee and its behavior of "filtering RAN data by threshold" changing to using the new threshold value.

Run...

$ POLICY_ID="tsapolicy145"
$ curl -X PUT --header "Content-Type: application/json"   --data "{\"threshold\" : 5}"   http://$(hostname):32080/a1mediator/a1-p/policytypes/${POLICY_TYPE_ID}/policies/${POLICY_ID}
  • No labels

104 Comments

  1. Hi Lusheng,

    Thanks for the RIC XAPP deployment guide.

    I was able to deploy all the xAPPs except QP driver.

    I have the following error when I try to onboard using  curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps"      --header 'Content-Type: application/json' --data-raw '{"xappName": "qpdriver"}'

    {
    "error_source": "config-file.json",
    "error_message": "'__empty_control_section__' is a required property",
    "status": "Input payload validation failed"
    }

    I think the error is from the descriptor of the version 1.0.9 located at onboard.qpd.url

    But when I changed the qpdriver version to 1.0.0 it works  

    https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/qp-driver.git;a=blob_plain;f=xapp-descriptor/config.json;h=94582086d02df6299dd902556aa2e2111ed94268;hb=4074973dbbe90e11643c229fff39bb8a6f662dc8



    Thanks

    1. Thanks this helped...

    2. Anonymous

      Hello!

      This can be resolved by deleting lines 38-41.

      "controls": {
      "example_int": 10000,
      "example_str": "value"
      }


      --Cornellius Dagmang

  2. Hi Luseng,

    I have created multiple policies while testing & want to delete those policies from Nonrt dashboard GUI. I have used below command to delete

    curl -X DELETE --header "Content-Type: application/json" --header "accept: application/json"   http://192.168.122.31:32080/a1mediator/a1-p/policytypes/20020

    By using above command it is getting deleted from VM but not Nonrt dashboard GUI. Please guide me the command to delete policies from Nonrt dashboard GUI.


    Thanks ,

    Gautam


  3. After onboarding all the xApps, there is a error sending message from ts-xapp

    In get_sdl_ue_data()
    message body {"UEPredictionSet": ["12345"]}
    payload length 30
    <SNDR> send failed: 2

    Any known fixes/workarounds?

      1. Here is the normal output:

        In get_sdl_ue_data()
        message body {"UEPredictionSet": ["12345"]}
        payload length 30
        Prediction Callback got a message, type=30002 , length=182
        payload is { "12345" : { "310-680-200-555001" : [ 2000000 , 1200000 ], "310-680-200-555002" : [ 800000 , 400000 ], "310-680-200-555003" : [ 800000 , 400000 ] } }
        Prediction for 12345


        from the source code:

        void send_prediction_request(vector<string> ues_to_predict) {

        int mtype = 30000;

        // payload updated in place, nothing to copy from, so payload parm is nil
        if ( ! msg->Send_msg( mtype, Message::NO_SUBID, strlen( (char *) send_payload.get() ), NULL )) {
            fprintf( stderr, "<SNDR> send failed: %d\n", msg->Get_state() );
        }

        }

        void prediction_callback( Message& mbuf, int mtype, int subid, int len, Msg_component payload, void* data ) {

        cout << "Prediction Callback got a message, type=" << mtype << " , length=" << len << "\n";
        cout << "payload is " << payload.get() << "\n";

        }

        which means that prediction_callback is not correctly called.


        in tsxapp.main, prediction_callback is binded to MSG_ID=30002.

        extern int main( int argc, char** argv ) {
            xfw->Add_msg_cb( 20010, policy_callback, NULL );
            xfw->Add_msg_cb( 30002, prediction_callback, NULL );
        }


        RMR will route msg with MSG_ID=30000 to qpdriver xapp. qpdriver will process it , and generate another msg with MSG_ID=30001

        rmr_xapp.register_callback(steering_req_handler, 30000)

        success = self.rmr_send(payload, 30001)


        RMR will further route msg with MSG_ID=30001 to qp xapp. qp will process it, and generate another msg with MSG_ID=30002, which will be routed back to tsxapp by RMR.

        qp_xapp.register_callback(qp_predict_handler, 30001)

        success = self.rmr_send(mock_msg.encode(), 30002)


        Based on above analysis, my best guess is that, qp-driver and qp xapp has not been deployed successfully.

        1. I also facing the same problem.

          Can anyone  help?

          1. Anonymous

            Hello,

            Have you managed to solve the problem?

  4. Hi Experts,

    I got RMR_ERR_NOENDPT after creating policy instance. Can you pls help? thanks

    RMR_ERR_NOENDPTsend/call could not find an endpoint based on msg type


    here is part of 'kubectl logs -f deployment-ricplt-a1mediator-66fcf76c66-8dxcj -n ricplt':

    ::ffff:10.244.0.53 - - [2020-08-07 07:41:28] "PUT /a1-p/policytypes/20008/policies/tsapolicy145 HTTP/1.1" 202 116 0.007207

    {"ts": 1596786088608, "crit": "DEBUG", "id": "a1.a1rmr", "mdc": {}, "msg": "_send_msg: sending: {'payload': b'{\"operation\": \"CREATE\", \"policy_type_id\": 20008, \"policy_instance_id\": \"tsapolicy145\", \"payload\": {\"threshold\": 5}}', 'payload length': 115, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'67712138d88111eab3bcd2cb2aea4bae', 'message state': 0, 'message status': 'RMR_OK', 'payload max size': 4096, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 0}"}

    {"ts": 1596786088608, "crit": "WARNING", "id": "a1.a1rmr", "mdc": {}, "msg": "RMR send failed; pre-send summary: {'payload': b'{\"operation\": \"CREATE\", \"policy_type_id\": 20008, \"policy_instance_id\": \"tsapolicy145\", \"payload\": {\"threshold\": 5}}', 'payload length': 115, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'67712138d88111eab3bcd2cb2aea4bae', 'message state': 0, 'message status': 'RMR_OK', 'payload max size': 4096, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 0}, post-send summary: {'payload': None, 'payload length': 115, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'67712138d88111eab3bcd2cb2aea4bae', 'message state': 2, 'message status': 'RMR_ERR_NOENDPT', 'payload max size': 4096, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 6}"}

    {"ts": 1596786088608, "crit": "DEBUG", "id": "a1.a1rmr", "mdc": {}, "msg": "_send_msg: result message state: 2"}

    {"ts": 1596786088608, "crit": "WARNING", "id": "a1.a1rmr", "mdc": {}, "msg": "_send_msg: failed after 20 retries"}

    1. Anonymous

      hi all,

      i rebuild the docker image from "ric-app-ts 1.0.11" of Gerrit, and re-deploy trafficxapp, there is no RMR_ERR_NOENDPT error now.

      ::ffff:10.244.0.61 - - [2020-08-07 14:12:02] "PUT /a1-p/policytypes/20008/policies/tsapolicy145 HTTP/1.1" 202 116 0.008321
      {"ts": 1596809522972, "crit": "DEBUG", "id": "a1.a1rmr", "mdc": {}, "msg": "_send_msg: sending: {'payload': b'{\"operation\": \"CREATE\", \"policy_type_id\": 20008, \"policy_instance_id\": \"tsapolicy145\", \"payload\": {\"threshold\": 5}}', 'payload length': 115, 'message type': 20010, 'subscription id': 20008, 'transaction id': b'f769383ad8b711eaacd4cac483485e64', 'message state': 0, 'message status': 'RMR_OK', 'payload max size': 4096, 'meid': b'', 'message source': 'service-ricplt-a1mediator-rmr.ricplt:4562', 'errno': 0}"}
      {"ts": 1596809522977, "crit": "DEBUG", "id": "a1.a1rmr", "mdc": {}, "msg": "_send_msg: result message state: 0"}

  5. Anonymous

    Would someone provide prerequisite and instructions to create the xApp??

    1. user-d3360

      Please post after you log in to Confluence so people know who you are.

  6. Anonymous

    Can anyone let me know the same steps for Admission Control xAPP

  7. Was the image(nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04) used ts/test/Dockerfile removed in nexus?

    I can't find it or its other version for ubuntu18 in nexus


    1. pls refer to ORAN Base Docker Images for CI Builds#Imagebldr-ubuntu18-c-go

      you need: 

      $docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:9-u18.04


      1. I had tried it before and I could find  bldr-ubuntu18-c-go:9-u18.04 in nexus at that time,

        but there is not bldr-ubuntu18-c-go in nexus now.


        1. Yeah, there is no bldr-ubuntu18-c-go image any more in the repository.

          I propose two solutions:

          (1) you can build the docker image manually and retag it:

          https://gerrit.o-ran-sc.org/r/gitweb?p=it/dev.git;a=blob;f=bldr-imgs/bldr-ubuntu18-c-go/Dockerfile;h=c7be3e4a4456a74ddfa5e4e222b77d9fbdc03fec;hb=HEAD

          $git clone https://gerrit.o-ran-sc.org/r/it/dev.git

          $cd bldr-imgs/bldr-ubuntu18-c-go

          $sudo docker build -t nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:9-u18.04 .

          (2) you may pull the image from my docker-hub and retag it:

          $docker pull zhenggao2/bldr-ubuntu18-c-go:9-u18.04

          $docker tag zhenggao2/bldr-ubuntu18-c-go:9-u18.04 nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:9-u18.04

          $docker rmi zhenggao2/bldr-ubuntu18-c-go:9-u18.04

          1. Thank for your help

          2. It works, thanks!


            If someone meet issue when running populate_db.sh

            You can try the patch

            diff --git a/test/populatedb/Dockerfile b/test/populatedb/Dockerfile

            index 479fcd5..bb44b5a 100644

            --- a/test/populatedb/Dockerfile

            +++ b/test/populatedb/Dockerfile

            @@ -13,7 +13,7 @@

             #   See the License for the specific language governing permissions and

             #   limitations under the License.

             # ==================================================================================

            -FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04 as buildenv

            +FROM zhenggao2/bldr-ubuntu18-c-go:9-u18.04 as buildenv


             RUN mkdir /playpen

             RUN mkdir /playpen/src

            @@ -22,7 +22,8 @@ ENV LD_LIBRARY_PATH=/usr/local/lib


             RUN apt-get install -y cpputest

             RUN apt-get remove -y libboost-all-dev

            -RUN apt-get install -y  libboost-all-dev

            +RUN apt-get update

            +RUN apt-get install -y libboost-all-dev

             RUN apt-get install -y libhiredis-dev

             RUN apt-get install -y valgrind


        2. Late response but the image is tagged as 1.9.0 rather than 9-u18.04

          1. In step 4, try git clone from cherry branch.

  8. Anonymous

    Can anyone help me why my pod is not running after running the script i.e populate_db.sh.

    kubectl get pods -n ricplt
    NAME READY STATUS RESTARTS AGE
    dbprepopjob-ws99s 0/1 ImagePullBackOff 0 83s


    1. Anonymous

      Dear all:

      I have a same problem, anyone help?

    2. Anonymous

    3. Because it didn't do all 17 steps, and it failed in one of the step.

      I also facing the same problem.

  9. Anonymous

    Hi everyone,

    Thanks for the RIC XAPP deployment guide.

    I was able to deploy all the xAPPs except QP driver.

    I have the following error when I try to onboard using  

    curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.qpd.url"


    error message:

    {
    "error_source": "config-file.json",
    "error_message": "'__empty_control_section__' is a required property",
    "status": "Input payload validation failed"
    }

    1. Anonymous

      I got the same error. Were you able to fix this?

  10. Anonymous

    Hi everyone,

    Thanks for the RIC XAPP deployment guide.

    I was able to deploy all the xAPPs except QP driver.

    I have the following error in this step: 


    root@near-VirtualBox:~/dep/ts/test/populatedb# ./populate_db.sh
    release "dbprepop" deleted
    Sending build context to Docker daemon 19.97kB
    Step 1/17 : FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04 as buildenv
    manifest for nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04 not found: manifest unknown: manifest unknown
    NAME: dbprepop
    LAST DEPLOYED: Tue Feb 23 16:15:45 2021
    NAMESPACE: ricplt
    STATUS: DEPLOYED

    RESOURCES:
    ==> v1/Job
    NAME COMPLETIONS DURATION AGE
    dbprepopjob 0/1 0s 0s

    ==> v1/Pod(related)
    NAME READY STATUS RESTARTS AGE
    dbprepopjob-667t5 0/1 ContainerCreating 0 0s

    1. Replace the ts/test/populatedb/Dockerfile by this:

      FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as buildenv
      
      RUN mkdir /playpen
      RUN mkdir /playpen/src
      
      ENV LD_LIBRARY_PATH=/usr/local/lib
      
      RUN apt-get update
      RUN apt-get install -y cpputest
      RUN apt-get remove -y libboost-all-dev
      RUN apt-get install -y  libboost-all-dev
      RUN apt-get install -y libhiredis-dev
      RUN apt-get install -y valgrind
      
      
      RUN git clone https://gerrit.o-ran-sc.org/r/ric-plt/sdl
      RUN cd sdl && \
          ./autogen.sh && \
          ./configure && \
          make all && \
          make install
      
      
      COPY src/* /playpen/src/
      
      RUN cd /playpen/src; make
      
      ENV DBAAS_HOSTNAME="6379"
      ENV DBAAS_SERVICE_HOST="service-ricplt-dbaas-tcp.ricplt"
      
      WORKDIR /playpen/src
      
      CMD ./write_sdl
  11. Hi,


    I'm working with Bronze release.

    I have a question regarding the use of private docker registries for xApp image hosting.

    As far as I understand, in the hello world xApp scenario, the image is pulled from a public repository : nexus3.o-ran-sc.org:10002, which is specified in the config file.

    I tried to use a private repository instead, so I replaced the "registry" name in the config file by my own registry : 10.0.0.1:5000 , which hosts my app : testApp

    When I try to pull my image using :

            docker pull 10.0.0.1:5000/testApp

    the image is successfully pulled.

    However, when I try to load the configuration using :

            curl --location --request POST "http://$KONG_IP:32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.hw.url"

    I receive an error indicating :

            10.0.0.1:5000 does not match ^[A-Za-z0-9\\\\.-]{1,}\\\\.[A-Za-z]{1,}(?:\\\\:\\\\d+)?$

    I agree that my input does not match the required format, but I do not understand why this format is required. I cannot put at least one alphabetical letter between the IP address and the port, as required (at least I didn't find a way to do so, but I'm not a docker expert).

    Do you know the reason for this format check ? Is there something that I am missing, or do I misuse the registry field ?


    Thank you in advance,

    Best regards,

    Cedric


    EDIT : I found a workaround : I edited the /etc/host file of the machine hosting the near RT RIC, and added an entry with a compliant name for the repo : 10.0.0.1 docker-repository.local

    However this solution requires to have admin access to the near RT RIC machine, I think that the validity check of the config file should accept IP addresses, unless there is a reason not to do so.

    1. Modify the regex to accept any location ie: .* and then this issue goes away. you will need to rebuild the corresponding image and replace it in the running kubernetes cluster.


  12. Anonymous

    HI every , I have one question about Policy Type.

    if it's only one policy type for only one xapp?  


  13. I have successfully ported the RIC from x86 to ARM64 but having issues debugging xapp. Modified the regex to accept my local registry. Running python http server to serve the file to for xapp.

    NAMESPACE     NAME                                                         READY   STATUS      RESTARTS   AGE
    kube-system   coredns-5644d7b6d9-s9sqw                                     1/1     Running     3          7d1h
    kube-system   coredns-5644d7b6d9-z5g9p                                     1/1     Running     3          7d1h
    kube-system   etcd-kubernetes-master                                       1/1     Running     3          7d1h
    kube-system   kube-apiserver-kubernetes-master                             1/1     Running     3          7d1h
    kube-system   kube-controller-manager-kubernetes-master                    1/1     Running     3          7d1h
    kube-system   kube-flannel-ds-ztz5s                                        1/1     Running     3          7d1h
    kube-system   kube-proxy-sr75b                                             1/1     Running     3          7d1h
    kube-system   kube-scheduler-kubernetes-master                             1/1     Running     3          7d1h
    kube-system   tiller-deploy-68bf6dff8f-hlg22                               1/1     Running     8          7d1h
    ricinfra      deployment-tiller-ricxapp-6b6b4c787-89w5q                    1/1     Running     3          7d1h
    ricinfra      tiller-secret-generator-5fzwj                                0/1     Completed   0          7d1h
    ricplt        deployment-ricplt-a1mediator-cb47dc85d-b9nb4                 1/1     Running     135        7d1h
    ricplt        deployment-ricplt-appmgr-5fbcf5c7f7-tmqrj                    1/1     Running     3          7d1h
    ricplt        deployment-ricplt-e2mgr-7dbfbbb796-mxjl4                     1/1     Running     1          5d20h
    ricplt        deployment-ricplt-e2term-alpha-8665fc56f6-mkqqr              1/1     Running     5          7d1h
    ricplt        deployment-ricplt-jaegeradapter-85cbdfbfbc-xgthz             1/1     Running     4          7d1h
    ricplt        deployment-ricplt-o1mediator-86587dd94f-9gp7c                1/1     Running     3          7d1h
    ricplt        deployment-ricplt-rtmgr-67c9bdccf6-769rh                     1/1     Running     5          7d1h
    ricplt        deployment-ricplt-submgr-6ffd499fd5-zfhm2                    1/1     Running     3          7d1h
    ricplt        deployment-ricplt-vespamgr-68b68b78db-5lkvf                  1/1     Running     3          7d1h
    ricplt        deployment-ricplt-xapp-onboarder-57f78cfdf-769ls             2/2     Running     6          7d1h
    ricplt        r4-infrastructure-kong-84cd44455-pjxmm                       2/2     Running     14         7d1h
    ricplt        r4-infrastructure-prometheus-alertmanager-75dff54776-bjwsk   2/2     Running     6          7d1h
    ricplt        r4-infrastructure-prometheus-server-5fd7695-pr2pw            1/1     Running     3          7d1h
    ricplt        statefulset-ricplt-dbaas-server-0                            1/1     Running     1          5d20h


    I ported the ric-app-hw:1.0.6 app over to arm64 and ran the following command:

    curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.hw.url"

    response:

    {

    "status": "Created"

    }

    command:

    curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"

    response:
    {
    "hwxapp": [
    {
    "name": "hwxapp",
    "version": "1.0.0",
    "description": "Standard xApp Helm Chart",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
    "charts/hwxapp-1.0.0.tgz"
    ],
    "created": "2021-03-30T19:38:11.209682186Z",
    "digest": "aa48978de777bb2c04cd843778696a4b116fe3c134aafbae9d674f97b78a23df"
    }
    ]
    }

    But I never see the xapp start on kubernetes. 

    command:

    kubectl get pods -n ricxapp

    response:

    No resources found in ricxapp namespace.


    EDIT: Sorry forgot the most important part.

    curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "hwxapp"}'

    "operation XappDeployXapp has not yet been implemented"


    UPDATE:

    Looks like appmgr under the master branch is not working correctly. Ive gone back to cherry and now im having cert issues:


    {"ts":1617300249780,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T18:04:09Z","xm":"0.4.3"},"msg":"Running command: [/bin/sh -c helm list --all --deployed --output yaml --namespace=ricxapp] "}
    {"ts":1617300249842,"crit":"ERROR","id":"appmgr","mdc":{"time":"2021-04-01T18:04:09Z","xm":"0.4.3"},"msg":"Command failed: exit status 2 - could not read x509 key pair (cert: \"/opt/ric/secret/helm-client.cert\", key: \"/opt/ric/secret/helm-client.key\"): can't load key pair from cert /opt/ric/secret/helm-client.cert and key /opt/ric/secret/helm-client.key: tls: failed to find any PEM data in certificate input\n, retrying"}
    {"ts":1617300251842,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T18:04:11Z","xm":"0.4.3"},"msg":"Listing deployed xapps failed: could not read x509 key pair (cert: \"/opt/ric/secret/helm-client.cert\", key: \"/opt/ric/secret/helm-client.key\"): can't load key pair from cert /opt/ric/secret/helm-client.cert and key /opt/ric/secret/helm-client.key: tls: failed to find any PEM data in certificate input\n"}
    {"ts":1617300251842,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T18:04:11Z","xm":"0.4.3"},"msg":"Helm list failed: could not read x509 key pair (cert: \"/opt/ric/secret/helm-client.cert\", key: \"/opt/ric/secret/helm-client.key\"): can't load key pair from cert /opt/ric/secret/helm-client.cert and key /opt/ric/secret/helm-client.key: tls: failed to find any PEM data in certificate input\n"}

    I do not see this issue with master, I redeployed the entire ric once more and still see the issue.


    Any ideas on how to debug this?

    1. Anonymous

      You're missing step 3.

      curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps"      --header 'Content-Type: application/json' --data-raw '{"xappName": "hwxapp"}'
    2. Anonymous

      Is tiller added to k8s and ready before deploy? I had the same issue and adding a --wait to helm init (with tiller installed) worked

  14. The ric-plt-appmgr was working no issues but I kept getting “operation XappDeployXapp has not yet been implemented” or some variant when deploying an xapp. I pulled changes and rebuilt but when I redeploy the secrets are mising. The certs and keys were empty:

    {"ts":1617306072432,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:41:12Z","xm":"0.4.3"},"msg":"helm init failed, retyring ..."}
    {"ts":1617306082432,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:41:22Z","xm":"0.4.3"},"msg":"Init for Version 2"}
    {"ts":1617306082432,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:41:22Z","xm":"0.4.3"},"msg":"Running command: [/bin/sh -c helm init -c --skip-refresh] "}
    {"ts":1617306082534,"crit":"ERROR","id":"appmgr","mdc":{"time":"2021-04-01T19:41:22Z","xm":"0.4.3"},"msg":"Command failed: exit status 2 - could not read x509 key pair (cert: \"/opt/ric/secret/helm-client.cert\", key: \"/opt/ric/secret/helm-client.key\"): can't load key pair from cert /opt/ric/secret/helm-client.cert and key /opt/ric/secret/helm-client.key: asn1: structure error: tags don't match (16 vs {class:0 tag:13 length:45 isCompound:true}) {optional:false explicit:false application:false private:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false} certificate @2\n, retrying"}


    This was corrected by running the

    /dep/ric-dep/helm/appmgr/templates/bin/_appmgr-tiller-secret-copier.sh.tpl


    This created three items:

    • helm-client.cert
    • helm-client.key
    • tiller-ca.cert


    Now I have issues with the certs.

    {"ts":1617306548369,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:49:08Z","xm":"0.4.3"},"msg":"Running command: [/bin/sh -c helm list --all --deployed --output yaml --namespace=ricxapp] "}
    {"ts":1617306548485,"crit":"ERROR","id":"appmgr","mdc":{"time":"2021-04-01T19:49:08Z","xm":"0.4.3"},"msg":"Command failed: exit status 1 - Error: x509: certificate signed by unknown authority\n, retrying"}
    {"ts":1617306550485,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:49:10Z","xm":"0.4.3"},"msg":"Listing deployed xapps failed: Error: x509: certificate signed by unknown authority\n"}
    {"ts":1617306550485,"crit":"INFO","id":"appmgr","mdc":{"time":"2021-04-01T19:49:10Z","xm":"0.4.3"},"msg":"Helm list failed: Error: x509: certificate signed by unknown authority\n"}


    How should this process be completed?

  15. Anonymous

    Hi Everyone,

        I am trying to bring up the XAPP on bronze release, and all the pods are up and running.

    But when I try to onboard Xapp
    curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.ts.url"

    The curl command just waits

    When I try to read the /var/log/syslog

    I see these logs


    Apr 7 08:21:41 bronze kubelet[699]: W0407 08:21:41.202464 699 kubelet_pods.go:849] Unable to retrieve pull secret ricplt/secret-nexus3-o-ran-sc-org-10002-o-ran-sc for ricplt/deployment-ricplt-vespamgr-7458d9b5d-kpv87 due to secret "secret-nexus3-o-ran-sc-org-10002-o-ran-sc" not found. The image pull may not succeed.
    Apr 7 08:21:44 bronze kubelet[699]: W0407 08:21:44.208763 699 kubelet_pods.go:849] Unable to retrieve pull secret ricplt/secret-nexus3-o-ran-sc-org-10002-o-ran-sc for ricplt/deployment-ricplt-rtmgr-9d4847788-t9ht4 due to secret "secret-nexus3-o-ran-sc-org-10002-o-ran-sc" not found. The image pull may not succeed.
    Apr 7 08:21:44 bronze dhclient[14518]: DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 12 (xid=0x19f17239)
    Apr 7 08:21:45 bronze kubelet[699]: E0407 08:21:45.015589 699 summary_sys_containers.go:47] Failed to get system container stats for "/system.slice/docker.service": failed to get cgroup stats for "/system.slice/docker.service": failed to get container info for "/system.slice/docker.service": unknown container "/system.slice/docker.service"
    Apr 7 08:21:47 bronze kubelet[699]: W0407 08:21:47.203279 699 kubelet_pods.go:849] Unable to retrieve pull secret ricplt/secret-nexus3-o-ran-sc-org-10002-o-ran-sc for ricplt/deployment-ricplt-alarmadapter-64d559f769-4tzjx due to secret "secret-nexus3-o-ran-sc-org-10002-o-ran-sc" not found. The image pull may not succeed.
    Apr 7 08:21:55 bronze kubelet[699]: E0407 08:21:55.055905 699 summary_sys_containers.go:47] Failed to get system container stats for "/system.slice/docker.service": failed to get cgroup stats for "/system.slice/docker.service": failed to get container info for "/system.slice/docker.service": unknown container "/system.slice/docker.service"


    Can anyone let me know, why the onboarding of xapp is not responding pls.







    1. Anonymous

      Thank you very much Moogan Wilson, It worked for me

  16. Hi experts,

    I face issues with deploying trafficxapp. In short, I am using cherry release and I used both methods described here https://blog.csdn.net/jeffyko/article/details/107426626 as well as the method described in the instructions above.

    All of them allow me to deploy hw, qp, qpdriver, but not the ts and I dont understand why.

    Output of: sudo kubectl get pod -n ricxapp -w -o wide

    NAME                                   READY   STATUS         RESTARTS   AGE     IP            NODE   NOMINATED NODE   READINESS GATES
    ricxapp-hwxapp-684d8d675b-zgmh8        1/1     Running        0          6m38s   10.244.0.40   yev    <none>           <none>
    ricxapp-qp-867d9558c-zsxmh             1/1     Running        0          6m37s   10.244.0.41   yev    <none>           <none>
    ricxapp-qpdriver-6b89bb66c-qb8qs       1/1     Running        0          6m36s   10.244.0.42   yev    <none>           <none>
    ricxapp-trafficxapp-58d4946955-jv6pj   0/1     ErrImagePull   0          39s     10.244.0.44   yev    <none>           <none>
    ricxapp-trafficxapp-58d4946955-jv6pj   0/1     ImagePullBackOff   0          42s     10.244.0.44   yev    <none>           <none>
    ricxapp-trafficxapp-58d4946955-jv6pj   0/1     ErrImagePull       0          56s     10.244.0.44   yev    <none>           <none>
    
    trafficxapp enters the loop in which it tries to pull the image and it throws the ErrImagePull.

    I thought that the files might be damaged so I reinstalled RIC, however, it didn't help

    This are the commands I am using to setup the ts and their outputs (please note I made a script which takes an IP as one of the arguments and it succesfuly deploys hw, qp and qpdriver, and I also tried running those commands without script):

    echo && echo Pulling nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-ts:1.0.11
    docker pull nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-ts:1.0.11

    echo '{"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/ts.git;a=blob_plain;f=xapp-descriptor/config.json;hb=HEAD" }' > onboard.ts.url

    curl --location --request POST "http://""$IP"":32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.ts.url"}

    sudo curl --location --request GET "http://""$IP"":32080/onboard/api/v1/charts"

    curl --location --request POST "http://""$IP"":32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "trafficxapp"}' -v

    During setup those don't throw any errors, but trafficxapp just doesnt get deployed.

    UPD

    After running

    sudo kubectl get events -A

    I was able to localize it to this problem

    Failed to pull image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-ts:1.1.0": rpc error: code = Unknown desc = Error response from daemon: manifest for nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-ts:1.1.0 not found: manifest unknown: manifest unknown

    I also tried running it with the custom json file where the tag was changed: 1.1.0 → 1.0.11 or 1.0.13 but non of them didnt help and daemon was still throwing the same error.

    Any help would be much appreciated,

    Yevhenii

      1. Dear Anonymous,


        I cannot describe how grateful am I, this link is a miracle. thank you sooo much.


        Best regards,


        Yevhenii 

  17. Hi all,

    in step 4, ./populate_db.sh,

    I keep getting the error message like this

    Err:94 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6 amd64 3.6.9-1~18.04ubuntu1.1
    404 Not Found [IP: 91.189.88.152 80]
    Err:95 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6-dev amd64 3.6.9-1~18.04ubuntu1.1
    404 Not Found [IP: 91.189.88.152 80]
    Err:97 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 python3.6-dev amd64 3.6.9-1~18.04ubuntu1.1
    404 Not Found [IP: 91.189.88.152 80]
    .
    .
    .
    .
    .
    E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/python3.6/libpython3.6_3.6.9-1~18.04ubuntu1.1_amd64.deb 404 Not Found [IP: 91.189.88.152 80]
    E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/python3.6/libpython3.6-dev_3.6.9-1~18.04ubuntu1.1_amd64.deb 404 Not Found [IP: 91.189.88.152 80]
    E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/python3.6/python3.6-dev_3.6.9-1~18.04ubuntu1.1_amd64.deb 404 Not Found [IP: 91.189.88.152 80]
    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
    The command '/bin/sh -c apt-get install -y libboost-all-dev' returned a non-zero code: 100

    I have no clue why it happened, and I already try "$ apt-get upgrade" already, still not fix.

    I also install libpython3.6_3.6.9-1~18.04ubuntu1.1_amd64.deb manually, and it still exists.

    Does anyone also facing this issue, or have the solution to this?

    Thanks a lot !



    1. Add "RUN apt-get update" before the first "RUN apt-get".

      1. You helped me a lot !! 

        I am very thankful to you!!

        For people who don't know where to edit, the file is called 'Dockerfile' in the same directory as 'populate_db.sh'.

  18. Hi all,
    i met problem with QP pod.
    Maybe someone understand reason of CrashLoop?

    root@myric:~/dep# sudo kubectl get pod -n ricxapp

    NAME READY STATUS RESTARTS AGE
    ricxapp-hwxapp-684d8d675b-5f76n 1/1 Running 0 49m
    ricxapp-qp-66b57cd57b-xl8tg 0/1 CrashLoopBackOff 9 31m
    ricxapp-qpdriver-6b89bb66c-wgf99 1/1 Running 0 31m
    ricxapp-trafficxapp-659b5fb754-jpv2m 1/1 Running 0 31m

    root@myric:~/dep# kubectl -n ricxapp describe pod ricxapp-qp-66b57cd57b-xl8tg

    Name: ricxapp-qp-66b57cd57b-xl8tg
    Namespace: ricxapp
    Priority: 0
    Node: myric/10.0.2.100
    Start Time: Wed, 04 Aug 2021 09:04:00 +0000
    Labels: app=ricxapp-qp
    kubernetes_name=ricxapp_qp
    pod-template-hash=66b57cd57b
    release=qp
    Annotations: <none>
    Status: Running
    IP: 10.244.0.70
    IPs:
    IP: 10.244.0.70
    Controlled By: ReplicaSet/ricxapp-qp-66b57cd57b
    Containers:
    qp:
    Container ID: docker://531423f1730539319beb08c4c6497fa7f3da7bb0aca9edc240e3a93f5950d846
    Image: nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp:0.0.4
    Image ID: docker-pullable://nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp@sha256:39879bd8290b81d7355819642baaf029a4f60fb322935fafdae64e75ca89667e
    Ports: 4560/TCP, 4561/TCP
    Host Ports: 0/TCP, 0/TCP
    State: Running
    Started: Wed, 04 Aug 2021 09:34:06 +0000
    Last State: Terminated
    Reason: Error
    Exit Code: 1
    Started: Wed, 04 Aug 2021 09:28:27 +0000
    Finished: Wed, 04 Aug 2021 09:28:59 +0000
    Ready: True
    Restart Count: 9
    Environment Variables from:
    configmap-ricxapp-qp-appenv ConfigMap Optional: false
    dbaas-appconfig ConfigMap Optional: false
    Environment: <none>
    Mounts:
    /opt/ric/config from config-volume (rw)
    /var/run/secrets/kubernetes.io/serviceaccount from default-token-gcv2j (ro)
    Conditions:
    Type Status
    Initialized True
    Ready True
    ContainersReady True
    PodScheduled True
    Volumes:
    config-volume:
    Type: ConfigMap (a volume populated by a ConfigMap)
    Name: configmap-ricxapp-qp-appconfig
    Optional: false
    default-token-gcv2j:
    Type: Secret (a volume populated by a Secret)
    SecretName: default-token-gcv2j
    Optional: false
    QoS Class: BestEffort
    Node-Selectors: <none>
    Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
    node.kubernetes.io/unreachable:NoExecute for 300s
    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled <unknown> default-scheduler Successfully assigned ricxapp/ricxapp-qp-66b57cd57b-xl8tg to myric
    Normal Pulling 30m kubelet, myric Pulling image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp:0.0.4"
    Normal Pulled 25m kubelet, myric Successfully pulled image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp:0.0.4"
    Normal Created 22m (x5 over 25m) kubelet, myric Created container qp
    Normal Started 22m (x5 over 25m) kubelet, myric Started container qp
    Warning BackOff 4m56s (x74 over 24m) kubelet, myric Back-off restarting failed container
    Normal Pulled 3s (x9 over 25m) kubelet, myric Container image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp:0.0.4" already present on machine


    1. change for older version image helps with this case.

    2. Anonymous

      Hello Sir,

      I am getting the same issue. I have ts xapp and hw xapp working but the qp is showing crashloopbackoff error.

      If you have solved this issue, kindly help Sir. 

      1. Hi,
        try to build docker image from qp repo and tag image with name of image that qp currently using.
        after that, do rollout restart deployment for qp pod

  19. With Dawn release, i can't deploy xApps using both known methods:

    curl --location --request POST "http://10.105.128.182:32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "hwxapp"}'
    "operation XappDeployXapp has not yet been implemented"

    root@nr-ric:~/dep# dms_cli install hwxapp 1.0.0 ricxapp
    2021-09-10 11:54:56,686 - ERROR - Download helm chart failed. Helm repo return status code: 404 {"message":"no Route matched with those values"} - xapp_onboarder.api.charts
    [Errno 2] No such file or directory: 'hwxapp-1.0.0.tgz'
    status: NOT_OK

    root@nr-ric:~/dep# curl --location --request GET "http://10.105.128.182:32080/onboard/api/v1/charts"
    {
    "hwxapp": [
    {
    "name": "hwxapp",
    "version": "1.0.0",
    "description": "Standard xApp Helm Chart",
    "apiVersion": "v1",
    "appVersion": "1.0",
    "urls": [
    "charts/hwxapp-1.0.0.tgz"
    ],
    "created": "2021-09-10T11:44:26.39831211Z",
    "digest": "eb5887e75fad0628155130cb7110950c5a0a1e00f623b6d3bceeec0caee0c213"
    }
    ]
    }

    1. It appears so.

      I find this strange since there is a dawn branch for the TS and QP xapps.

      I wonder if they are compatible with the RIC cherry release for instance.(not compatible with bronze)

    2. Anonymous

      Kamil Kociszewski Hello Sir, I can deploy apps using dms_cli, but when I try to deploy using :

      curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "hwxapp"}'

      It says:    "operation XappDeployXapp has not yet been implemented"


      I am using dawn_example_recipe.

      1. dms_cli is now only working method.
        hwxapp is also app that can be deployed using dms_cli

        1. Anonymous

          dms_cli is only method available on dawn release? But why curl command giving this error ? 

          Yesterday i used  example_recipe.yaml and used curl command and it works well.  

          1. i think this is reason
            curl → helm2
            dms_ci → helm3

            all xapps are/will be compatible with dms_cli.
            for hwxapp find config and schema in init/ folder

    3. According what you said below, we should change helm version to 3, so I change helm version in file "k8s-1node-cloud-init-k_1_16-h_2_17-d_cur.sh".

      But when I am deploying ric-platform in dawn version (step"Deploying the Infrastructure and Platform Groups" in https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-ric-dep/en/latest/installation-guides.html#deploying-the-infrastructure-and-platform-groups), it looks like need helm2 to deploy.

      Should both helm 2 and 3 be used in parallel? 


  20. okay, i figure it out. now it works on dawn release.

    1. Nice.

      Version 1.1.0 of qpdriver xapp has a separate  control.json file from the config.json. How did you add that during onboarding?

      1. Also, my qpdriver 1.1.0 and qp 0.0.4  pods become erroneous after deployment. I'm curious to know what is the case with yours and the versions used.

        thanks

        1. qp: 0.0.3
          qpdriver 1.0.9

          I change versions to previous ones due to errors and now them running correctly

          1. yeah, that's possible but qp 0.0.3 lacks recent commits like the inclusion of a predictor

            1. so, we need to wait for some fixes for this new version (sad)

              1. Anonymous

                I am not able to find embedded-schema.json. Please help me with the file for onboarding

                1. depending on where you download your repo but here is a relative path:

                  /appmgr/xapp_orchestrater/dev/docs/xapp_onboarder/guide/embedded-schema.json

                  1. Anonymous

                    Not able to find /appmgr directory for this git clone https://github.com/o-ran-sc/ric-app-qp-driver. please help

                    1. you must clone appmgr repository, from my link for example (smile)

                      1. Anonymous

                        yes i did, and status: created , but when i use :

                        dms_cli install qpdriver 1.1.0 ricxapp
                        Error: This command needs 1 argument: chart name

                        status: NOT_OK


                        this error comes

                        1. please share result of this command:
                          curl -X GET http://localhost:8090/api/charts | jq . 

                          1. Anonymous

                            shared above

                        2. Anonymous

                          Kamil Kociszewski  
                          See my steps:

                          dms_cli onboard /root/ric-app-qp-driver/xapp-descriptor/config.json /root/appmgr/xapp_orchestrater/dev/docs/xapp_onboarder/guide/embedded-schema.json
                          {
                          "status": "Created"
                          }


                          # curl -X GET http://localhost:8090/api/charts | jq .

                          "qpdriver": [
                          {
                          "name": "qpdriver",
                          "version": "1.1.0",
                          "description": "Standard xApp Helm Chart",
                          "apiVersion": "v1",
                          "appVersion": "1.0",
                          "urls": [
                          "charts/qpdriver-1.1.0.tgz"
                          ],


                          dms_cli install qpdriver 1.1.0 ricxapp
                          Error: This command needs 1 argument: chart name

                          status: NOT_OK


                          1. do you have ricxapp namespace?
                            do you have helm3 installed?

                            1. Anonymous

                              ricxapp namespace is there  and i have helm v2.17.0

                              1. please update helm to helm3:
                                "

                                from what I remember, I firstly uninstall current helm package.
                                then I used instructions from here:
                                https://helm.sh/docs/intro/install/

                                e.g. $
                                curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

                                $ chmod 700 get_helm.sh

                                $ ./get_helm.sh

                                and then you can check version with:
                                helm version"

                                1. Anonymous

                                  Sir, can i have your telegram or some id so that we can discuss on it deeply. I am stuck in dms_cli install for every xapp , same error is there

                                  1. you can contact me with email
                                    kamil.kociszewski@orange.com

                                    i'm not an expert in this topic but I had to go the same way for it to work.

                                    1. Anonymous

                                      Kamil Kociszewskiafter i did helm v3, the dms_cli install worked and got status:OK 

                                      but,  got ErrImagePull in the pod 

                                      Describing the pod i got:

                                      Failed to pull image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp-driver:1.1.0": rpc error: code = Unknown desc = Error response from daemon: manifest for nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-qp-driver:1.1.0 not found: manifest unknown: manifest unknown



                                      Please see this

                                      1. please find our discuss with Han Cock below in comments, version need to be downgraded due to some issues with 1.1.0 version.

                                        1. Anonymous

                                          So, first i have to change the qpdriver version from 1.1.0  to 1.0.9 from config.json and then again onboard and install?

                                          1. you only need to change deployment image, i have example for Kong pod.

                                            Edit deploy image:
                                            kubectl get deployments -n ricplt
                                            (get deployment name for next step)

                                            KUBE_EDITOR="nano" kubectl edit deploy r4-infrastructure-kong -n ricplt

                                            find and change image name ->
                                            image: kong/kubernetes-ingress-controller:0.7.0
                                            (in qp case, change only version)

                                            1. Anonymous

                                              Thank you Sir, pod is running now. Now, how can i use or access this app?

                                              1. at this stage, i can't help you, im also figuring it out now.

    2. Hi Kamil, Kamil Kociszewski

      After you install the xApp, can you see its information in the appmgr?

      In my case, I can install the xApp successfully, but somehow the xApp info is not in the appmgr, which causes other issues.

      As showed below, the appmgr returns an empty list when I inquire about the xApp information:

      root@lianjun:~# curl -i -X GET http://10.244.0.138:8080/ric/v1/xapps
      HTTP/1.1 200 OK
      Content-Type: application/json
      Date: Wed, 16 Mar 2022 19:54:49 GMT
      Content-Length: 3
      Connection: close

      []

      1. Hi,
        this is my output.
        I need to add, that xApps working good, whole TS/AD use case working with sim data.

        root@os-node-2:~# curl -i -X GET http://(x):8080/ric/v1/xapps
        HTTP/1.1 404
        Content-Type: text/html;charset=utf-8
        Content-Language: en
        Content-Length: 1103
        Date: Thu, 17 Mar 2022 11:07:33 GMT

        <!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> &#47;ric&#47;v1&#47;xapps</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/8.5.39 (Ubuntu)</h3></body></html>

        1. Hi Kamil Kociszewski,


          Thank you for your quick response, the returned result looks a bit strange, just to confirm, the IP address used for 'curl -i -X GET http://(IP):8080/ric/v1/xapps' is the appmgr IP, which can be obtained by 'kubectl get endpoints -A', is that your case?

          1. i used kong service IP,
            but please also find output for appmanager ip from endpoints

            root@os-node-2:~# curl -i -X GET http://10.244.0.137:8080/ric/v1/xapps
            HTTP/1.1 200 OK
            Content-Type: application/json
            Date: Fri, 18 Mar 2022 07:13:47 GMT
            Content-Length: 3
            Connection: close

            []

            1. Thank you Kamil Kociszewski, you also got an empty list, so I am feeling the new dms_cli tool has no connection with the appmgr.

  21. Anonymous

    Kamil Kociszewski  I am getting this error when I describe the qpdriver pod  


    Error: configmap "dbaas-appconfig" not found


    Anyone please help how to resolve this issue of configmap

    1. sorry, i don't know how to help in this case.

  22. Dear all,
    i observed problem with hw-python xapp.
    i tried to change test-route and  build new docker image but still "http://10.244.0.42:8080/ric/v1/health/ready" is not correct.
    r4-infrastructure-kong-proxy NodePort 10.96.139.207 <none> 32080:32080/TCP,32443:32443/TCP 22d

    state is 0/1 running and there is errors in logs:

    root@nr-ric:~/dep/xapps/ric-app-hw-python# kubectl describe pod -n ricxapp ricxapp-hw-python-57bcc9596b-mhtqb
    Name: ricxapp-hw-python-57bcc9596b-mhtqb
    Namespace: ricxapp
    Priority: 0
    Node: nr-ric/10.0.2.100
    Start Time: Tue, 05 Oct 2021 10:59:24 +0000
    Labels: app=ricxapp-hw-python
    kubernetes_name=ricxapp_hw-python
    pod-template-hash=57bcc9596b
    release=hw-python
    Annotations: kubectl.kubernetes.io/restartedAt: 2021-10-05T10:59:24Z
    Status: Running
    IP: 10.244.0.42
    IPs:
    IP: 10.244.0.42
    Controlled By: ReplicaSet/ricxapp-hw-python-57bcc9596b
    Containers:
    hw-python:
    Container ID: docker://ce4688a94054390e2b8e6cca96c61c98fd3436022c4ee61c12e83a47c3c38220
    Image: nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-hw-python:1.0.0
    Image ID: docker-pullable://nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-hw-python@sha256:35cd90d388a54508eaaa72e892a4185fff1951b8bb2583cf01f978a591f10558
    Ports: 8080/TCP, 4561/TCP, 4560/TCP
    Host Ports: 0/TCP, 0/TCP, 0/TCP
    State: Running
    Started: Tue, 05 Oct 2021 10:59:25 +0000
    Ready: False
    Restart Count: 0
    Liveness: http-get http://:8080/ric/v1/health/alive delay=5s timeout=1s period=15s #success=1 #failure=3
    Readiness: http-get http://:8080/ric/v1/health/ready delay=5s timeout=1s period=15s #success=1 #failure=3
    Environment Variables from:
    configmap-ricxapp-hw-python-appenv ConfigMap Optional: false
    dbaas-appconfig ConfigMap Optional: false
    Environment: <none>
    Mounts:
    /opt/ric/config from config-volume (rw)
    /var/run/secrets/kubernetes.io/serviceaccount from default-token-5xg7m (ro)
    Conditions:
    Type Status
    AtomixReady True
    Initialized True
    Ready False
    ContainersReady False
    PodScheduled True
    Volumes:
    config-volume:
    Type: ConfigMap (a volume populated by a ConfigMap)
    Name: configmap-ricxapp-hw-python-appconfig
    Optional: false
    default-token-5xg7m:
    Type: Secret (a volume populated by a Secret)
    SecretName: default-token-5xg7m
    Optional: false
    QoS Class: BestEffort
    Node-Selectors: <none>
    Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
    node.kubernetes.io/unreachable:NoExecute for 300s
    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled 21s default-scheduler Successfully assigned ricxapp/ricxapp-hw-python-57bcc9596b-mhtqb to nr-ric
    Normal Pulled 20s kubelet, nr-ric Container image "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-hw-python:1.0.0" already present on machine
    Normal Created 20s kubelet, nr-ric Created container hw-python
    Normal Started 20s kubelet, nr-ric Started container hw-python
    Warning Unhealthy 9s kubelet, nr-ric Readiness probe failed: Get http://10.244.0.42:8080/ric/v1/health/ready: dial tcp 10.244.0.42:8080: connect: connection refused
    Warning Unhealthy 5s kubelet, nr-ric Liveness probe failed: Get http://10.244.0.42:8080/ric/v1/health/alive: dial tcp 10.244.0.42:8080: connect: connection refused

  23. if i try to run hw-python xapp directly from docker image, i get error:

    root@nr-ric:~/dep/xapps/ric-app-hw-python# docker run 8e592410d0bd
    Traceback (most recent call last):
    File "/usr/local/bin/run-hw-python.py", line 5, in <module>
    from src.main import launchXapp
    File "/usr/local/lib/python3.8/site-packages/src/main.py", line 19, in <module>
    from .hwxapp import HWXapp
    File "/usr/local/lib/python3.8/site-packages/src/hwxapp.py", line 24, in <module>
    from .manager import *
    File "/usr/local/lib/python3.8/site-packages/src/manager/__init__.py", line 22, in <module>
    from .SubscriptionManager import SubscriptionManager
    File "/usr/local/lib/python3.8/site-packages/src/manager/SubscriptionManager.py", line 27, in <module>
    from swagger_client import api_client
    ModuleNotFoundError: No module named 'swagger_client'

  24. Anonymous

    Hi Everyone,


    I am getting error in qp as crashloop back off.

    QP version is 0.0.4, QP driver version is 1.0.0, traffic xapp version is 1.0.0

    Also I have all the pods working. Regarding xapp, all the three xapp works fine except qp.

    I understood from Kamil Kociszewski comment that I need to change qp version to 0.0.3, but I couldn't follow the steps he mentioned to achieve it. Can someone who changed the qp version from 0.0.4 to 0.0.3 can provide a little elaborated way to achieve this change. 

    I am totally stuck at this point. Please let me know the steps.

    Thanking you in advance !!!

    1. Anonymous

      Hello,

      I'm at the same point as you. Did you manage to solve it?

  25. Anonymous

    Hi Everyone
    Getting the following error when trying to onboard the traffic steering xapp.

    root@ric:/home/dep# curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download"      --header 'Content-Type: application/json' --data-binary "@./onboard.ts.url"

    {

        "error_source": "config-file.json",

        "error_message": "'__empty_control_section__' is a required property",

        "status": "Input payload validation failed"

    }


    Any help appreciated. Thanks in advance.

    1. Anonymous

      you should combine the schema with config-file  together

      1. Anonymous

        Can you tell me more about “schema with config-file”?

    2. Anonymous

      Same with you...

  26. Has anyone found a solution to the "operation XappDeployXapp has not yet been implemented" error? I have tried port forwarding and made sure that all the pre-requisites for the appmgr are installed. An example of the error:


    $ curl -L -X POST "http://$KONG_PROXY:32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@scp-kpimon-onboard.url"

    {     "status": "Created" }

    $ curl -L -X GET "http://$KONG_PROXY:32080/onboard/api/v1/charts"

    {

        "scp-kpimon": [      

    {             "name": "scp-kpimon",             "version": "1.0.1",             "description": "Standard xApp Helm Chart",             "apiVersion": "v1",             "appVersion": "1.0",             "urls": [                 "charts/scp-kpimon-1.0.1.tgz"             ],             "created": "2023-03-14T14:05:09.116048735Z",             "digest": "25bbd1a1bb27bcffb84f34e57a84e5d7f14d562de213b551b8ff2a193debcffa"         }

        ]

    }


    $ curl -L -X POST "http://$KONG_PROXY:32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "scp-kpimon"}'

    "operation XappDeployXapp has not yet been implemented"


    I'm running release E on  Ubuntu 20.04.5 LTS.

  27. Hi,


    Is there any way to install near RT RIC components on ARM64 based linux platform ?