diff options
author | liamfallon <liam.fallon@est.tech> | 2022-11-09 17:41:41 +0000 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2022-11-09 18:02:25 +0000 |
commit | b71482aae05f1a68cde23c72aa67e2b0c97a3d40 (patch) | |
tree | 7d65da94b8db00a4096456d49f6e75be76ecd2ba /docs/ui/runtime-ui/gui-server.rst | |
parent | 457d1d40a54adc30b3afdb7245a7d53828f6239c (diff) |
Document Policy GUI and gui-server
Issue-ID: POLICY-4138
Change-Id: If7eccc6057ce54609ab6ad07dd3a9bd129caa93a
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'docs/ui/runtime-ui/gui-server.rst')
-rw-r--r-- | docs/ui/runtime-ui/gui-server.rst | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/docs/ui/runtime-ui/gui-server.rst b/docs/ui/runtime-ui/gui-server.rst new file mode 100644 index 00000000..ffb0f9f9 --- /dev/null +++ b/docs/ui/runtime-ui/gui-server.rst @@ -0,0 +1,143 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. + +.. _gui-server-label: + +The Policy Framework GUI Server +############################### + +The **gui-server** microservice serves the GUI code to the browser for Policy Framework UI. In addition, it acts as +a single point of reference for the REST interfaces provided by **policy-api**, **policy-pap**, and **acm-runtime**. +It can also be used as a HTTPS gatewy for REST references into a Policy Framework deployment in a Kubernetes cluster. + +.. contents:: + :depth: 2 + +The **gui-server** is a regular microservice, and it is packaged, delivered and configured as a docker image. It is +a Spring application and therefore uses a normal Spring-style *applciation.yaml* approach to configuration. + +Definitive example configurations are available in the codebase: + +- `application_http.yaml <https://github.com/onap/policy-gui/blob/master/gui-server/src/test/resources/application_http.yaml>`_ + showing how to configure gui-server for HTTP access +- `application_https.yaml <https://github.com/onap/policy-gui/blob/master/gui-server/src/test/resources/application_https.yaml>`_ + showing how to configure gui-server for HTTPS access + +The configuration parameters are explained in the sections below + +Server Configuration +-------------------- + +Configuration for HTTP access to gui-server:: + + server: + port: 2443 + ssl: + enabled: false + +Start gui-server on port 2443 and disable SSL. + +Configuration for HTTPS access to gui-server:: + + server: + port: 2443 + ssl: + enabled: true + enabled-protocols: TLSv1.2 + client-auth: want + key-store: file:./src/test/resources/helloworld-keystore.jks + key-store-password: changeit + trust-store: file:./src/test/resources/helloworld-truststore.jks + trust-store-password: changeit + +Start gui-server on port 2443 and enable SSL with the parameters specified above + +Note that other standard Spring **server** configuraiton parameters as +documented +`on the Spring website <https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html>`_ +are supported. + +Runtime Adaptation Configuration +-------------------------------- + +You can configure the adaptation for **policy-api**, **policy-pap**, and **runtime-acm**. In other words, you can map +the URL that the GUI produced or that you want to use in a REST tool such as *postman* or *curl* in the **runtime-ui** +part of the aaplication.yaml file:: + + runtime-ui: + policy-api: + mapping-path: "/runtime-ui/policy-api/restservices/" + url: http://localhost:30440 + disable-ssl-validation: true + disable-ssl-hostname-check: true + policy-pap: + mapping-path: "/runtime-ui/policy-pap/restservices/" + url: http://localhost:30442 + disable-ssl-validation: true + disable-ssl-hostname-check: true + acm: + mapping-path: "/runtime-ui/acm/restservices/" + url: http://localhost:30258 + disable-ssl-validation: true + disable-ssl-hostname-check: true + +The parameters under the **policy-api**, **policy-pap**, and **acm** sections are identical. + +mapping-path and url +++++++++++++++++++++ + +The **mapping-path** is the root part of the path that will be replaced by the **url**, the **url** replaces the +**mapping-path**. + +Therefore, using the configuration above for policy-api, the following mapping occurs:: + + http://localhost:2443/runtime-ui/policy-api/restservices/policy/api/v1/healthcheck + + maps to + + http://localhost:30440/policy/api/v1/healthcheck + +and:: + + https://localhost:2443/runtime-ui/acm/restservices/onap/policy/clamp/acm/v2/commission + + maps to + + http://localhost:30258/onap/policy/clamp/acm/v2/commission + +disable-ssl-validation and disable-ssl-hostname-check ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +The **disable-ssl-validation** **disable-ssl-hostname-check** are boolean values. If the target server (policy-api, +policy-pap, or runtime-acm) is using http, these values should be set to **false**. If the target server is using +HTTPS, set the values as **true** so that the **gui-server** transfers and forwards certificates to target servers. + +Spring Boot Acuator Monitoring +------------------------------ + +The **gui-server** supports regular +`Spring Boot Actuator monitoring <https://docs.spring.io/spring-boot/docs/1.4.0.M2/reference/html/production-ready-monitoring.html>`_ +and monitoring over `prometheus <https://prometheus.io/>`_. + +The following section of the *application.yaml** file is an example of how to enable monitoring:: + + management: + endpoints: + web: + base-path: / + exposure: + include: health,metrics,prometheus + path-mapping.metrics: plain-metrics + path-mapping.prometheus: metrics + +The configuration above enables the following URLs:: + + # Health Check + http://localhost:2443/health + + # Plain Metrics + http://localhost:2443/plain-metrics + + # Prometheus Metrics + http://localhost:2443/metrics + + |