User Interface
Overview
Description: The goal of this component is to serve a user interface for customers to:
- Log in
- Create an order
- List all orders
- List all containers
- Initiate shipping simulation
Github repository: refarch-kc-ui
Kafka topics consumed from: None
Kafka topics produced to: None
Events reacted to: None
Events produced: None
EDA Patterns implemented: None
Build
This microservice is built using the Appsody development framework. The Appsody CLI is a required prerequisite for building the application locally.
Appsody will build the application by pulling the contents of the Appsody Stack it is based on and then performing the local application build inside the containerized environment:
appsody build -t <yournamespace>/kcontainer-spring-container-ms[:tag] [--push]
- You can optionally specify a container tag. If left blank,
latest
will be used. - You can optionally supply the
--push
flag to automatically push the built image to specified remote repository.
Performing an Appsody build will update the app-deploy.yaml
file in the same directory with current information for the application image, labels, and annotations fields.
Run
Deployment parameters
The following deployment parameters are defined in the app-deploy.yaml
file:
Name | Required | Description |
---|---|---|
KAFKA_BROKERS | YES | Comma-separated list of Kafka brokers to connect to |
KAFKA_APIKEY | NO | API Key used to connect to SASL-secured Kafka brokers. This is required when connecting to IBM Event Streams clusters. |
TRUSTSTORE_ENABLED | NO | Required to be set to true when connecting to IBM Event Streams on the IBM Cloud Pak for Integration (CP4I). |
TRUSTSTORE_PATH | NO | The local path to the required truststore file when connecting to IBM Event Streams on CP4I. See Volume Mounts below. |
TRUSTSTORE_PWD | NO | The password for the truststore file used for IBM Event Streams server verification. |
PROBLEM_TOPIC | NO | The topic name used for communication relating to bluewater ship errors. Defaults to bluewater-problem . |
SHIP_TOPIC | NO | The topic name used for communication relating to the bluewater ship entity. Defaults to bluewater-ship . |
FLEETMS_SERVICE_HOST | NO | Hostname of the dependent Fleet microservice. Defaults to simulator . |
FLEETMS_SERVICE_PORT | NO | Port number of the dependent Fleet microservice. Defaults to 9080 . |
ORDERCOMMANDMS_SERVICE_HOST | NO | Hostname of the dependent Order Command microservice. Defaults to ordercmd . |
ORDERCOMMANDMS_SERVICE_PORT | NO | Port number of the dependent Order Command microservice. Defaults to 9080 . |
ORDERQUERYMS_SERVICE_HOST | NO | Hostname of the dependent Order Query microservice. Defaults to orderquery . |
ORDERQUERYMS_SERVICE_PORT | NO | Port number of the dependent Order Query microservice. Defaults to 9080 . |
VOYAGESMS_SERVICE_HOST | NO | Hostname of the dependent Voyages microservice. Defaults to voyages . |
VOYAGESMS_SERVICE_PORT | NO | Port number of the dependent Voyages microservice. Defaults to 3000 . |
CONTAINERMS_SERVICE_HOST | NO | Hostname of the dependent Container Management microservice. Defaults to springcontainerms . |
CONTAINERMS_SERVICE_PORT | NO | Port number of the dependent Container Management microservice. Defaults to 8080 . |
Volume Mounts
The User Interface microservice requires up to one file to be injected at runtime for proper operation. As noted in the TRUSTSTORE_PATH
parameter above, these files are SSL-based certificates which are required to verfiy the identity of the external service when calling it. These files are provided as --docker-options "-v host-src:container-dest ..."
when running the microservice locally and as a Volume Mount when running the microservice on a Kubernetes cluster.
The TRUSTSTORE_PATH
parameter is documented in the Event Streams Certificates section of the Prerequisites page. The Appsody run command should include a parameter similar to -v /Users/myuser/Downloads/es-cert.jks:/config/resources/security/es-ssl/es-cert.jks
in its --docker-options
string to run this microservice locally.
Example: appsody run --docker-options "-v /Users/myuser/Downloads/es-cert.jks:/config/resources/security/es-ssl/es-cert.jks " ...
Running the microservice locally
When running the microservice locally, you must specify all the required deployment parameters from above as environment variables via the --docker-options
flag being passed in from the Appsody CLI command.
Example: appsody run --docker-options "-e KAFKA_BROKERS=remotebroker1:9092,remotebroker2:9092 -e PROBLEM_TOPIC=bluewater-problem -e SHIP_TOPIC=bluewater-ships -v /Users/myuser/Downloads/es-cert.jks:/config/resources/security/es-ssl/es-cert.jks" ...
For more details on running the microservice locally, consult the Appsody run documentation as well as the deployment information contained in the app-deploy.yaml
file.
Running the microservice remotely
The Appsody Operator is a required prerequisite for deploying the microservice to a remote Kubernetes or OpenShift cluster.
To deploy the microservice to a remote cluster:
appsody deploy <yournamespace>/kcontainer-ui[:tag] --no-build
- You can omit the
--no-build
flag to have Appsody perform a build before deploying the application. - Note: Performing a build at deploy time requires specifying the absolute container reference path, as well as the
--push
flag. - The neccesary deployment parameter information will be read from the
app-deploy.yaml
file in the same directory.