Chapter 1. Introduction
1.1. What is Red Hat JBoss Enterprise Application Platform (JBoss EAP)?
Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) is a middleware platform built on open standards and compliant with the Java Enterprise Edition 7 specification. It provides preconfigured options for features such as high-availability clustering, messaging, and distributed caching. It includes a modular structure that allows you to enable services only when required, which results in improved startup speed.
The web-based management console and management command line interface (CLI) make editing XML configuration files unnecessary and add the ability to script and automate tasks. In addition, JBoss EAP includes APIs and development frameworks that allow you to quickly develop, deploy, and run secure and scalable Jakarta EE applications. JBoss EAP 7 is a Jakarta EE 8 compatible implementation for both Web Profile and Full Platform specifications and also a certified implementation of the Java EE 8 Full Platform and Web Profile specifications.
1.2. How Does JBoss EAP Work on OpenShift?
Red Hat offers a containerized image for JBoss EAP that is designed for use with OpenShift. Using this image, developers can quickly and easily build, scale, and test applications that are deployed across hybrid environments.
1.3. Comparison: JBoss EAP and JBoss EAP for OpenShift
There are some notable differences when comparing the JBoss EAP product with the JBoss EAP for OpenShift image. The following table describes these differences and notes which features are included or supported in the current version of JBoss EAP for OpenShift.
Table 1.1. Differences between JBoss EAP and JBoss EAP for OpenShift
|JBoss EAP Feature||Status in JBoss EAP for OpenShift||Description|
JBoss EAP management console
The JBoss EAP management console is not included in this release of JBoss EAP for OpenShift.
JBoss EAP management CLI
The JBoss EAP management CLI is not recommended for use with JBoss EAP running in a containerized environment. Any configuration changes made using the management CLI in a running container will be lost when the container restarts. The management CLI is accessible from within a pod for troubleshooting purposes.
Although a JBoss EAP managed domain is not supported, creation and distribution of applications are managed in the containers on OpenShift.
Default root page
The default root page is disabled, but you can deploy your own application to the root context as
Red Hat AMQ for inter-pod and remote messaging is supported. ActiveMQ Artemis is only supported for messaging within a single pod with JBoss EAP instances, and is only enabled when Red Hat AMQ is absent.
There are some unsupported transaction recovery scenarios and caveats when undertaking transaction recovery with the JBoss EAP for OpenShift image.
The EAP operator is the only tested and supported option of transaction recovery in OpenShift 4. For more information about recovering transactions using the EAP operator, see EAP Operator for Safe Transaction Recovery.
Embedded messaging broker
The use of an embedded messaging broker in OpenShift containers is deprecated. Support for an embedded broker will be removed in a future release.
If a container is configured to use an embedded messaging broker, and if no remote broker is configured, a warning is logged.
If the container configuration does not include messaging destinations, set the
1.4. Version Compatibility and Support
JBoss EAP for OpenShift provides images for JDK 8, JDK 11, and Eclipse OpenJ9.
Two variants of each image are available: an S2I builder image and a runtime image. The S2I builder image contains a complete JBoss EAP server with tooling needed during S2I build. The runtime image contains dependencies needed to run JBoss EAP but does not contain a server. The server is installed in the runtime image during a chained build.
The following modifications have been applied to images in JBoss EAP for OpenShift 7.3.
- Default drivers and modules have been removed.
- Templates for MySQL and PostgreSQL have been removed. You can provision these capabilities with a custom layer.
- The Hawkular agent is not active in these images. If configured, it is ignored.
The default datasource,
ExampleDS, is no longer added by default at container startup. If you need the default datasource, use the environment variable
ENABLE_GENERATE_DEFAULT_DATASOURCEwith a value of
ENABLE_GENERATE_DEFAULT_DATASOURCE=true) to include it.
The following discovery mechanism protocols are deprecated and have been replaced by other protocols:
openshift.DNS_PINGprotocol was deprecated and is replaced with the
dns.DNS_PINGprotocol. If you referenced the
openshift.DNS_PINGprotocol in a
customized standalone-openshift.xmlfile, replace the protocol with the
openshift.KUBE_PINGdiscovery mechanism protocol was deprecated and is replaced with the
JDK 8 Images
- Red Hat Universal Base Image: 7
- Prefix for template names: eap73-*
- Builder Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openjdk8-openshift-rhel7
- Runtime Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openjdk8-runtime-openshift-rhel7
A JDK 8 image for JBoss EAP is not provided for IBM Z and IBM Power Systems.
JDK 11 Images
- Red Hat Universal Base Image: 8
- Prefix for template names: eap73-openjdk11-*
- Builder Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openjdk11-openshift-rhel8
- Runtime Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openjdk11-runtime-openshift-rhel8
Eclipse OpenJ9 Images
- Red Hat Universal Base Image: 8
- Prefix for template names: eap73-*
- Builder Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openj9-11-openshift-rhel8
- Runtime Image: https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap73-openj9-11-runtime-openshift-rhel8
JBoss EAP for OpenShift is updated frequently. Therefore, it is important to understand which versions of the images are compatible with which versions of OpenShift. See OpenShift and Atomic Platform Tested Integrations on the Red Hat Customer Portal for more information on version compatibility and support.
1.4.1. OpenShift 4.x Support
Changes in OpenShift 4.1 affect access to Jolokia, and the Open Java Console is no longer available in the OpenShift 4.x web console.
In previous releases of OpenShift, certain kube-apiserver proxied requests were authenticated and passed through to the cluster. This behavior is now considered insecure, and so, accessing Jolokia in this manner is no longer supported.
Due to changes in codebase for the OpenShift console, the link to the Open Java Console is no longer available.
1.4.2. IBM Z and IBM Power Systems Support
The s390x and ppc64le variant of
libartemis-native is not included in the image. Thus, any settings related to AIO will not be taken into account.
journal-type: Setting the
ASYNCIOhas no effect. The value of this attribute defaults to
journal-max-io: This attribute has no effect.
journal-store-enable-async-io: This attribute has no effect.
1.4.3. Upgrades from JBoss EAP 7.1 to JBoss EAP 7.3 on OpenShift
standalone-openshift.xml installed with JBoss EAP 7.1 on OpenShift is not compatible with JBoss EAP 7.3 and later. You must modify a
standalone-openshift.xml file installed with JBoss EAP 7.1 before you use it to start a JBoss EAP 7.3 or later container for OpenShift.
1.5. Technology Preview Features
Automated Transaction Recovery
This feature is provided as Technology Preview only. It is not supported for use in a production environment, and it might be subject to significant future changes. See Technology Preview Features Support Scope on the Red Hat Customer Portal for information about the support scope for Technology Preview features.
When a cluster is scaled down, it is possible for transaction branches to be in doubt. The JBoss EAP for OpenShift image has an automated transaction recovery feature that can complete these branches. At the moment, this implementation of automated transaction recovery is provided as technology preview only.
eap73-tx-recovery-s2i application template that is provided to demonstrate automatic transaction recovery on scale down of application pods is also provided only as a technology preview. For JDK 11 imagestreams, the application template is
1.6. Deployment Options
You can deploy the JBoss EAP Java applications on OpenShift using one of the following options:
- A JBoss EAP for OpenShift template. For more information, see Build and Run a Java Application on the JBoss EAP CD for OpenShift Image.
- The EAP operator, a JBoss EAP-specific controller that extends the OpenShift API to create, configure, and manage instances of complex stateful applications on behalf of an OpenShift user. For more information, see EAP Operator for Automating Application Deployment on OpenShift.
The EAP operator is supported only on OpenShift 4 and later versions.