Fuse Integration Services 2.0 for OpenShift Release Notes

Updated -

Release Notes

Patch Releases

For information about recent patches to Fuse Integration Services for JBoss Fuse 6.3, see the FIS Patch Release Notes.

What's New

The following features are new in Fuse Integration Services 2.0:

S2I binary workflow
This release introduces the S2I binary workflow, which simplifies the workflow for developers building projects on their local machine.

Spring Boot
This release now supports Spring Boot, providing an image that runs a Spring Boot container.
New Spring Boot based quickstarts and templates are also provided, which enable you to get started with building and deploying applications to the Spring Boot container.

Deprecated and Removed Features

The following features have been deprecated or removed from the Fuse Integration Services (FIS) 2.0 release:

  • The FIS 1.0 Fabric8 Maven workflow using docker builds outside OpenShift is deprecated in FIS 2.0. The supported workflows for building and deploying FIS 2.0 applications are the S2I source workflow and the S2I binary workflow. The FIS 2.0 version of the Fabric8 Maven plug-in now uses OpenShift S2I binary builds by default.
  • Support for the packaging and deployment of applications using the Hawt App launcher and Camel CDI has been removed in this release.
    The recommended approach in FIS 2.0 is to use the Spring Boot launcher and Camel Spring Boot.
    We recommend that you migrate any legacy Hawt App based applications to use Spring Boot instead.
  • The fabric8-annotations and fabric8-spring-boot components have both been removed from FIS 2.0 and are not supported in this release. Many of the features from these plug-ins are now available from the camel-spring-boot-starter component and the spring-cloud-kubernetes component. For injecting Kubernetes services into Spring Boot applications, it is recommended that you use DNS in Kubernetes.
  • Fabric version 1.x components are not supported in FIS 2.0.

Known Issues

The following issues are known to affect Fuse Integration Services 2.0:

CDK-11 SSHFS mount fails on Windows when user has space in their name —
The Container Development Kit (CDK) 2.3 cannot be used directly on a Windows O/S when a user has a space in their username.

OSFUSE-427 Scaling down or updating a FIS provided sample provides a warning (exit code 143) —
When scaling pods down on a Linux O/S, you are liable to see a warning message with exit code 143. This is a known issue with Java on Linux and the warning can safely be ignored.

OSFUSE-484 Arquilian tests are not well configured to run as Unit tests —
The integration tests that come with the FIS 2.0 quickstarts require you to have an OpenShift environment already running against which to execute. The Arquillian plug-in used is a remote Arquillian adapter (as opposed to managed or embedded) that does not managed the lifecycle of the target test platform (OpenShift).

OSFUSE-463 "Failed to send ping" errors with openshift client watch on a far away openshift cluster —
Sometimes, when deploying an application with the fabric8-maven-plugin to a remote OpenShift cluster, you might encounter the following error:

[ERROR] Exec Failure
java.net.SocketTimeoutException: timeout
    at okio.Okio$3.newTimeoutException(Okio.java:210)
    at okio.AsyncTimeout.exit(AsyncTimeout.java:288)

This error indicates a timeout has occurred, due to high latency. Usually, this is not a serious problem and the build on OpenShift can be successful, in spite of this error.

OSFUSE-288 Can't add hawtio to Karaf quickstarts —
If you want to add the hawtio (Management Console) feature to a Karaf project, you must also add the management feature, because it is a required dependency for HawtIO.

OSFUSE-558 [maven-repo] Missing org.apache.tomcat.embed:tomcat-embed-jasper:jar:8.0.36.redhat-14 —
The version of Red Hat JBoss Web Services (based on Apache Tomcat) embedded for use with Spring Boot is an Early Access (EA) release. A patch for FIS 2.0 will be released in early 2017 which contains the productized version of JBoss Web Services.

OSFUSE-560 editing karaf camel route XML via hawtio console creates a broken XML with xmlns:xmlns —
Editing an XML formatted Camel route using the HawtIO console can produce XML with an invalid xmlns:xmlns attribute. If the Camel route contains an XML namespace aware element, such as xpath, this breaks the Camel route.

OSFUSE-517 templates descriptions does not mention pre-requisites —
Some quickstart templates do not work without certain prerequisites and this is not made clear in the template descriptions. We recommend that you consult the more detailed README files from the corresponding Maven archetypes to find out how to use the templates.

OSFUSE-554 Java console is not accessible for FIS quickstart —
The Jolokia console does a reverse DNS lookup for the requesting peer which, in the case of OpenShift console, is the OpenShift proxy (usually the master node). For Jolokia to work, the master node hostsubnet IP address must be resolvable from the pods.

OSFUSE-398 Spring Boot does not implement graceful shutdown for the embedded Web servers. Client requests may contain unexpected response codes (for example, 404) during deployment scale downs.

OSFUSE-307 Tune SB memory better so it works well in large core count nodes —
The Java runtime does not respect the container's memory limits and this can be a problem, because OpenShift will kill a container that tries to allocate memory over the container limit. This problem can be mitigated by customizing the ratio of available memory for Java heap space using the JAVA_MAX_MEM_RATIO option. By default, FIS images are configured to allocate half the available memory for Java heap space, but the ideal ratio is application-specific.

OSFUSE-211 Make Kubernetes client and DSL public APIs for users —
Due to the rapid evolution of the Kubernetes API, there is no backward compatibility for the OpenShift client. If you upgrade to a later version of the OpenShift server, you must also upgrade your OpenShift client (oc) to maintain compatibility.

API Changes

Note the following API changes in this release:

  • Although the Kubernetes client API and Domain Specific Language (DSL) is supported for use in application code, it is currently evolving at a rapid rate and is therefore liable to introduce code-breaking changes between minor releases.

Supported Camel Versions

In this release, the supported version of Apache Camel depends on which container image you are using, as follows:

  • Spring Boot container image — Camel 2.18.1
  • Karaf container image — Camel 2.17 (same version as JBoss Fuse 6.3)

NOTE: Only the productized distributions of Camel 2.18.1 and Camel 2.17 are supported.
For the exact version numbers (which have a build number embedded in them), see the dependencies declared in the pom.xml files of the FIS 2.0 quickstarts and archetypes.

Spring Boot Support

Fuse Integration Services v2.0 is reliant on the Spring Boot Community version and as a such, Red Hat's support for Spring Boot is limited to its intended use as documented in the quickstarts and templates. We will offer a commercially reasonable effort to support Spring Boot, however, we may not be able to provide or influence timely patches.

Some Spring Boot modules are dependencies for Red Hat components. If you are using a Red Hat stack, including JBoss middleware and OpenShift, with Spring Boot then you need to be aware that Red Hat components use the following Spring Boot starter dependencies:

  • spring-boot-starter
  • spring-boot-starter-actuator
  • spring-boot-starter-jdbc
  • spring-boot-starter-test
  • spring-boot-starter-web

The Tomcat server embedded in Spring Boot is using an Early Access version of the Red Hat Distribution of JWS 3.1. JWS 3.1 is targeted for release in early 2017 and, as soon as it is released, a patch will be issued to update the FIS product accordingly. As this will be a Red Hat distribution, it will then be possible to offer full support including patches on the GA version of the embedded Tomcat server.

Camel Components not Supported with Spring Boot

In general, Fuse Integration Services supports the same subset of Apache Camel components as the main JBoss Fuse product.
In the context of Spring Boot applications, however, note that the following Camel components are not supported:

  • camel-blueprint (intended for OSGi only)
  • camel-box (because of OSFUSE-543 )
  • camel-cdi (intended for CDI only)
  • camel-core-osgi (intended for OSGi only)
  • camel-ejb (intended for JEE only)
  • camel-eventadmin (intended for OSGi only)
  • camel-ibatis (camel-mybatis-starter is supported)
  • camel-jclouds (because of JCLOUDS-1166 and JCLOUDS-1160 )
  • camel-mina (camel-mina2-starter is supported)
  • camel-paxlogging (intended for OSGi only)
  • camel-quartz (camel-quartz2-starter is supported)
  • camel-spark-rest
  • camel-swagger (camel-swagger-java-starter is supported)