Docs: update release notes installation guide of G release 47/10247/1 g-release
authorZhang Rong(Jon) <rong.zhang@windriver.com>
Thu, 29 Dec 2022 09:53:29 +0000 (17:53 +0800)
committerJon Zhang <rong.zhang@windriver.com>
Tue, 10 Jan 2023 01:14:53 +0000 (01:14 +0000)
Signed-off-by: Zhang Rong(Jon) <rong.zhang@windriver.com>
Change-Id: Idac1d1e94e2c7fb24814d091a0b80de911f0c316
(cherry picked from commit 4e703c00f2f1a64d921646de001e2dfde392bbdf)

docs/conf.py
docs/installation-guide.rst
docs/overview.rst
docs/release-notes.rst

index 68338b2..2f37573 100644 (file)
@@ -17,6 +17,7 @@ linkcheck_ignore = [
     'http://localhost.*',
     'http://127.0.0.1.*',
     'https://gerrit.o-ran-sc.org.*',
+    'http://put_your_*',
     './oran-o2-api.html',  # Generated file that doesn't exist at link check.
     './api-docs.html'
 ]
index c64535e..d1b76d1 100644 (file)
@@ -1,6 +1,6 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. Copyright (C) 2021 Wind River Systems, Inc.
+.. Copyright (C) 2021-2022 Wind River Systems, Inc.
 
 
 Installation Guide
@@ -13,321 +13,362 @@ Installation Guide
 Abstract
 --------
 
-This document describes how to install INF O2 service over O-RAN INF platform.
-
-The audience of this document is assumed to have basic knowledge in kubernetes cli, helm chart cli.
+This document describes how to install INF O2 service over the O-RAN INF
+platform.
 
+The audience of this document is assumed to have basic knowledge of
+kubernetes CLI, and helm chart cli.
 
 Preface
 -------
 
-Before starting the installation and deployment of O-RAN O2 service, you should have already deployed O-RAN INF platform, and you need to download the helm charts or build from source as described in developer-guide.
+In the context of hosting a RAN Application on INF, the O-RAN O2
+Application provides and exposes the IMS and DMS service APIs of the O2
+interface between the O-Cloud (INF) and the Service Management &
+Orchestration (SMO), in the O-RAN Architecture.
+
+The O2 interfaces enable the management of the O-Cloud (INF)
+infrastructure and the deployment life-cycle management of O-RAN
+cloudified NFs that run on O-Cloud (INF). See `O-RAN O2 General Aspects
+and Principles
+2.0 <https://orandownloadsweb.azurewebsites.net/specifications>`__, and
+`INF O2
+documentation <https://docs.o-ran-sc.org/projects/o-ran-sc-pti-o2/en/latest/>`__.
+
+The O-RAN O2 application is integrated into INF as a system application.
+The O-RAN O2 application package is saved in INF during system
+installation, but it is not applied by default.
+
+System administrators can follow the procedures below to install and
+uninstall the O-RAN O2 application.
+
+INF O2 Service Install
+======================
+
+1. Prerequisites
+----------------
+
+Configure the internal Ceph storage for the O2 application persistent
+storage, see INF Storage Configuration and Management: `Configure the
+Internal Ceph Storage
+Backend <https://docs.starlingx.io/storage/kubernetes/configure-the-internal-ceph-storage-backend.html#configure-the-internal-ceph-storage-backend>`__.
+
+Enable PVC support in ``oran-o2`` namespace, see INF Storage
+Configuration and Management: `Enable ReadWriteOnce PVC Support in
+Additional
+Namespaces <https://docs.starlingx.io/storage/kubernetes/enable-readwriteonce-pvc-support-in-additional-namespaces.html#enable-readwriteonce-pvc-support-in-additional-namespaces>`__.
+
+2. Procedure
+------------
+
+You can install O-RAN O2 application on INF from the command line.
+
+1. Locate the O2 application tarball in
+   ``/usr/local/share/applications/helm``.
+
+   For example:
+
+   ::
+
+      /usr/local/share/applications/helm/oran-o2-<version>.tgz
+
+2. Download ``admin_openrc.sh`` from the INF admin dashboard.
+
+   -  Visit http://put_your_OAM_IP_here:8080/project/api_access/
+   -  Click the **Download OpenStack RC File”/”OpenStack RC File**
+      button
+
+3. Copy the file to the controller host.
+
+4. Source the platform environment.
+
+   ::
+
+      $ source ./admin_openrc.sh
+      ~(keystone_admin)]$
+
+5. Upload the application.
+
+   ::
+
+      ~(keystone_admin)]$ system application-upload /usr/local/share/applications/helm/oran-o2-<version>.tgz
 
+6. Prepare the override ``yaml`` file.
 
-INF O2 Service in E Release
-===========================
+   1. Create a service account for SMO application.
 
-1. Provision remote cli for kubernetes over INF platform
---------------------------------------------------------
+      Create a ServiceAccount which can be used to provide SMO
+      application with minimal access permission credentials.
 
+      ::
 
-1.1 Setup Service Account over O-RAN INF platform
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         export SMO_SERVICEACCOUNT=smo1
 
-The following instruction must be done over INF platform controller host (controller-0)
+         cat <<EOF > smo-serviceaccount.yaml
+         apiVersion: rbac.authorization.k8s.io/v1
+         kind: Role
+         metadata:
+           namespace: default
+           name: pod-reader
+         rules:
+         - apiGroups: [""] # "" indicates the core API group
+           resources: ["pods"]
+           verbs: ["get", "watch", "list"]
+         ---
+         apiVersion: v1
+         kind: ServiceAccount
+         metadata:
+           name: ${SMO_SERVICEACCOUNT}
+           namespace: default
+         ---
+         apiVersion: rbac.authorization.k8s.io/v1
+         kind: RoleBinding
+         metadata:
+           name: read-pods
+           namespace: default
+         roleRef:
+           apiGroup: rbac.authorization.k8s.io
+           kind: Role
+           name: pod-reader
+         subjects:
+         - kind: ServiceAccount
+           name: ${SMO_SERVICEACCOUNT}
+           namespace: default
+         EOF
 
--  Please see the O-RAN INF documentation to find out how to ssh to controller host of INF platform.
+         kubectl apply -f smo-serviceaccount.yaml
 
-.. code:: shell
+   2. Create a secret for service account and obtain an access token.
 
-  USER="admin-user"
-  NAMESPACE="kube-system"
+      Create a secret with the type service-account-token and pass the
+      ServiceAccount in the annotation section as shown below:
 
-  cat <<EOF > admin-login.yaml
-  apiVersion: v1
-  kind: ServiceAccount
-  metadata:
-    name: ${USER}
-    namespace: kube-system
-  ---
-  apiVersion: rbac.authorization.k8s.io/v1
-  kind: ClusterRoleBinding
-  metadata:
-    name: ${USER}
-  roleRef:
-    apiGroup: rbac.authorization.k8s.io
-    kind: ClusterRole
-    name: cluster-admin
-  subjects:
-  - kind: ServiceAccount
-    name: ${USER}
-    namespace: kube-system
-  EOF
+      ::
 
-  kubectl apply -f admin-login.yaml
-  TOKEN_DATA=$(kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${USER} | awk '{print $1}') | grep "token:" | awk '{print $2}')
-  echo $TOKEN_DATA
+         export SMO_SECRET=smo1-secret
 
+         cat <<EOF > smo-secret.yaml
+         apiVersion: v1
+         kind: Secret
+         metadata:
+           name: ${SMO_SECRET}
+           annotations:
+             kubernetes.io/service-account.name: ${SMO_SERVICEACCOUNT}
+         type: kubernetes.io/service-account-token
+         EOF
 
-1.2 Setup remote cli over another linux host (ubuntu as example)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         kubectl apply -f smo-secret.yaml
 
-The following instruction should be done outside of INF platform controller host
+         export SMO_TOKEN_DATA=$(kubectl get secrets $SMO_SECRET -o jsonpath='{.data.token}' | base64 -d -w 0)
 
-.. code:: shell
+   3. Create certificates for the O2 service.
 
-  sudo apt-get install -y apt-transport-https
-  echo "deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | \
-  sudo tee -a /etc/apt/sources.list.d/kubernetes.list
-  gpg --keyserver keyserver.ubuntu.com --recv-keys 836F4BEB
-  gpg --export --armor 836F4BEB | sudo apt-key add -
-  sudo apt-get update
-  sudo apt-get install -y kubectl
+      Obtain an intermediate or Root CA-signed certificate and key from
+      a trusted intermediate or Root Certificate Authority (CA). Refer
+      to the documentation for the external Root CA that you are using
+      on how to create a public certificate and private key pairs signed
+      by an intermediate or Root CA for HTTPS.
 
-  source <(kubectl completion bash) # setup autocomplete in bash into the current shell, bash-completion package should be installed first.
-  echo "source <(kubectl completion bash)" >> ~/.bashrc # add autocomplete permanently to your bash shell.
+      For lab purposes, see INF Security: `Create Certificates Locally
+      using
+      openssl <https://docs.starlingx.io/security/kubernetes/create-certificates-locally-using-openssl.html#create-certificates-locally-using-openssl>`__
+      to create an Intermediate or test Root CA certificate and key, and
+      use it to locally sign test certificates.
 
-  curl -O https://get.helm.sh/helm-v3.5.3-linux-amd64.tar.gz
-  tar xvf helm-v3.5.3-linux-amd64.tar.gz
-  sudo cp linux-amd64/helm /usr/local/bin/
+      The resulting files, from either an external CA or locally
+      generated for the lab with openssl, should be:
 
-  source <(helm completion bash)
-  echo "source <(helm completion bash)" >> ~/.bashrc
+      -  Local CA certificate - ``my-root-ca-cert.pem``
+      -  Server certificate - ``my-server-cert.pem``
+      -  Server key - ``my-server-key.pem``
 
-  OAM_IP=<INF OAM IP>
-  NAMESPACE=oran-o2
-  TOKEN_DATA=<TOKEN_DATA from INF>
+      ..
 
-  USER="admin-user"
+         **Note** If using a server certificate signed by a local CA
+         (i.e. lab scenario above), this local CA certificate
+         (e.g. my-root-ca-cert.pem from lab scenario above) must be
+         shared with the SMO application for the O2 server certificate
+         verification.
 
-  kubectl config set-cluster inf-cluster --server=https://${OAM_IP}:6443 --insecure-skip-tls-verify
-  kubectl config set-credentials ${USER} --token=$TOKEN_DATA
-  kubectl config set-context ${USER}@inf-cluster --cluster=inf-cluster --user ${USER} --namespace=${NAMESPACE}
-  kubectl config use-context ${USER}@inf-cluster
+   4. Prepare the O2 service application configuration file.
 
-  kubectl get pods -A
+      As per the Cloudification and Orchestration use case defined in
+      O-RAN Working Group 6, the following information should be
+      generated by SMO:
 
+      -  O-Cloud Gload ID - ``OCLOUD_GLOBAL_ID``
+      -  SMO Register URL - ``SMO_REGISTER_URL``
 
-2. Deploy INF O2 service
-------------------------
+      See `O-RAN Cloudification and Orchestration Use Cases and
+      Requirements for O-RAN Virtualized
+      RAN <https://orandownloadsweb.azurewebsites.net/specifications>`__.
 
-2.1 Retrieve Helm chart for deploying of INF O2 service
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ::
 
-.. code:: shell
+         API_HOST_EXTERNAL_FLOATING=$(echo ${OS_AUTH_URL} | awk -F / '{print $3}' | cut -d: -f1)
 
-  git clone -b e-release "https://gerrit.o-ran-sc.org/r/pti/o2"
+         cat <<EOF > app.conf
+         [DEFAULT]
 
+         ocloud_global_id = ${OCLOUD_GLOBAL_ID}
+         smo_register_url = ${SMO_REGISTER_URL}
+         smo_token_data = ${SMO_TOKEN_DATA}
 
+         [OCLOUD]
+         OS_AUTH_URL = ${OS_AUTH_URL}
+         OS_USERNAME = ${OS_USERNAME}
+         OS_PASSWORD = ${OS_PASSWORD}
+         API_HOST_EXTERNAL_FLOATING = ${API_HOST_EXTERNAL_FLOATING}
 
-2.2 Prepare override yaml
-~~~~~~~~~~~~~~~~~~~~~~~~~
+         [API]
 
-.. code:: shell
-
-  export NAMESPACE=oran-o2
-  kubectl create ns ${NAMESPACE}
-
-  # default kube config location is ~/.kube/config
-  cp ~/.kube/config o2/charts/resources/scripts/init/k8s_kube.conf
-
-  export OS_AUTH_URL=<INF OAM Auth URL e.g.: http://OAM_IP:5000/v3>
-  export OS_USERNAME=<INF username e.g.: admin>
-  export OS_PASSWORD=<INF password for user e.g.: adminpassword>
-
-  # If the external OAM IP same as OS_AUTH_URL's IP address, you can use the below command to set the environment
-  # export API_HOST_EXTERNAL_FLOATING=$(echo ${OS_AUTH_URL} | sed -e s,`echo ${OS_AUTH_URL} | grep :// | sed -e's,^\(.*//\).*,\1,g'`,,g | cut -d/ -f1 | sed -e 's,:.*,,g')
-  export API_HOST_EXTERNAL_FLOATING=<INF external_oam_floating_address e.g.: 128.10.10.10>
-
-  # please specify the smo service account yaml file
-  export SMO_SERVICEACCOUNT=<your input here eg.: smo>
-  # service account and binding for smo yaml file
-
-  cat <<EOF >smo-serviceaccount.yaml
-  apiVersion: rbac.authorization.k8s.io/v1
-  kind: Role
-  metadata:
-    namespace: default
-    name: pod-reader
-  rules:
-  - apiGroups: [""] # "" indicates the core API group
-    resources: ["pods"]
-    verbs: ["get", "watch", "list"]
-  ---
-  apiVersion: v1
-  kind: ServiceAccount
-  metadata:
-    name: ${SMO_SERVICEACCOUNT}
-    namespace: default
-  ---
-  apiVersion: rbac.authorization.k8s.io/v1
-  kind: RoleBinding
-  metadata:
-    name: read-pods
-    namespace: default
-  roleRef:
-    apiGroup: rbac.authorization.k8s.io
-    kind: Role
-    name: pod-reader
-  subjects:
-  - kind: ServiceAccount
-    name: ${SMO_SERVICEACCOUNT}
-    namespace: default
-
-  EOF
-
-  kubectl apply -f smo-serviceaccount.yaml
-
-  #export the smo account token data
-  export SMO_SECRET=$(kubectl -n default get serviceaccounts $SMO_SERVICEACCOUNT -o jsonpath='{.secrets[0].name}')
-  export SMO_TOKEN_DATA=$(kubectl -n default get secrets $SMO_SECRET -o jsonpath='{.data.token}')
-
-  #prepare the application config file
-  cat <<EOF >app.conf
-  [DEFAULT]
-
-  ocloud_global_id = 4e24b97c-8c49-4c4f-b53e-3de5235a4e37
-
-  smo_register_url = http://127.0.0.1:8090/register
-  smo_token_data = ${SMO_TOKEN_DATA}
+         [WATCHER]
 
-  [OCLOUD]
-  OS_AUTH_URL: ${OS_AUTH_URL}
-  OS_USERNAME: ${OS_USERNAME}
-  OS_PASSWORD: ${OS_PASSWORD}
-  API_HOST_EXTERNAL_FLOATING: ${API_HOST_EXTERNAL_FLOATING}
+         [PUBSUB]
+         EOF
 
-  [API]
+   5. Retrieve the CA certificate from your SMO vendor.
 
-  [WATCHER]
+      If the SMO application provides service via HTTPS, and the server
+      certificate is self-signed, the CA certficate should be retrieved
+      from the SMO.
 
-  [PUBSUB]
+      This procedure assumes that the name of the certificate is
+      ``smo-ca.pem``
 
-  EOF
+   6. Populate the override yaml file.
 
-  #prepare the ssl cert files or generate with below command.
+      Refer to the previous step for the required override values.
 
-  PARENT="imsserver"
-  openssl req \
-  -x509 \
-  -newkey rsa:4096 \
-  -sha256 \
-  -days 365 \
-  -nodes \
-  -keyout $PARENT.key \
-  -out $PARENT.crt \
-  -subj "/CN=${PARENT}" \
-  -extensions v3_ca \
-  -extensions v3_req \
-  -config <( \
-    echo '[req]'; \
-    echo 'default_bits= 4096'; \
-    echo 'distinguished_name=req'; \
-    echo 'x509_extension = v3_ca'; \
-    echo 'req_extensions = v3_req'; \
-    echo '[v3_req]'; \
-    echo 'basicConstraints = CA:FALSE'; \
-    echo 'keyUsage = nonRepudiation, digitalSignature, keyEncipherment'; \
-    echo 'subjectAltName = @alt_names'; \
-    echo '[ alt_names ]'; \
-    echo "DNS.1 = www.${PARENT}"; \
-    echo "DNS.2 = ${PARENT}"; \
-    echo '[ v3_ca ]'; \
-    echo 'subjectKeyIdentifier=hash'; \
-    echo 'authorityKeyIdentifier=keyid:always,issuer'; \
-    echo 'basicConstraints = critical, CA:TRUE, pathlen:0'; \
-    echo 'keyUsage = critical, cRLSign, keyCertSign'; \
-    echo 'extendedKeyUsage = serverAuth, clientAuth')
-
-
-  applicationconfig=`base64 app.conf -w 0`
-  servercrt=`base64 imsserver.crt -w 0`
-  serverkey=`base64 imsserver.key -w 0`
-  smocacrt=`base64 smoca.crt -w 0`
-
-  echo $applicationconfig
-  echo $servercrt
-  echo $serverkey
-  echo $smocacrt
-
-
-  cat <<EOF>o2service-override.yaml
-  imagePullSecrets:
-    - default-registry-key
+      ::
 
-  o2ims:
-    serviceaccountname: admin-oran-o2
-    images:
-      tags:
-        o2service: nexus3.o-ran-sc.org:10004/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"
+         APPLICATION_CONFIG=$(base64 app.conf -w 0)
+         SERVER_CERT=$(base64 my-server-cert.pem -w 0)
+         SERVER_KEY=$(base64 my-server-key.pem -w 0)
+         SMO_CA_CERT=$(base64 smo-ca.pem -w 0)
 
-  applicationconfig: ${applicationconfig}
-  servercrt: ${servercrt}
-  serverkey: ${serverkey}
-  smocacrt: ${smocacrt}
+         cat <<EOF > o2service-override.yaml
 
-  EOF
+         applicationconfig: ${APPLICATION_CONFIG}
+         servercrt: ${SERVER_CERT}
+         serverkey: ${SERVER_KEY}
+         smocacrt: ${SMO_CA_CERT}
 
-  cat o2service-override.yaml
+         EOF
 
+      To deploy other versions of an image required for a quick
+      solution, to have early access to the features (eg.
+      oranscinf/pti-o2imsdms:2.0.0), and to authenticate images that are
+      hosted by a private registry, follow the steps below:
 
-2.3 Deploy by helm cli
-~~~~~~~~~~~~~~~~~~~~~~
+      1. Create a docker-registry secret in ``oran-o2`` namespace.
 
-.. code:: shell
+         ::
 
-  helm install o2service o2/charts -f o2service-override.yaml
-  helm list |grep o2service
-  kubectl -n ${NAMESPACE} get pods |grep o2api
-  kubectl -n ${NAMESPACE} get services |grep o2api
+            export O2SERVICE_IMAGE_REG=<docker-server-endpoint>
 
+            kubectl create secret docker-registry private-registry-key \
+            --docker-server=${O2SERVICE_IMAGE_REG} --docker-username=${USERNAME} \
+            --docker-password=${PASSWORD} -n oran-o2
 
-2.4 Verify INF O2 service
-~~~~~~~~~~~~~~~~~~~~~~~~~
+      2. Refer to the ``imagePullSecrets`` in override file.
 
-.. code:: shell
+         ::
 
-  curl -k http(s)://<OAM IP>:30205/o2ims_infrastructureInventory/v1/
+            cat <<EOF > o2service-override.yaml
+            imagePullSecrets:
+              - private-registry-key
 
+            o2ims:
+              serviceaccountname: admin-oran-o2
+              images:
+                tags:
+                  o2service: ${O2SERVICE_IMAGE_REG}/docker.io/oranscinf/pti-o2imsdms:2.0.0
+                  postgres: ${O2SERVICE_IMAGE_REG}/docker.io/library/postgres:9.6
+                  redis: ${O2SERVICE_IMAGE_REG}/docker.io/library/redis:alpine
+                pullPolicy: IfNotPresent
+              logginglevel: "DEBUG"
 
-2.5 INF O2 Service API Swagger
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            applicationconfig: ${APPLICATION_CONFIG}
+            servercrt: ${SERVER_CERT}
+            serverkey: ${SERVER_KEY}
+            smocacrt: ${SMO_CA_CERT}
 
-- Swagger UI can be found with URL: http(s)://<OAM IP>:30205
+            EOF
 
+7. Update the overrides for the oran-o2 application.
 
-3. Register INF O2 Service to SMO
----------------------------------
+   ::
 
-- assumed you have setup SMO O2 endpoint for registration
-- INF O2 service will post the INF platform registration data to that SMO O2 endpoint
+      ~(keystone_admin)]$ system helm-override-update oran-o2 oran-o2 oran-o2 --values o2service-override.yaml
 
+      # Check the overrides
+      ~(keystone_admin)]$ system helm-override-show oran-o2 oran-o2 oran-o2
 
-.. code:: shell
+8. Run the **system application-apply** command to apply the updates.
 
-  curl -X 'GET' \
-  'http(s)://<OAM IP>:30205/provision/v1/smo-endpoint' \
-  -H 'accept: application/json'
+   ::
 
-  curl -k -X 'POST' \
-    'http(s)://<OAM IP>:30205/provision/v1/smo-endpoint' \
-    -H 'accept: application/json' \
-    -H 'Content-Type: application/json' \
-    -d '{"endpoint": "<SMO O2 endpoint for registration>"}'
+      ~(keystone_admin)]$ system application-apply oran-o2
 
-  # Confirm SMO endpoint provision status
-  curl -X 'GET' \
-  'http(s)://<OAM IP>:30205/provision/v1/smo-endpoint' \
-  -H 'accept: application/json'
+9. Monitor the status using the command below.
 
+   ::
 
-References
+      ~(keystone_admin)]$ watch -n 5 system application-list
+
+   OR
+
+   ::
+
+      ~(keystone_admin)]$ watch kubectl get all -n oran-o2
+
+3. Results
 ----------
 
-- `O-RAN-SC INF`_
+You have launched services in the above namespace.
+
+4. Postrequisites
+-----------------
+
+You will need to integrate INF with an SMO application that performs
+management of O-Cloud infrastructure and the deployment life cycle
+management of O-RAN cloudified NFs. See the following API reference for
+details:
+
+-  `API O-RAN O2
+   interface <https://docs.o-ran-sc.org/projects/o-ran-sc-pti-o2/en/g-release/api.html>`__
+
+INF O2 Service Uninstall
+========================
+
+.. _procedure-1:
+
+1. Procedure
+------------
+
+You can uninstall the O-RAN O2 application on INF from the command line.
+
+1. Uninstall the application.
+
+   Remove O2 application related resources.
+
+   ::
+
+      ~(keystone_admin)]$ system application-remove oran-o2
+
+2. Delete the application.
+
+   Remove the uninstalled O2 application’s definition, including the
+   manifest and helm charts and helm chart overrides, from the system.
+
+   ::
+
+      ~(keystone_admin)]$ system application-delete oran-o2
+
+.. _results-1:
+
+2. Results
+----------
 
-.. _`O-RAN-SC INF`: https://docs.o-ran-sc.org/en/latest/projects.html#infrastructure-inf
+You have uninstalled the O2 application from the system.
index 00b9ea8..4ab4f1d 100644 (file)
@@ -1,48 +1,45 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. Copyright (C) 2021 Wind River Systems, Inc.
+.. Copyright (C) 2021-2022 Wind River Systems, Inc.
 
 INF O2 Service Overview
 =======================
 
-This project implements a reference O-RAN O2 IMS and DMS service to expose the INF platform to SMO via the O-RAN O2 interface.
+This project implements a reference O-RAN O2 IMS and DMS service to
+expose the INF platform to SMO via the O-RAN O2 interface.
 
-In the E release, the following APIs are supported by the INF O2 service:
+In the G release, the following APIs are supported by the INF O2
+service:
 
 1. INF O2 service Infrastructure Management Service (IMS)
 
-   - INF O2 service provisioning API
+   -  INF O2 service Inventory API
 
-     - Provision SMO O2 endpoint into INF O2 service
+      -  O2 service discovers following resources of INF platform to
+         answer queries from SMO
 
-     - O2 service discovers INF platform and registers INF platform to SMO via the provisioned SMO O2 endpoint
+         -  INF platform information
+         -  Resource Pool of the INF platform
+         -  Resources of the Resource Pool, including pserver, cpu, memory, interface, accelerator
+         -  Resource Types associated with Resources
 
-   - INF O2 service Inventory API
+      -  INF platform Subscription and Notification
 
-     - O2 service discovers following resources of INF platform to answer queries from SMO
+         -  INF O2 service exposes Subscription API to enable SMO
+            subscribes to Notification of changes of resources
 
-       - INF platform information
+      -  INF platform Deployment Management Service profile queries API
 
-       - Resource Pool of the INF platform
+         -  INF O2 service enables lookup of INF Native Kubernetes API information as part of inventory
 
-       - Resources of the Resource Pool, including pserver, cpu, memory, port, interface
+   -  INF O2 service Monitoring API
 
-       - Resource Types associated with Resources
+      -  O2 service discovers alarms of INF platform to answer queries from SMO
 
-    - INF platform Subscription and Notification
+         -  INF alarm event record information
 
-      - INF O2 service exposes Subscription API to enable SMO subscribes to Notification of changes of resources
+      -  INF alarm Subscription and Notification
 
-    - INF platform Deployment Management Service Endpoint discovery API
+         -  INF O2 service exposes alarm Subscription API to enable SMO
+            subscribes to Notification of changes of alarms
 
-      - INF O2 service enables lookup of INF O2 DMS endpoints via DeploymentManagementService resource as part of inventory
-
-2. INF O2 service Deployment Management Service (DMS)
-
-   - INF O2 service discovers kubernetes clusters hosted by INF platform, exposes them as Deployment Management Services via DMS endpoints
-
-   - The exposed DMS endpoint supports Lifecycle Management of NfDeployment which represents CNF described in helm chart, the API supports APIs below:
-
-     - Management of NfDeploymentDescriptor
-
-     - Management of NfDeployment
index 0f32172..4dcd037 100644 (file)
@@ -1,39 +1,96 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. Copyright (C) 2021 Wind River Systems, Inc.
+.. Copyright (C) 2021-2022 Wind River Systems, Inc.
 
 
 Release-notes
 =============
 
 
-This document provides the release notes for 1.0.0 of INF O2 service.
+This document provides the release notes for 2.0.1 of INF O2 service.
 
 .. contents::
    :depth: 3
    :local:
 
 
-Version history
+Version History
 ---------------
 
-+--------------------+--------------------+--------------------+--------------------+
-| **Date**           | **Ver.**           | **Author**         | **Comment**        |
-|                    |                    |                    |                    |
-+--------------------+--------------------+--------------------+--------------------+
-| 2021-12-15         | 1.0.0              | Bin Yang           | E Release          |
-|                    |                    |                    |                    |
-+--------------------+--------------------+--------------------+--------------------+
++------------+----------+----------------------------------------------+-------------+
+| **Date**   | **Ver.** | **Author**                                   | **Comment** |
++------------+----------+----------------------------------------------+-------------+
+| 2022-12-15 | 2.0.1    | Bin Yang, Jon Zhang, Jackie Huang, David Liu | G Release   |
++------------+----------+----------------------------------------------+-------------+
+| 2022-06-15 | 1.0.1    | Bin Yang, Jon Zhang                          | F Release   |
++------------+----------+----------------------------------------------+-------------+
+| 2021-12-15 | 1.0.0    | Bin Yang, Jon Zhang                          | E Release   |
++------------+----------+----------------------------------------------+-------------+
+
+Version 2.0.1, 2022-12-15
+-------------------------
+
+-  Upgrade Inventory API, and add Monitoring API
+
+   -  Support HTTPS/TLS for API endpoint
+   -  Support authentication with token of API
+   -  Add "api_version" query in base API
+   -  Add "O2IMS_InfrastructureMonitoring" API part
+   -  Support Attribute-based selectors, and API query filter parameters
+      following the specification
+   -  Updating error handling of all the API queries
+
+-  Update the Subscription and Notification part
+
+   -  Notification SMO and register O-Cloud when the application starts
+      with SMO configuration
+   -  Support subscription inventory change or alarm notification with
+      the filter parameter
+
+-  Specification compliance
+
+   -  Compliance to "O-RAN.WG6.O2IMS-INTERFACE\ 2v03.0"
+   -  Updating modeling, including ResourcePool, ResourceInfo,
+      DeploymentManager, ResourceType, Notification, O-Cloud,
+      AlarmEventRecord, AlarmDictorary, and AlarmDefinition
+   -  Adding Accelerators as a resource; adding virtual resource type
+
+-  Other updates
+
+   -  Add configuration file load at application starts
+   -  Fix bugs
+   -  Replace POC O2DMS APIs with Kubernetes Native API Profile 
+      for Containerized NFs
+
+Version 1.0.1, 2022-06-15
+-------------------------
+
+-  Add Distributed Cloud(DC) supported
+
+   -  Enable multiple ResourcePool support in DC mode
+   -  Enable multiple DeploymentManager support in DC mode
+
+-  Add O2 DMS profiles
+
+   -  Support native_k8sapi profile that can get native Kubernetes API information
+   -  Support SOL018 specification, it includes native Kubernetes API profile and Helm CLI profile, "sol018", and "sol018_helmcli"
 
 Version 1.0.0, 2021-12-15
 -------------------------
-- Initial version (E release)
-- Add O2 IMS for INF platform
-  - Enable INF platform registration to SMO
-  - Enable O2 infrastructure inventory service API
-  - Enable O2 Subscription service API
-  - Enable O2 Notification service to notify SMO about the resource changes
-- ADD O2 DMS for INF platform
-  - A PoC which enables Lifecycle management of NfDeployment represents CNF described with helm chart
-  - Add Lifecycle Management API for NfDeploymentDescriptor which represents a helm chart for NfDeployment
-  - Add Lifecycle Management API for NfDeployment
+
+-  Initial version (E release)
+-  Add O2 IMS for INF platform
+
+   -  Enable INF platform registration to SMO
+   -  Enable O2 infrastructure inventory service API
+   -  Enable O2 Subscription service API
+   -  Enable O2 Notification service to notify SMO about the resource
+      changes
+
+-  ADD O2 DMS for INF platform
+
+   -  A PoC which enables Lifecycle management of NfDeployment
+      represents CNF described with helm chart
+   -  Add Lifecycle Management API for NfDeploymentDescriptor which
+      represents a helm chart for NfDeployment
+   -  Add Lifecycle Management API for NfDeployment