blob: 6a843cadeb22e5de4613c2b3e79a59bbf43dd82d [file] [log] [blame]
.. ===============LICENSE_START=======================================================
.. O-RAN SC CC-BY-4.0
.. %%
.. Copyright (C) 2019 AT&T Intellectual Property
.. %%
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
..
.. http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. ===============LICENSE_END=========================================================
RIC Dashboard Configuration and Deployment
==========================================
This documents the configuration and deployment of the O-RAN SC RIC
Dashboard web application, which is often deployed together with the
ONAP Portal.
Configuration
-------------
The application requires the following configuration files::
application.properties
key.properties
portal.properties
In the usual Kubernetes deployment, all file contents are provided by
a configuration map.
Application Properties
^^^^^^^^^^^^^^^^^^^^^^
The file ``application.properties`` must be provided when the
application is launched, either in the current working directory or in
a ``config`` subdirectory (latter is preferred). The Helm chart that
deploys the application should mount this file appropriately.
Many properties have default values cached within the application, in
file ``src/main/resources/application.properties``. Properties with
default values do NOT need to be repeated in a deployment-specific
configuration. Properties without default values MUST be specified in
a deployment-specific configuration.
The properties are listed below in alphabetical order.
``a1med.url.prefix``
A1 Mediator URL prefix. No useful default. Usually a service name
like ``http://ricplt-entry/a1mediator``
``a1med.url.suffix``
A1 Mediator URL suffix. Default is the empty string.
``anrxapp.url.prefix``
ANR Application URL prefix. No useful default. Usually a service name
like ``http://ricxapp-entry/anr``
``anrxapp.url.suffix``
ANR Application URL suffix. Default is the empty string.
``appmgr.url.prefix``
Application Manager URL prefix. No useful default. Usually a service
name like ``http://ricplt-entry/appmgr``
``appmgr.url.suffix``
Application Manager URL suffix. Default is ``/ric/v1``.
``caasingress.aux.url.prefix``
CAAS-Ingress application URL prefix for the RIC Auxiliary cluster. No useful default.
``caasingress.aux.url.suffix``
CAAS-Ingress application URL suffix for the RIC Auxiliary cluster. Default is ``api``.
``caasingress.insecure``
Flag whether to disable SSL/TLS certificate and hostname verification.
If true, the dashboard can communicate with a CAAS-Ingress endpoint that
uses self-signed certificates.
``caasingress.plt.url.prefix``
CAAS-Ingress application URL prefix for the RIC Platform cluster. No useful default.
``caasingress.plt.url.suffix``
CAAS-Ingress application URL suffix for the RIC-PLT cluster. Default is ``api``.
``e2mgr.url.prefix``
E2 Manager URL prefix. No useful default. Usually a service name like
``http://ricplt-entry/e2mgr``
``e2mgr.url.suffix``
E2 Manager URL prefix. Default is ``/v1``.
``mock.config.delay``
Sleep period for mock methods in milliseconds. This mimics slow
endpoints. Default is ``0``.
``portalapi.appname``
Application name expected at ONAP portal. Default is ``RIC Dashboard``
``portalapi.decryptor``
Java class that decrypts ciphertext from Portal. Default is
``org.oransc.ric.portal.dashboard.portalapi.PortalSdkDecryptorAes``.
``portalapi.password``
REST password expected at ONAP portal. No default value.
``portalapi.security``
Boolean flag whether the Dashboard limits access to users (browsers)
that present security tokens set by the ONAP Portal. If false, no
access control is performed, which is only appropriate for isolated
lab testing.
``portalapi.usercookie``
Name of request cookie with user ID. Default is ``UserId``.
``portalapi.username``
REST user name expected at ONAP portal. No default value.
``server.port``
Port where the Tomcat server listens for requests. Default is ``8080``.
``metrics.url.ac``
Url to the kibana source which visualizes AC App metrics. No default value and needs to be replaced with actual value during deployment time.
``userfile``
Path of file that stores user details. Default is ``users.json``.
Key Properties
^^^^^^^^^^^^^^
The file ``key.properties`` must be provided on the Java classpath for
the Spring-Boot application, as required by the EPSDK-FW library. The
Helm chart for the application should mount this file appropriately.
A sample file is in directory ``src/test/resources``.
The file must contain the following entries, listed here in
alphabetical order.
``cipher.enc.key``
Encryption key used by the EPSDK-FW library. No default value.
Portal Properties
^^^^^^^^^^^^^^^^^
The file ``portal.properties`` must be provided on the Java classpath
for the application, as required by the EPSDK-FW library. The Helm
chart for the application should mount this file appropriately. A
sample file is in directory ``src/test/resources``.
The file must contain the following entries, listed here in
alphabetical order.
``ecomp_redirect_url``
Portal URL that is reachable by a user's browser. This is a value
like
``https://portal.api.simpledemo.onap.org:30225/ONAPPORTAL/login.htm``
``ecomp_rest_url``
Portal REST URL that is reachable by the Dashboard back-end.
This is a value like ``http://portal-app.onap:8989/ONAPPORTAL/auxapi``
``portal.api.impl.class``
Java class name. No default value. Value must be
``org.oransc.ric.portal.dashboard.portalapi.PortalRestCentralServiceImpl``
``role_access_centralized``
Selector for role access. No default value. Value must be ``remote``.
``ueb_app_key``
Unique key assigned by ONAP Portal to the RIC Dashboard application.
No default value.
Deployment
----------
A production server requires the configuration files listed above.
All files should be placed in a ``config`` directory. That name is
important; Spring automatically searches that directory for the
``application.properties`` file. Further, that directory can easily be
placed on the Java classpath so the additional files can be found at
runtime.
On-Board Dashboard to ONAP Portal
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When on-boarding the Dashboard to the ONAP Portal the administrator
must supply the following information about the deployed instance:
- Dashboard URL that is reachable by a user's browser. The domain of
this host name must match the Portal URL that is similarly reachable
by a user's browser for cookie-based authentication to function as
expected. This should be a value like
``http://dashboard.simpledemo.onap.org:8080``
- Dashboard REST URL that is reachable by the Portal back-end server.
This can be a host name or an IP address, because it does not use
cookie-based authentication. This must be a URL with suffix "/api/v3"
for example ``http://192.168.1.1:8080/api/v3``.
The Dashboard server only listens on a single port, so the examples
above both use the same port number. Different port numbers might be
required if an ingress controller or other proxy server is used.
After the on-boarding process is complete, the administrator must
enter values from the Portal for the following properties explained
above:
- ``portalapi.password``
- ``portalapi.username``
- ``ueb_app_key``
Launch Server
^^^^^^^^^^^^^
After creating, populating and mounting Kubernetes config maps
appropriately, launch the server with this command-line invocation to
include the ``config`` directory on the Java classpath::
java -cp config:target/ric-dash-be-1.2.0-SNAPSHOT.jar \
-Dloader.main=org.oransc.ric.portal.dashboard.DashboardApplication \
org.springframework.boot.loader.PropertiesLauncher
Alternately, to use the configuration in the "application-abc.properties" file,
modify the command to have "spring.config.name=name" like this::
java -cp config:target/ric-dash-be-1.2.0-SNAPSHOT.jar \
-Dspring.config.name=application-abc \
-Dloader.main=org.oransc.ric.portal.dashboard.DashboardApplication \
org.springframework.boot.loader.PropertiesLauncher