Chapter 8. Running a SpringBoot business application on Red Hat OpenShift Container Platform
Chapter 8. Running a SpringBoot business application on Red Hat OpenShift Container Platform To run your Red Hat Process Automation Manager SpringBoot business application on Red Hat OpenShift Container Platform, create an immutable image and push this image to your Red Hat OpenShift Container Platform environment. Optionally, you can also use Business Central Monitoring to monitor the execution of business processes in your application. Prerequisites You have developed a Red Hat Process Automation Manager SpringBoot business application. For instructions about creating the application, see Section 3.1, "Creating a Spring Boot business application from Maven archetypes" . If necessary, you have configured Spring security for the application. For instructions about configuring Spring security, see Chapter 4, Spring Security with Red Hat Process Automation Manager . You have completed any necessary additional Spring configuration for the business application. For instructions about Spring configuration for your business application, see Chapter 5, Red Hat Process Automation Manager Spring Boot configuration . You created a single JAR file for the business application. For instructions about creating a single JAR file for your SpringBoot business application, see Chapter 6, Creating a self-contained Red Hat Process Automation Manager Spring Boot JAR file . You are logged on to your Red Hat OpenShift Container Platform environment using the oc command and the required project is active. If you want to use Business Central Monitoring, you have installed Business Central Monitoring using the operator. Use the same namespace to deploy Business Central Monitoring and your business application. Important You must configure Business Central Monitoring to use the controller startup strategy. To enable the controller strategy on Business Central Monitoring, in the Console tab of the operator configuration, add a KIE_SERVER_CONTROLLER_OPENSHIFT_ENABLED environment variable and set it to false . Procedure Outside the business application project directories, create an ocp-image directory with the following subdirectories: Copy the single JAR file for your business application into the root/opt/spring-service subdirectory. For example: In the ocp-image directory, create a Dockerfile file with the following content: Replace <FILENAME>.jar with the name of the single JAR file for your business application. Alternatively, if you want to configure communication with Business Central Monitoring, use the following content for Dockerfile : Replace <FILENAME>.jar with the name of the single JAR file for your business application. To build the initial image and deploy it in your Red Hat OpenShift Container Platform environment, complete the following steps: To build the image, run the following commands in the ocp-image directory: Optional: replace openshift-kie-springboot with a custom application name in these commands and all subsequent commands. To deploy the image in the Red Hat OpenShift Container Platform environment, run the following command: Alternatively, to deploy the image and configure it to communicate with Business Central Monitoring, run the following command: In this command, replace the following values: <LOCATION> with the fully qualified host name for accessing your service. Business Central Monitoring accesses the service to retrieve process information and displays a URL for the service with this host name <PORT> with the port for accessing your service, for example, 8090 <BC-HOSTNAME> with the host name for accessing the Business Central Monitoring instance. If your application is deployed in the same project/namespace as the Business Central Monitoring instance, use the service name for Business Central Monitoring, for example, myapp-rhpamcentrmon . Otherwise, you can use use the fully qualified host name of a route for the Business Central Monitoring instance. <BC-PORT> with the port of the Business Central Monitoring instance, for example, 8080 <USER> with the username of a user configured on the Business Central Monitoring instance <PASSWORD> with the password of the user configured on the Business Central Monitoring instance Note This configuration uses unsecured HTTP communication for your service. If you configure your Spring Boot business application with a valid SSL certificate, you can replace http: with https: to use secure HTTPS communication. For more information about configuring SSL on Spring Boot, see Spring Boot documentation . Note If you want to view process information from Business Central Monitoring, you must ensure that the user that is logged into Business Central Monitoring can also be authenticated with your service using the same password. Optional: To expose the route for the image, run the following command: If you already built and deployed the image and need to update it, for example if you built the JAR file for a new version of Red Hat Process Automation Manager or of Spring Boot, run the following command in the ocp-image directory:
ocp-image |--/root |--/opt |-- /spring-service cd ../business-application-service cp target/business-application-service-1.0-SNAPSHOT.jar ../ocp-image/root/opt/spring-service/ FROM registry.access.redhat.com/ubi8/openjdk-11:latest COPY root / EXPOSE 8090 WORKDIR /opt/spring-service/ CMD ["sh","-c", "java USD{JAVA_OPTIONS} -Dorg.kie.server.mode=PRODUCTION -jar /opt/spring-service/<FILENAME>.jar"] FROM registry.access.redhat.com/ubi8/openjdk-11:latest COPY root / EXPOSE 8090 WORKDIR /opt/spring-service/ CMD ["sh","-c", "java USD{JAVA_OPTIONS} -Dorg.kie.server.location=USD{KIESERVER_LOCATION} -Dorg.kie.server.controller=USD{KIESERVER_CONTROLLERS} -Dorg.kie.server.controller.user=USD{KIE_SERVER_CONTROLLER_USER} -Dorg.kie.server.controller.pwd=USD{KIE_SERVER_CONTROLLER_PWD} -Dorg.kie.server.mode=PRODUCTION -jar /opt/spring-service/<FILENAME>.jar"] new-build --binary --strategy=docker --name openshift-kie-springboot start-build openshift-kie-springboot --from-dir=. --follow new-app openshift-kie-springboot new-app openshift-kie-springboot -e KIESERVER_LOCATION=http://<LOCATION>:<PORT>/rest/server -e KIESERVER_CONTROLLERS=ws://<BC-HOSTNAME>:<BC-PORT>/websocket/controller -e KIE_SERVER_CONTROLLER_USER=USER -e KIE_SERVER_CONTROLLER_PWD=PASSWORD expose service/openshift-kie-springboot --port=8090 start-build openshift-kie-springboot --from-dir=. --follow