7.3. Fuse on OpenShift

このセクションでは、OpenShift 上の Fuse アプリケーションのデプロイメントに影響する問題を取り上げます。特定のコンテナーに影響する問題の詳細は、Spring Boot、Fuse on Apache Karaf、および Fuse on JBoss EAP のセクションも参照にしてください。Fuse on OpenShift ディストリビューションの既知の問題を以下に示します。

ENTESB-15642 Candidate permutation failed due to a conflict between imports when migrating from Fuse 7.7 to 7.8 BOM

Fuse 7.8 では、Karaf カスタムディストリビューション (Fuse 7.8 Karaf custom クイックスタートをベースにするなど) を作成し、このカスタムディストリビューションを OpenShift にデプロイすると、javax.xml.bind に関連する OSGi インポートの競合が発生する可能性があります。このインポートの競合は、Karaf システムバンドルが複数バージョンの JAXB API パッケージ (バージョン 2.2 および 2.3) をエクスポートするため発生します。スタンドアロンの Apache Karaf は、適切なバージョン (2.2 および 2.3 の両方) の JAXB パッケージが確実にシステムバンドル (bundle 0) で使用できるようにするため、この影響を受けません。そのため、CXF などの他の機能がインストールされると、それらの機能は独自の JAXB API バンドルをインストールする必要がないため、API の競合を防ぐことができます。

この問題を回避するには、Karaf カスタムディストリビューションの POM に以下の行を追加します。

<library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.3/${version.org.apache.servicemix.specs.jaxb};type:=endorsed;export:=true</library>

上記の例の ${version.org.apache.servicemix.specs.jaxb} を POM ファイルの関連するリテラルバージョンに置き換える必要があります。これは、Maven BOM ファイルで定義されたプロパティーは POM ファイルに引き継ぎされないためです。version.org.apache.servicemix.specs.jaxb プロパティーの関連する値を検出するには、POM の dependencyManagement セクションで参照される fuse-karaf-bom BOM ファイルから検出を開始し、version.org.apache.servicemix.specs.jaxb の定義が含まれるもの見つかるまで、再帰的にインポートされた BOM ファイルのチェーンをたどります。たとえば Fuse 7.8 の場合、version.org.apache.servicemix.specs.jaxb プロパティーの値は https://maven.repository.redhat.com/ga/org/jboss/fuse/jboss-fuse-parent/7.8.0.fuse-780038-redhat-00001/jboss-fuse-parent-7.8.0.fuse-780038-redhat-00001.pom BOM ファイルにあります。

ENTESB-15472 Fuse 7.8 operators not visible in operatorhub when using OCP 4.5
Fuse 7.8 では、Fuse Operator (Fuse Console、Fuse Api Designer、および Fuse Online) は OCP 4.6 を使用する場合のみ OperatorHub で利用できます。OCP 4.5 以前のバージョンでは、Fuse 7.8 Operator を OperatorHub で利用することはできません。Fuse 7.8 の Operator をインストールするには、OpenShift をバージョン OCP 4.6 にアップグレードしてから、Fuse Operator をバージョン 7.8 にアップグレードすることが推奨されます。
ENTESB-15034 Missing labels on Openshift Service Object in FMP quickstart spring-boot-camel-rest-3scale
Fuse 7.8 の spring-boot-camel-rest-3scale クイックスタートには、デプロイされたサービスの 3scale による自動検出を可能にするラベルとアノテーションがありません。この問題を回避するには、3scale『管理ポータルガイド』の「検出可能サービスの条件」にある説明にしたがい、不足しているラベルとアノテーションを手作業でサービスオブジェクト YAML 定義に追加します。
ENTESB-15317 Apicurito generator pods are not ready
Fuse 7.8 では、Apicurito ジェネレーター Pod のヘルスチェックポートが起動しません。この問題を回避するため、ヘルスチェックプローブに通常使用される HTTP ポート 8181 の代わりに、起動する HTTP ポート 8080 を ping するようにヘルスチェックが設定されています。
ENTESB-12238 [SB2] Quickstarts arquillian test fail

Fuse 7.5.0 以降では、Spring Boot 2 クイックスタートの一部 (Maven archetype またはクイックスタートテンプレートから生成された) が OpenShift へのビルドおよびデプロイに失敗します。影響を受ける Spring Boot 2 Maven archetype は次のとおりです。

  • spring-boot-camel-archetype
  • spring-boot-camel-infinspan-archetype
  • spring-boot-cxf-jaxrs-archetype
  • spring-boot-cxf-jaxws-archetype

影響を受ける Spring Boot 2 テンプレートは次のとおりです。

  • spring-boot-2-camel-template
  • spring-boot-2-camel-infinspan-template
  • spring-boot-2-cxf-jaxrs-template
  • spring-boot-2-cxf-jaxws-template

この問題を回避するには、これらのクイックスタートの 1 つに Maven プロジェクトを生成した後に、プロジェクトの Maven pom.xml ファイルを編集し、以下の依存関係を追加します。

<dependency>
  <groupId>org.assertj</groupId>
  <artifactId>assertj-core</artifactId>
  <version>2.4.1</version>
  <scope>test</scope>
</dependency>
ENTESB-10577 Apicurito does not support YAML Open API spec files
Fuse 7.4 on OpenShift 以降では、Apicurito はデフォルトで OpenAPI 仕様ファイルを YAML 形式で生成しますが、生成された YAML ファイルを再インポートできません。現在、JSON 形式のみを Apicurito にインポートできます。