Chapter 3. Features
3.1. New and Changed features
3.1.1. Deploying example applications on OpenShift provisioned on IBM Power Systems infrastructure
To deploy the example applications on OpenShift environments provisioned on IBM Power Systems infrastructure, specify the relevant IBM Power Systems image name in the pom.xml
file and commands.
Some of the example applications also require other products, such as Red Hat Data Grid to demonstrate the workflows. In this case, you must also change the image names of these products to their relevant IBM Power Systems image names in the YAML file of the example applications.
3.1.2. New Spring Boot OAuth2 Client and Resource Server Starters
A tested and verified build of OAuth2 Spring Security Starters replaces the Spring Boot Keycloak Starter included with previous Spring Boot releases. The set of new Starters introduced in this release includes the Spring Security OAuth2 Client Starter and the Spring Security OAuth2 Resource Server Starter. Both of the new Starters are supported by Red Hat.
3.1.3. Support for OpenJDK 8 and OpenJDK 11 RHEL 8 Universal Base Images (UBI8)
Spring Boot 2.3 introduces support for building and deploying Spring Boot applications to OpenShift with OCI-compliant Universal Base Images for Red Hat OpenJDK 8 and Red Hat OpenJDK 11 on RHEL 8. The RHEL 8 OpenJDK Universal Base Images replace the RHEL 8 OpenJDK builder images supported by Red Hat for use with earlier releases of Red Hat Build of Spring Boot. The previously supported RHEL 8 OpenJDK base images are no longer supported for use with Red Hat Build of Spring Boot.
3.1.4. Dekorate version upgraded to 2.4.1
In Spring Boot 2.3, the version of Dekorate included with the Spring Boot BOM is upgraded to 2.4.1.
- New features in Dekorate 2.4.1
Configurable logging threshold
You can control how verbose the Dekorate output is by setting the log-level threshold, using the
io.dekorate.log.level
system property-drawer. The following values are supported:-
OFF
-
ERROR
-
WARN
-
INFO
(default) -
DEBUG
-
Configurable
vcs
propertiesIn Dekorate 1.x, the
vcs
labels that were added to the generated manifests contained the propertyremote
hard-coded asorigin
and URL converted to thehttp
protocol.In Dekorate 2.4.1, the property
remote
is configurable and the URL is not converted to HTTP unless explicitly specified. You can configure these programmatically usingio.dekorate.option.annotation.VcsOptions
as follows:public @interface VcsOptions { /** * The remote to use. * * @return the name of the remote, defaults to 'origin'. */ String remote() default "origin"; /** * Flag that specifies that https is preferred. * When use vcs url that use 'git+ssh' will be converted to https. * * @return true, if https is prefered. */ boolean httpsPreferred() default false; }
You can also configure the property as follows:
dekorate.option.vcs.remote=<your remote here> dekorate.option.vcs.https-preferred=true
Changes to port mapping
The earlier versions of Dekorate did not allow port mapping on Service resources, except
Ingress
andRoute
resources. Because of this, the internal consumers of the Service had to know the exactcontainerPort
an application used. Dekorate 2.4.1 provides port mapping to allow loose-coupling for HTTP and HTTPS.http
services are now mapped to port80
andhttps
services to port443
. Port mapping is done using the following criteria:-
Ports named
http
,web
andhttp1
are mapped to port80
. -
Ports named
https
orh2c
are mapped to port443
. -
Ports numbered
8080
are mapped to port80
. -
Ports numbered
8443
are mapped to port443
.
-
Ports named
- Changes to annotation naming in Dekorate 2.4.1
The following table lists the changes in annotation names:
Dekorate 1.x Dekorate 2.4.1 DockerBuild
EnableDockerBuild
S2iBuild
EnableS2iBuild
JibBuild
EnableJibBuild
- Modules removed in Dekorate 2.4.1
The following modules have been removed from Dekorate in version 2.4.1:
- service-catalog
- halkyon
- application-crd
CRD generator
This functionality has been moved to the
fabric8 kubernetes-client
.dependencies uberjar
The earlier versions of Dekorate provided shadowed uberjar with all dependencies. From Dekorate 2.4.1 onward, the shadowed uberjar containing all dependencies is no longer available.
If you use the libraries
io.dekorate.deps.xxx
, you must update these to the original packages.
3.1.5. Spring Boot metering labels for OpenShift
You can add metering labels to your Spring Boot pods and check Red Hat subscription details with the OpenShift Metering Operator.
Do not add metering labels to any pods that an operator deploys and manages.
Spring Boot should use the following metering labels:
-
com.redhat.component-name: "Spring_Boot"
-
com.redhat.component-type: application
-
com.redhat.component-version: 2.3.10
-
com.redhat.product-name: "Red_Hat_Runtimes"
-
com.redhat.product-version: 2021-Q3
See Metering documentation for more information.
For more information on labels, see Understanding how to update labels on nodes.
3.1.6. Support for Spring Boot Runtime on IBM Power Systems
The Red Hat support for Spring Boot for ppc64le platform is supported only in OpenShift environments provisioned on IBM Power Systems infrastructure. Running an Spring Boot application on a stand-alone installation of RHEL on IBM Power Systems is not supported.
OpenJ9 Java images for IBM Power Systems and new images for products supported on IBM Power Systems are available in the Red Hat Container Catalog.
3.2. Deprecated features
No features or functionalities are marked as deprecated in this release.
3.3. Technology Preview
3.3.1. Dekorate build hooks for deploying Spring Boot applications to OpenShift Container Platform
You can use Dekorate to configure a Source-to-image build of your application that starts automatically after you compile your application with Maven. This functionality is provided as Technology Preview in Dekorate version 1.0.0 and later. Red Hat does not provide support for using this functionality in a production environment.