Menu Close
Settings Close

Language and Page Formatting Options

OpenShift Container Platform での Fuse Online のインストールと操作

Red Hat Fuse 7.10

Fuse Online のインストール、設定、アップグレード、および CI/CD パイプラインのインテグレーションのインポートやエクスポート

概要

オンサイト、クラウド、またはハイブリッドクラウドのお客様が管理する環境にて、OpenShift Container Platform で Fuse Online をインストール、管理、および操作する情報および手順。

前書き

Fuse Online をオンサイトで OpenShift Container Platform (OCP) にインストールし、操作することができます。Fuse Online がオンサイトで稼働している場合、Fuse Online が OpenShift Dedicated で稼働しているときに提供される機能以外に追加機能を使用できます。

オンサイトという用語はお客様が管理する環境を意味します。Red Hat は OpenShift 環境を管理しません。お客様が管理する環境には、オンプレミス、クラウド、またはハイブリッドクラウドがあります。

詳細は以下のトピックを参照してください。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、CTO である Chris Wright のメッセージ をご覧ください。

第1章 OCP 4.x での Fuse Online のインストール

Fuse Online は、コアインテグレーション機能をサービスとして提供する、柔軟かつカスタマイズ可能なオープンソースプラットフォームです。

Fuse Online の各インストールは、Fuse Online インスタンス (または環境) と呼ばれます。OpenShift プロジェクトには、必ず 1 つの Fuse Online インスタンスがあります。各 Fuse Online インスタンスには独自の URL があります。単一の OpenShift クラスターに、複数の Fuse Online インスタンスが存在することがあります。

OperatorHub から Operator をインストールする適切なパーミッションを持つ場合、Fuse Online を OpenShift 開発者ユーザーとしてインストールできます。デフォルトの Fuse Online インスタンスまたはカスタマイズされた Fuse Online インスタンスをインストールできます。カスタマイズされた Fuse Online インスタンスの場合、デフォルトのカスタムリソースを編集する必要があります。

重要

Fuse Online インストールプロセスでは、コンテナーイメージの Red Hat Ecosystem Catalog である registry.redhat.io にアクセスする必要があります。

Fuse Online のインストールに関する詳細は、以下を参照してください。

1.1. OCP 4.x に Fuse Online をインストールするのに必要な手順の概要

OCP 4.x に Fuse Online をインストールするための主なステップは次のとおりです。

  1. Red Hat コンテナーイメージへの認証を設定する OpenShift シークレットを生成します。
  2. OperatorHub からクラスターのプロジェクト (namespace) に Fuse Online Operator をインストールします。
  3. 任意で、コネクションおよびインテグレーションの定義を永続化するために外部データベースを含める場合は、OpenShift シークレットを作成します。
  4. Fuse Online インスタンスを OpenShift 4.x プロジェクトに追加します。

    任意で、カスタムリソースを編集して、1 つ以上のアドオン機能を有効にしたり、1 つ以上のカスタム設定を実装したりします。

  5. 任意で、Fuse Online の Web コンソールにアクセスできるように、他の開発者ユーザーにパーミッションを付与します。

1.1.1. 制限された環境での Fuse Online のインストールに関する考慮事項 (OCP 4.6 以降)

制限された環境で Fuse Online をインストールする前に、以下のタスクを実行する必要があります。

前提条件

  • 制限された環境での OpenShift クラスターでの cluster admin アクセス権限がある。

手順

  • プライベートネットワークで利用可能な場所に、すべての Fuse Online イメージをミラーリングします。制限された環境での OpenShift Operator のイメージのインストールに関する詳細は、OpenShift ドキュメントの「ネットワークが制限された環境での Operator Lifecycle Manager の使用」セクションを参照してください。
  • Fuse リポジトリーの内容でカスタム Maven リポジトリーを設定します。詳細は、「 How to create an offline Maven repository for Fuse 7 」を参照してください。
  • Fuse Online をインストールする前に、Fuse Online カスタムリソースを編集します。maven:mirror 設定を使用して、インテグレーションをビルドするときに Maven アーティファクトにアクセスするのは指定された単一の Maven リポジトリーのみを確認するよう Fuse Online に指示します。

    以下の例では、https://customRepo をオフラインリポジトリーの URL に置き換えます。

    components:
      server:
        features:
          maven:
            mirror: https://customRepo
  • HTTPS_PROXYHTTP_PROXY、および NO_PROXY 環境変数を syndesis-oauthproxy に設定します。これらの環境値は、Fuse Online のインストール時またはインストール後に設定できます。

    Fuse Online のインストール後に syndesis/app に環境値を設定するには、以下を行います。

    1. 以下のコマンドを使用して、プロキシー/クラスターから値を取得します。

      myhttpProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpProxy}')
      
      myhttpsProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpsProxy}')
      
      mynoProxy=$(oc get proxy/cluster -ojsonpath='{.status.noProxy}')
    2. 以下の oc patch コマンドを使用して値を設定します。

      oc patch syndesis/app --type=merge -p "{\"spec\": {\"components\": {\"oauth\": {\"environment\": {\"HTTPS_PROXY\": \""${myhttpsProxy}"\", \"HTTP_PROXY\": \"${myhttpProxy}\", \"NO_PROXY\": \"${mynoProxy}\"}}}}}"

      このコマンドにより、以下の確認が返されます。

      syndesis.syndesis.io/app patched

      syndesis-oauthproxy デプロイメントを変更した場合、OpenShift は syndesis-oauthproxy-1-deploy Pod を再作成します。

  • デフォルトでは、todo サンプルアプリケーションは無効です(Fuse Online カスタムリソースでは、addon:todo:enabled 値は falseに設定されます)。任意で、制限された環境で Fuse Online をインストールした後に、https://github.com/syndesisio/todo-example から Todo サンプルアプリケーションをダウンロードし、Readme ファイルの手順に従い、リポジトリー URL をプライベートネットワークで利用可能な場所に変更します。

1.2. Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合

Fuse Online のインストールには、設定可能な Fuse Online 環境アドオン機能およびパラメーター設定のデフォルトを指定するデフォルトカスタムリソースが含まれています。

インストール後の Fuse Online 環境が以下に該当する場合は、Fuse Online をインストールする前に、デフォルトのカスタムリソースを編集する必要があります。

  • Fuse Online コンソールにアクセスできる OpenShift ルートのために指定する URL を使用する場合。デフォルトでは、インストールプロセスによってこのルートが算出されます。
  • 外部データベースを使用して、コネクションおよびインテグレーション定義を保存する場合。デフォルトでは、内部データベースが使用されます。
  • コネクションやインテグレーション定義の永続化に使用できる内部ストレージの容量を増やす場合。ほとんどの Fuse Online 環境では、デフォルトの 1Gi で十分対応できます。

上記のいずれかが該当する場合に Fuse Online 環境を設定するには、Fuse Online のインストール時にカスタムリソースを編集する必要があります。つまり、インストール後に Fuse Online 環境の設定を変更して、上記を実装することはできません。また、上記の設定を適用して Fuse Online 環境をインストールした場合、その設定を変更することはできません。

1.3. Fuse Online の設定に使用するカスタムリソース属性の説明

インストール前のみに指定できるカスタムリソース属性の他に、インストール前または後に変更できるカスタムリソース属性が複数あります。

表 1 には、設定可能なカスタムリソース設定の簡単な説明が記載されています。また、インストールの前または後、あるいは両方で変更可能であるかどうかを示しています。適切に Fuse Online を設定するには、以下の表の情報を活用して、インストール前にカスタムリソースをどのように変更する必要があるのか、またはインストール後にカスタムリソースをどのように変更するのかを見極める必要があります。その後、該当する手順にしたがいます。

OCP 4.x の場合:

OCP 3.11 の場合:

表1.1 設定可能なカスタムリソース設定

機能/設定設定可能なタイミング指定内容

強化されたアクティビティー追跡

強化されたアクティビティー追跡の追加情報はこの表の後に記載されています。

インストール前のみ設定

addons:
  jaeger:
    enabled: true
    clientOnly: false
    operatorOnly: false

強化されたアクティビティー追跡はデフォルトで有効になっています。Jaeger 設定をカスタマイズする場合は、clientOnly または operatorOnlytrue に設定します。

外部データベース

外部データベースの使用に関する追加情報はこの表の後に記載されています。

インストール前のみ設定

spec:
  components:
    database:
      externalDbURL: postgresql://custom-postgres:5432
      user: db-user-name
      name: db-name


custom-postgres:5432 を PostgreSQL データベースのホスト名およびポートに置き換えます。
db-user-name をそのデータベースにアクセス可能なユーザーアカウントの名前に置き換えます。
db-name をデータベースの名前に置き換えます。

コネクションおよびインテグレーションの 内部ストレージ容量

外部データベースも指定する場合は無視されます。

内部ストレージの増加に関する追加情報はこの表の後に記載されています。

インストール前のみ設定

spec:
  components:
    database:
      resources:
        volumeCapacity: 1Gi
        volumeName: my-volume


1Gi を必要なストレージ容量に置き換えます。デフォルトは 1Gi です。

my-volume を内部ストレージに使用するボリュームの名前に置き換えます。このパラメーターは任意です。

Fuse Online コンソールにアクセスするための OpenShift ルート

インストール前のみ設定

spec:
  routeHostname: project.route.com


project.route.com を Fuse Online コンソールにアクセスできる OpenShift ルートに置き換えます。
例: north-project.6a63.fuse-online.openshiftapps.com

Memory および CPU

1 つ以上のコンポーネントが使用できるデフォルトのメモリー容量を増やします。

各コンポーネントによって独自のメモリー要件が定義されるため、各 Pod には割り当てられるメモリー容量の制限があります。制限および要求設定の詳細は、OpenShift ドキュメントの「Configuring cluster memory to meet container memory and risk requirements」セクションを参照してください。

server コンポーネントの CPU リソースを指定することもできます。

database コンポーネントはコネクションおよびインテグレーションの定義を格納する内部データベースです。

meta コンポーネントはサーバーがロードするコネクターなどのビジネスロジックを提供します。

prometheus コンポーネントは、Fuse Online インフラストラクチャーコンポーネントおよび Fuse Online インテグレーションを監視します。

インストール前のみ設定

components:
  server:
    resources:
      limit:
        memory: "1024Mi"
        cpu: "800m"
      request:
        memory: "512Mi"
        cpu: "500m"
  meta:
    resources:
      limit:
        memory: "750Mi"
      request:
        memory: "300Mi"
  database:
    resources:
      limit:
        memory: "300Mi"
      request:
        memory: "300Mi"
  prometheus:
    resources:
      limit:
        memory: "750Mi"
      request:
        memory: "750Mi"

3scale の検出

Red Hat 3scale による検出を可能にするため、Fuse Online API プロバイダーインテグレーションの API を公開します。

詳細は、「 3scale で API の検出を有効化する Fuse Online の設定 」を参照してください。

インストール前または後に設定

components:
    server:
      features:
        managementUrlFor3scale: https://url-for-3scale


3scale ユーザーインターフェースの URL を指定します。

バックアップ

追加の設定手順は、「 Fuse Online 環境のバックアップ」を 参照してください。

インストール前または後に設定

spec:
  backup:
    schedule: interval


interval を希望するバックアップの間隔に置き換えます。間隔 および 事前定義のスケジュール には cron ユーティリティーの形式を使用します。間隔の前に @ 記号を指定しないでください。

ノードのアフィニティー許容 (Toleration)

Fuse Online インフラストラクチャーコンポーネントおよびインテグレーション Pod のクラスター内のノードへの配置を決定します。

ノードのアフィニティーを使用すると、配置先のノードのグループに対して Fuse Online Pod のアフィニティーを指定できます。

許容 (Toleration) を使用すると、Fuse Online Pod が実行されるノードを制御し、他のワークロードがそれらのノードを使用しないようにすることができます。

Fuse Online Pod の設定」も参照してください。

インストール前または後に設定

注記: Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を使用します。Fuse Online インテグレーションのデプロイメントでは、infraSchedulingintegrationScheduling に置き換えます。

spec:
infraScheduling:
tolerations:
key: value
operator: value
effect
: value

spec:
infraScheduling:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
weight:
preference:
matchExpressions:
key: value
operator: value
values:
value1,
value2

インテグレーションの制限

稼働中のインテグレーションの最大数を指定します。デフォルトは 0 で、稼働中のインテグレーションの数を制限しません。

インストール前または後に設定

components:
    server:
      features:
        integrationLimit: 0

データベースコネクションプール

サーバーコネクションプール設定を調整して、データベースへのコネクションを管理できます。

データベースプール設定の追加情報は、この表の後に記載されています。

インストール前または後に設定

components:
  server:
    connectionPool:
      connectionTimeout: 30000
      idleTimeout: 600000
      leakDetectionThreshold: 0
      maxLifetime: 1800000
      maximumPoolSize: 10
      minimumIdle: 10

Java オプション

syndesis-server コンポーネントおよび syndesis-meta コンポーネントの Java オプションを指定できます。

Java オプションに応じて、コンポーネントに異なる値を指定できます。たとえば、JVM 関連のパラメーターは syndesis-meta よりも多くのコンピューターリソースを必要とするため、syndesis-server のみに設定できます。

インストール前または後に設定

components:+   server:
    javaOptions:
      -option_name=my_value   meta:
    javaOptions:
      -option_name=my_value

-option_name を Java オプション名に置き換えます。Java オプションの接頭辞 (-D-X、または -XX) を指定することができます。

my_value を、オプションの値に置き換えます。

HTTP プロキシーを設定する場合 (例): components:+   server:
    javaOptions:
      -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800   meta:
    javaOptions:
      -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800`

Maven 引数

Fuse Online インテグレーションをビルドするときに使用する追加の Maven オプションを指定します。

インストール前または後に設定

components:
server:
features:
maven:
additionalArguments:
"typeA=stringA typeB=stringB"


例:
additionalArguments:
"-Dhttp.proxy=my_proxy -DpropA=valueA"

Maven Mirror

インテグレーションの構築時に Fuse Online が Maven アーティファクトにアクセスする単一リポジトリーを指定します。デフォルトでは Fuse Online がアクセスする Maven リポジトリーを無視します。このオプションは、通常 Fuse Online を制限された環境でインストールする場合に使用されます。

インストール前または後に設定

components:
server:
features:
maven:
mirror: https://customRepo

'https://customRepo をリポジトリーの URL に置き換え
ます。

Maven リポジトリー

Fuse Online がデフォルトでアクセスする Maven リポジトリーの他に、Fuse Online 環境がアクセスする必要のある外部 Maven リポジトリーを指定します。

インストール前または後に設定

components:
    server:
      features:
        mavenRepositories:
          customRepo1: https://customRepo1
          customRepo2: https://customRepo2


Replace customRepo をリポジトリーの名前に置き換えます。
各リポジトリーに URL を指定します。



監視については、「 Monitoring Fuse Online integrations on OCP with Prometheus 」を参照してください。

インストール前または後に設定

addons:
  ops:
    enabled: true

パブリック REST API

追加の設定ステップは「 外部ツールによって使用される Fuse Online パブリック REST API の公開 」を参照してください。

インストール前または後に設定

addons:
  publicApi:
    enabled: true
    routeHostname: public-syndesis.192.168.64.63.nip.io


routeHostname を Fuse Online REST API エンドポイントを呼び出すためのパブリックアドレスに設定します。クラスターのセットアップにより、指定する必要のあるパブリックアドレスが決定されます。この例では、ルートのホスト名は minishift クラスターに対して有効です。

Todo アドオン
は、テスト目的でサンプルアプリケーション、PostgreSQL データベースのサンプルおよびサンプルデータベースコネクターを
提供します。

インストール前または後に設定

spec:
addons:
todo:
enabled: false

制限された環境で Fuse Online をインストールする場合は、インストール前に todo アドオンが false (デフォルト)に設定されていることを確認する必要があります。Fuse Online のインストール後に、任意で https://github.com/syndesisio/todo-example から ToDo アプリケーションをダウンロードできます。Readme ファイルの手順に従い、リポジトリー URL をプライベートネットワークで利用可能な場所に変更します。

Adding sample data to a Fuse Online environment running on OCP」も参照してください。

監査

コネクター、コネクション、およびインテグレーションに対して行った基本変更を表示用。

Auditing Fuse Online components」も参照してください。

注記: これは テクノロジープレビューの機能です。

インストール前または後に設定

components:
  server:
    features:
      auditing: true

アドオン機能と設定

  • 強化されたアクティビティー追跡

    Fuse Online のインストール時に、Jaeger を使用したアクティビティー追跡はデフォルトで有効になっています。(OperatorHub またはコマンドラインスクリプトを使用して) Fuse Online をインストールする場合、OperatorHub の存在を検出し、OperatorHub のサブスクリプション機能を使用して Jaeger をインストールします。OperatorHub が利用できないという制限された状況では、Fuse Online は独自のインストール機能を使用して Jaeger をインストールします。任意で、「Jaeger 監視用の Fuse Online の設定」のセクションで説明されているように、Fuse Online をインストールする前に Jaeger 設定をカスタマイズできます。

  • コネクションおよびインテグレーションを永続化するための外部データベース

    Fuse Online のデフォルトインストールは、コネクションおよびインテグレーション定義を永続化するために Fuse Online によって使用される内部 PostgreSQL データベースを提供します。OpenShift がデフォルトで提供する PostgreSQL テンプレートの 1 つなど、外部の PostgreSQL データベースの使用を選択することができます。

  • 内部ストレージ容量

    ほとんどの Fuse Online 環境では、デフォルトの 1Gi で十分対応できます。Red Hat テクニカルサポートが推奨する場合のみ、新しい Fuse Online インストールのこの設定を増強することが想定されます。これは、稼働している別の Fuse Online 環境で Fuse Online のサーバーエラーが発生し、Red Hat テクニカルサポートが、デフォルトよりも容量が大きいデータベースボリュームで Fuse Online 環境をインストールする必要があると判断した場合です。

    Fuse Online がすでに稼働している OpenShift プロジェクトで Fuse Online の内部ストレージ容量を増やすには、最初に Fuse Online をアンインストールする必要があります。「OCP プロジェクトからの Fuse Online のアンインストール」を参照してください。

  • データベースコネクションプールの設定

    以下の syndesis-server データベース接続プールプロパティーを設定できます。

    • connectionTimeout - syndesis-server がプールからのコネクションを待機する最大時間 (ミリ秒単位)。許可される最小コネクションタイムアウトは 250 ミリ秒です。デフォルトは 30000 (30 秒) です。
    • idleTimeout - コネクションが削除されるまで、プールでアイドル状態にすることができる最大時間 (ミリ秒単位)。0 の値は、アイドルコネクションがプールから削除されないことを意味します。許可される最小値は 10000 (10 秒) です。デフォルトは 600000 (10 分) です。
    • leakDetectionThreshold - コネクションリークの可能性を示すメッセージがログに記録される前に、コネクションがプール外にある時間 (ミリ秒単位)。0 を値として指定すると、リーク検出が無効になります。リーク検出の有効化で許容される最小値は 2000 (2 秒) です。デフォルトは 0 です。
    • maxLifetime - プール内のコネクションの最大有効期間 (ミリ秒単位)。許可される最小値は 30000 (30 秒) です。デフォルトは 1800000 (30 分) です。
    • maximumPoolSize - アイドルコネクションと使用中のコネクションの両方を含む、プールが到達できる最大サイズ。デフォルトは 10 です。
    • minimumIdle - プールに保持されるアイドルコネクションの最小数。デフォルト値は maximumPoolSize です。

1.4. Jaeger 監視用の Fuse Online の設定

Jaeger は、分散サービス間のトランザクションをトレースするためのオープンソースソフトウェアです。これは、複雑なマイクロサービス環境の監視およびトラブルシューティングで特に役立ちます。

OperatorHub またはコマンドラインスクリプトを使用して Fuse Online をインストールする場合、Fuse Online インストールは OperatorHub の存在を検出し、OperatorHub のサブスクリプション機能を使用して Jaeger をインストールします。OperatorHub が利用できないという制限された状況では、Fuse Online は独自のインストール機能を使用して Jaeger をインストールします。

デフォルトの Fuse Online 環境では、必要な Jaeger コンポーネントがすべて設定されます。任意で、Fuse Online カスタムリソースを編集して、クライアントのみ/非依存のサーバー設定、またはハイブリッド Jaeger クライアントおよび Jaeger Operator 設定を指定できます。

デフォルトの Jaeger 設定

基本的な追加設定なしの設定には、すべての Jaeger コンポーネントが含まれます。Jaeger の監視機能を試して、Jaeger の動作について学ぶことができます。デフォルト設定では、メモリーのみの制限されたバックエンドストレージ機能を提供します。

デフォルトの Jaeger 設定で Fuse Online をインストールすると、以下のような結果になります。

  • Fuse Online コンポーネントには Jaeger 通信 URL があります。
  • Jaeger Operator がインストールされます。
  • Jaeger カスタムリソースは、アクティビティー監視のデフォルト設定で設定されます。

デフォルトの Jaeger 設定を使用した Fuse Online インストールには、以下の syndesis カスタムリソース仕様があります。

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true

clientOnly および operatorOnly が指定されていない場合 (デフォルトで false に設定されている場合)、Fuse Online は提供される Jaeger バックエンドだけでなく、Jaeger サーバー設定によって提供されるデフォルトのメモリーのみのストレージも使用します。

クライアントのみ/非依存のサーバー設定

クライアントのみ/非依存のサーバー設定では、Fuse Online と外部に設定された Jaeger バックエンドとの間の通信用にクライアント URL コネクションのみが設定されます。Jaeger バックエンドのすべての要素は外部にあり、Fuse Online 環境および syndesis-operator には依存しません。これには、Jaeger Operator および Jaeger カスタムリソースが含まれます。

クライアントのみの Jaeger 設定をインストールするには、以下のように Fuse Online をインストールする前にカスタムリソースを編集します。

以下に例を示します。

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true
      clientOnly: true
      queryUri: https://jaeger-query-hostname:443/api
      collectorUri: https://jaeger-collector-hostname:14268/api/traces

ハイブリッド Jaeger クライアントおよび Operator の設定

ハイブリッド Jaeger クライアントおよび Jaeger Operator 設定では、Fuse Online は Jaeger Operator と Jaeger クライアント機能をインストールします。Jaeger カスタムリソースがインストールされていない。Jaeger サーバー設定を定義する独自の Jaeger カスタムリソースをインストールする必要があります。これにより、Fuse Online が提供する機能を利用し、独自の環境用に Jaeger 設定をカスタマイズすることができます。たとえば、データストレージに Elasticsearch または Cassandra を使用できます。

ハイブリッド Jaeger クライアントと Jaeger Operator 設定をインストールするには、以下を行います。

  • Fuse Onlineをインストールする前に、以下の例のようにカスタムリソースを編集します。

    apiVersion: syndesis.io/v1beta2
    kind: Syndesis
    metadata:
      name: app
    spec:
      addons:
        jaeger:
          enabled: true
          operatorOnly: true
  • 以下の例のように、Jaeger カスタムリソース syndesis-jaeger に名前を付けます。

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: syndesis-jaeger
      ...
    spec:
       ....

    注記: Jaeger カスタムリソースに別の名前を使用する場合は、Client-only/independent サーバー設定セクションに記述されているように、Syndesis カスタムリソースで queryUri および collectorUri を設定します。

syndesis-jaeger という名前の Jaeger カスタムリソースが作成されると、Jaeger インスタンスは Fuse Online インテグレーションからデータを収集します。デフォルトでは、Fuse Online のアクティビティーログでこのデータを表示できます。

1.5. 外部データベースを使用する Fuse Online のインストール

外部データベースを使用してコネクションおよびインテグレーションの定義を永続化する Fuse Online 環境をインストールする場合は、以下を行います。

  • OpenShift クラスターが検索できるホスト名を使用して postgreSQL データベースを作成します。
  • Fuse Online をインストールする前に、外部データベース用に syndesis-global-config という名前の OpenShift シークレットを作成します。
  • Fuse Online をインストールします。
  • Fuse Online をデプロイする前に、カスタムリソースを編集して、外部データベースへのコネクションを設定します。

前提条件

  • OCP 3.11 の場合のみ、コネクションおよびインテグレーションの定義を永続化するために外部データベースを使用ことを指定するために default-cr.yml ファイルが編集されている必要があります。
  • Fuse Online がインストールされていない必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer
  2. Fuse Online をインストールする OpenShift クラスターで利用できる postgreSQL データベースを作成し、以下の設定オプションの値を定義します。

    • コネクションユーザー名
    • データベース名
    • データベースパスワード

      以下の例では、OpenShift がデフォルトで提供する PostgreSQL テンプレートの 1 つを使用します。

      注記: 開発またはテスト目的には PostgreSQL 一時 (postgresql-ephemeral) テンプレートのみを使用します。実稼働環境の場合は、PostgreSQL (postgresql) テンプレートを使用します。

      oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb

      このコマンドは、URL などの Fuse Online の設定時に必要なデータベースに関する情報を返します。

      データベースの作成に関する詳細は、OpenShift ドキュメントの PostgreSQL トピック を参照してください。

  3. 以下の内容を含むリソースファイル (例: my-fuse-online-secret-cr.yml) を作成して、保存します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-global-config
      namespace: my-fuse-online-project
    type: Opaque
    stringData:
      POSTGRESQL_PASSWORD: exdb-pw

    my-fuse-online-project を、外部データベーであるスを指定する Fuse Online 環境をインストールする予定である OpenShift プロジェクトの名前に置き換えます。

    exdb-pw を手順 2 のパスワードに置き換えます。Fuse Online は、これを外部データベースにアクセスするためのパスワードとして使用します。stringData は、パスワードの値を base64 でエンコードされた値(変換を行わないように)に変換することに注意してください。

    OpenShift シークレットについての詳細は「シークレット」を参照してください。

  4. 以下のように、シークレットをクラスターに追加します。

    oc apply -f my-fuse-online-secret-cr.yml

    OpenShift クラスターでは、外部データベースを指定するカスタムリソースとインストールされた Fuse Online 環境で syndesis-global-config シークレットを利用できます。

  5. シークレット (ステップ 4) の YAML ファイルで指定した my-fuse-online-project プロジェクトに Fuse Online をインストールします。

結果

Fuse Online のインストールプロセスでは、カスタムリソースの設定を使用して、インストールされた Fuse Online 環境の設定を決定します。

正しくインストールおよびデプロイされると、Fuse Online は syndesis-db 以外の必要な Pod をすべて稼働します。syndesis-db の代わりに、syndesis-server は外部データベースのサービス名を使用してデータベースに接続します。外部データベースの設定が正しくない場合、syndesis-server は初期化に失敗し、Fuse Online デプロイメントはエラーを出して終了します。

1.6. Fuse Online のインストール

Fuse Online は、コアインテグレーション機能をサービスとして提供する、柔軟かつカスタマイズ可能なオープンソースプラットフォームです。OperatorHub から Operator をインストールする適切なパーミッションを持つ場合、Fuse Online を OpenShift 開発者ユーザーとしてインストールできます。

以下は、Operator を使用して Fuse Online をインストールする一般的な手順です。

  1. OpenShift プロジェクト (namespace) にシークレットを作成し、Fuse Online Operator が必要なインストールテンプレートにアクセスできるように、registry.redhat.io との認証を設定します。
  2. Fuse Online Operator を OpenShift プロジェクト (namespace) にインストールします。Operator はインストール後に、選択された namespace で実行されます。
  3. インストールされた Operator から Fuse Online のインスタンスを作成します。デフォルト設定でインスタンスを作成するか、インスタンスのカスタムリソースを編集してインスタンスをカスタマイズすることができます。続いて、提供された URL から Fuse Online にアクセスできます。

Operator を使用して OCP 4.x に Fuse Online をインストールする方法の詳細は、以下を参照してください。

1.6.1. コンテナーイメージの registry.redhat.io を使用した認証

Fuse コンテナーイメージを OpenShift にデプロイする前に、registry.redhat.io で認証を設定します。

前提条件

  • OpenShift Container Platform クラスターへアクセスできるクラスター管理者権限。
  • OpenShift oc クライアントツールがインストール済みであること。詳細は、OpenShift CLI のドキュメント を参照してください。

手順

  1. 管理者として OpenShift クラスターにログインします。

    oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
  2. Fuse をデプロイするプロジェクトを開きます。

    oc project myproject
  3. Red Hat カスタマーポータルアカウントを使用して docker-registry シークレットを作成します。PULL_SECRET_NAME は作成するシークレットに置き換えます。

    oc create secret docker-registry PULL_SECRET_NAME \
      --docker-server=registry.redhat.io \
      --docker-username=CUSTOMER_PORTAL_USERNAME \
      --docker-password=CUSTOMER_PORTAL_PASSWORD \
      --docker-email=EMAIL_ADDRESS

    以下の出力が表示されるはずです。

    secret/PULL_SECRET_NAME created
    重要

    この docker-registry シークレットを、registry.redhat.io に対して認証されるすべての OpenShift プロジェクト namespace に作成する必要があります。

  4. シークレットをサービスアカウントにリンクして、シークレットをイメージをプルするために使用します。以下は、default サービスアカウントを使用する例になります。

    oc secrets link default PULL_SECRET_NAME --for=pull

    サービスアカウント名は、OpenShift Pod が使用する名前と一致する必要があります。

  5. シークレットを builder サービスアカウントにリンクし、ビルドイメージをプッシュおよびプルするためにシークレットを使用します。

    oc secrets link builder PULL_SECRET_NAME --for=pull,mount
    注記

    Red Hat のユーザー名とパスワードを使用してプルシークレットを作成したくない場合は、レジストリーサービスアカウントを使用して認証トークンを作成できます。

その他のリソース

コンテナーイメージに対する Red Hat の認証に関する詳細は、以下を参照してください。

1.6.2. OperatorHub からの Fuse Online Operator のインストール

OpenShift Container Platform Web コンソールを使用して、OperatorHub から Fuse Online Operator をインストールできます。Fuse Online をインストールする各 OpenShift プロジェクト (namespace) について、以下の手順を実行します。

前提条件

  • OpenShift クラスターの管理者権限または開発者権限を持っている必要があります。開発者ユーザーの場合、Operator を OperatorHub からインストールするための適切なパーミッションがある。
  • Authenticating with registry.redhat.io for container images」で説明されているように、registry.redhat.io との認証を設定している。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。

手順

  1. Web ブラウザーで OpenShift コンソールに移動し、管理者または開発者のクレデンシャルを使用してコンソールにログインします。
  2. 管理者としてログインしている場合には、Operators をクリックした後、OperatorHub をクリックします。

    開発者としてログインしている場合は、Add をクリックしてから From Catalog カードをクリックします。
  3. Filter by keyword フィールドに Fuse Online を入力します。
  4. Red Hat Integration - Fuse Online カードをクリックします。Fuse Online Operator のインストールページが開きます。
  5. Install をクリックします。Install Operator ページが開きます。

    1. 更新チャンネル は Operator の更新ストリームを定義し、サブスクライバーの更新をロールアウトするために使用されます。デフォルトチャンネル 7.n を受け入れます。n は現在の Fuse Online リリース番号に置き換えます。
    2. Installation mode では、クラスターの namespace のリストから namespace (プロジェクト) を 1 つ選択します。「Authenticating with registry.redhat.io for container images」で docker レジストリーシークレットを作成したときに使用したのと同じ namespace を選択します。
    3. Update Approval では、Automatic または Manual を選択し、Fuse Online Operator の更新が OpenShift によってどのように対処されるかを設定します。

      • Automatic (自動) 更新を選択した場合、新しいバージョンの Fuse Online Operator が使用できるようになると、人的な介入なしで OpenShfit Operator Lifecycle Manager (OLM) によって、Fuse Online の稼働中のインスタンスが自動的にアップグレードされます。
      • Manual (手動) 更新を選択した場合、Operator の新しいバージョンが使用できるようになると、OLM によって更新リクエストが作成されます。クラスター管理者は、更新リクエストを手動で承認して、Fuse Online Operator を新しいバージョンに更新する必要があります。
  6. Install をクリックし、Fuse Online Operator を指定の namespace (プロジェクト) で利用可能にします。
  7. Fuse Online がプロジェクトにインストールされていることを確認するには、Operators をクリックした後、Installed Operators をクリックして Red Hat Integration - Fuse Online がリストに表示されることを確認します。
  8. ターミナルウィンドウで、次のコマンドを入力して、(「Authenticating with registry.redhat.io for container images」で作成した) シークレットを Fuse Online Operator サービスアカウントにリンクします。

    oc secrets link syndesis-operator PULL_SECRET_NAME --for=pull

次のステップ

Fuse Online Operator のインストール後に、Fuse Online のインスタンスを OpenShift プロジェクトに追加します。

1.6.3. Fuse Online インスタンスの OpenShift 4.x プロジェクトへの追加

Fuse Online Operator を OpenShift 4.x プロジェクトにインストールした後に、Fuse Online のインスタンスを OpenShift プロジェクトに追加します。Fuse Online インスタンスは、開発者が Fuse Online にアクセスするために使用する URL を提供します。

前提条件

  • Fuse Online Operator は現在の OpenShift プロジェクトにインストールされます。
  • OCP 環境では、Fuse Online が使用できる永続ボリュームが少なくとも 3 つ必要です。すべての永続ボリュームには、以下の設定要件が必要です。

    • capacity.storage: 1Gi
    • accessMode: ReadWriteOnce
  • デフォルトの Fuse Online インスタンスまたはカスタマイズされたインスタンスのどちらをインストールするかを決定します。指定できるカスタムリソース設定の詳細は、「インストール前にデフォルトのカスタムリソースを編集する必要がある場合」を参照してください。

手順

  1. ユーザーロールに応じて Create Syndesis ページにアクセスするには、以下の手順に従います。

    • 管理者としてログインしている場合は、以下を実行します。

      1. Operators をクリックした後、Installed Operators をクリックします。
      2. Name 列で、Red Hat Integration - Fuse Online をクリックします。Operator Details ページが開きます。
      3. Provided APIsCreate Instance をクリックします。
    • 開発者としてログインしている場合は、以下を実行します。

      1. Add をクリックしてから Operator Backed カードをクリックします。
      2. Syndesis CRD カードをクリックします。Syndesis CRD ページが開きます。
      3. Create をクリックします。

        Create Syndesis ページが開きます。
  2. 名前を入力するか、または app をデフォルトのままにします。
  3. YAML view オプションを選択して、デフォルトのカスタムリソースを表示します。
  4. 任意手順:カスタムリソースを編集します。

    指定できるカスタムリソース設定の詳細は、「インストール前にデフォルトのカスタムリソースを編集する必要がある場合」および「Fuse Online の設定に使用するカスタムリソース属性の説明」を参照してください。

    Fuse Online のインストールプロセスでは、カスタムリソースで指定した設定を使用して、インストールされた Fuse Online 環境の設定を決定します。

  5. Create をクリックして Fuse Online インスタンスを作成します。OpenShift は、Fuse Online の Pod、サービス、およびその他のコンポーネントを起動します。
  6. Fuse Online の URL を取得するには、以下を行います。

    1. Networking > Routes をクリックします。
    2. 正しいプロジェクトが選択されていることを確認してください。
    3. syndesis 行の Location 列で、Fuse Online の URL をクリックします。
    4. OpenShift ログインクレデンシャルを使用して、Fuse Online 環境にログインします。
  7. 他の開発者ユーザーに Fuse Online の Web コンソールへのアクセスを許可するには、管理者は以下のコマンドを使用して、各開発者ユーザーに Fuse Online がインストールされているプロジェクトの view ロールを付与する必要があります。

    oc adm policy add-role-to-user view <username> -n <project-name>

    たとえば、myfuseonline プロジェクトの view パーミッションをユーザー jdoe に付与するには、以下を実行します。

    oc adm policy add-role-to-user view jdoe -n myfuseonline

第2章 OCP 3.11 での Fuse Online のインストール

OCP 3.11 に Fuse Online をインストールするには、クラスター管理者が Fuse Online のカスタムリソース定義を登録して、適切なユーザーにインストール権限を付与する必要があります。Fuse Online をインストールするユーザーは、デフォルトの Fuse Online 環境またはカスタマイズされた Fuse Online 環境のどちらをインストールするかを決定する必要があります。Fuse Online カスタマイズ環境を使用する場合には、デフォルトのカスタムリソースファイルを編集する必要があります。

Fuse Online の各インストールは Fuse Online 環境と呼ばれます。OpenShift プロジェクトには、必ず 1 つの Fuse Online 環境があります。各 Fuse Online 環境には独自の URL があります。単一の OpenShift クラスターに、複数の Fuse Online 環境が存在することがあります。

重要

Fuse Online インストールプロセスでは、コンテナーイメージの Red Hat Ecosystem Catalog である registry.redhat.io にアクセスする必要があります。Fuse Online は、外部コンテナーレジストリー、カスタムレジストリー、または非接続環境でのレジストリーの使用をサポートせず、テストもしません。

Fuse Online のインストールに関する詳細は、以下を参照してください。

2.1. OCP 3.11 に Fuse Online をインストールするために必要な手順の概要

オンサイトで OCP に Fuse Online をインストールするには、クラスター管理者がタスクを実行してから、特定の OpenShift プロジェクトで Fuse Online のインストール権限があるユーザーがタスクを実行して、インストールスクリプトを実行します。以下の図では、ワークフローを紹介します。

OCP での Fuse Online のインストールこのイメージの後に記載されている概要を参照してください。

OCP 3.11 に Fuse Online をインストールするためのワークフローイメージ (概要)

Fuse Online を OCP にインストールする場合の主な手順は次のとおりです。

  1. クラスター管理者権限を持つユーザーが、以下を実行します。

    1. インストールスクリプトと関連ファイルをダウンロードします。
    2. OpenShift oc クライアントツールコマンドを使用して、クラスターレベルでカスタムリソース定義(CRD)を登録します。
    3. OpenShift oc クライアントツールコマンドを使用して、1 つ以上のユーザーにプロジェクトで Fuse Online をインストールする権限を付与します。
  2. Fuse Online をインストールする権限が付与されたユーザーは、Fuse Online をインストールする各 OpenShift プロジェクトに対して以下を行います。

    1. デフォルトの Fuse Online 環境またはカスタマイズされた Fuse Online 環境をインストールするかどうかを決定します。カスタマイズされた Fuse Online 環境では、1 つ以上のアドオン機能を有効にすることができ、1 つ以上のカスタム設定を実装できます。
    2. インストールスクリプトと関連ファイルをダウンロードします。
    3. 任意手順:カスタマイズされた Fuse Online 環境が必要な場合は、Fuse Online ダウンロードパッケージで提供される default-cr.yml ファイルを編集します。
    4. 任意手順:コネクションおよびインテグレーション定義を永続化するための外部データベースが必要な場合は、OpenShift シークレットを作成します。
    5. インストールスクリプトを実行します。
    6. Fuse Online が稼働中であることを確認します。

クラスター管理者は、Fuse Online のインストール先の OpenShift プロジェクトごとに、特定のプロジェクトで Fuse Online をインストールする権限をユーザーに割り当てる必要があります。

デフォルトの Fuse Online 環境をインストールするには、Fuse Online のインストール権限のあるユーザーがインストールスクリプトをダウンロードして実行します。上記以外の手順を実行する必要はありません。

2.2. Fuse Online リソースをデプロイするためのカスタムリソース定義の登録

Fuse Online のインストールを可能にするため、クラスター管理者はカスタムリソース定義を登録します。管理者は、OpenShift クラスターに対して 1 度だけこれを実行する必要があります。その後、管理者は Fuse Online を該当のプロジェクトにインストールする権限をユーザーに付与します。これは、Fuse Online をインストールする各プロジェクトに対して行います。

前提条件

  • クラスターの管理者権限を持っている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。
  • OCP 環境では、Fuse Online が使用できる永続ボリュームが少なくとも 3 つ必要です。すべての永続ボリュームには、以下の設定要件が必要です。

    • capacity.storage: 1Gi
    • accessMode: ReadWriteOnce

手順

  1. 以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。

    https://github.com/syndesisio/fuse-online-install/releases/tag/1.13

  2. ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。fuse-online-install-1.13 ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。
  3. クラスター管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u admin -p adminpwd

  4. 以下のコマンドを実行して、このクラスターにすでに登録されているカスタムリソース定義を一覧表示し、適切に接続されたことを確認します。

    oc get crd

    エラーメッセージが表示されなければ、正しく接続されています。

  5. fuse-online-install-1.13 ディレクトリーに移動して以下のコマンドを実行し、クラスターレベルでカスタムリソース定義を登録します。

    bash install_ocp.sh --setup

  6. 以下のコマンドを再度実行して、登録が成功したことを確認します。

    oc get crd

    登録したカスタムリソース定義の出力一覧には、syndesis が含まれているはずです。

  7. Fuse Online をインストールする各プロジェクトで、ユーザーにインストールできる権限を付与します。各プロジェクトに対して以下を行います。

    1. ユーザーが Fuse Online をインストールするプロジェクトに切り替えます。以下に例を示します。

      oc project fuse-online-project

    2. そのプロジェクトに Fuse Online をインストールする権限をユーザーに付与します。たとえば、以下のコマンドは、developer ユーザーに Fuse Online のインストール権限を付与します。このコマンドの実行後、developer ユーザーは現在のプロジェクト fuse-online-project に Fuse Online をインストールできます。

      bash install_ocp.sh --grant developer

      Fuse Online のインストール権限を割り当てる OpenShift プロジェクトごとに、上記の 2 つのコマンドを繰り返します。ユーザーは、クラスターの複数のプロジェクトに Fuse Online をインストールできます。これを有効にするには、別のプロジェクトに切り替え、以下のように同じユーザーを指定します。

      oc project another-fuse-online-project
      bash install_ocp.sh --grant developer

結果

syndesis カスタムリソース定義がクラスターに登録されます。

次のステップ

Fuse Online をインストールする権限があるユーザーは、デフォルトの Fuse Online 環境またはカスタマイズされた Fuse Online 環境のどちらをインストールするかを決定する必要があります。

2.3. Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合

Fuse Online のインストールには、設定可能な Fuse Online 環境アドオン機能およびパラメーター設定のデフォルトを指定するデフォルトカスタムリソースが含まれています。

インストール後の Fuse Online 環境が以下に該当する場合は、Fuse Online をインストールする前に、デフォルトのカスタムリソースを編集する必要があります。

  • Fuse Online コンソールにアクセスできる OpenShift ルートのために指定する URL を使用する場合。デフォルトでは、インストールプロセスによってこのルートが算出されます。
  • 外部データベースを使用して、コネクションおよびインテグレーション定義を保存する場合。デフォルトでは、内部データベースが使用されます。
  • コネクションやインテグレーション定義の永続化に使用できる内部ストレージの容量を増やす場合。ほとんどの Fuse Online 環境では、デフォルトの 1Gi で十分対応できます。

上記のいずれかが該当する場合に Fuse Online 環境を設定するには、Fuse Online のインストール時にカスタムリソースを編集する必要があります。つまり、インストール後に Fuse Online 環境の設定を変更して、上記を実装することはできません。また、上記の設定を適用して Fuse Online 環境をインストールした場合、その設定を変更することはできません。

2.4. Fuse Online の設定に使用するカスタムリソース属性の説明

インストール前のみに指定できるカスタムリソース属性の他に、インストール前または後に変更できるカスタムリソース属性が複数あります。

表 1 には、設定可能なカスタムリソース設定の簡単な説明が記載されています。また、インストールの前または後、あるいは両方で変更可能であるかどうかを示しています。適切に Fuse Online を設定するには、以下の表の情報を活用して、インストール前にカスタムリソースをどのように変更する必要があるのか、またはインストール後にカスタムリソースをどのように変更するのかを見極める必要があります。その後、該当する手順にしたがいます。

OCP 4.x の場合:

OCP 3.11 の場合:

表2.1 設定可能なカスタムリソース設定

機能/設定設定可能なタイミング指定内容

強化されたアクティビティー追跡

強化されたアクティビティー追跡の追加情報はこの表の後に記載されています。

インストール前のみ設定

addons:
  jaeger:
    enabled: true
    clientOnly: false
    operatorOnly: false

強化されたアクティビティー追跡はデフォルトで有効になっています。Jaeger 設定をカスタマイズする場合は、clientOnly または operatorOnlytrue に設定します。

外部データベース

外部データベースの使用に関する追加情報はこの表の後に記載されています。

インストール前のみ設定

spec:
  components:
    database:
      externalDbURL: postgresql://custom-postgres:5432
      user: db-user-name
      name: db-name


custom-postgres:5432 を PostgreSQL データベースのホスト名およびポートに置き換えます。
db-user-name をそのデータベースにアクセス可能なユーザーアカウントの名前に置き換えます。
db-name をデータベースの名前に置き換えます。

コネクションおよびインテグレーションの 内部ストレージ容量

外部データベースも指定する場合は無視されます。

内部ストレージの増加に関する追加情報はこの表の後に記載されています。

インストール前のみ設定

spec:
  components:
    database:
      resources:
        volumeCapacity: 1Gi
        volumeName: my-volume


1Gi を必要なストレージ容量に置き換えます。デフォルトは 1Gi です。

my-volume を内部ストレージに使用するボリュームの名前に置き換えます。このパラメーターは任意です。

Fuse Online コンソールにアクセスするための OpenShift ルート

インストール前のみ設定

spec:
  routeHostname: project.route.com


project.route.com を Fuse Online コンソールにアクセスできる OpenShift ルートに置き換えます。
例: north-project.6a63.fuse-online.openshiftapps.com

Memory および CPU

1 つ以上のコンポーネントが使用できるデフォルトのメモリー容量を増やします。

各コンポーネントによって独自のメモリー要件が定義されるため、各 Pod には割り当てられるメモリー容量の制限があります。制限および要求設定の詳細は、OpenShift ドキュメントの「Configuring cluster memory to meet container memory and risk requirements」セクションを参照してください。

server コンポーネントの CPU リソースを指定することもできます。

database コンポーネントはコネクションおよびインテグレーションの定義を格納する内部データベースです。

meta コンポーネントはサーバーがロードするコネクターなどのビジネスロジックを提供します。

prometheus コンポーネントは、Fuse Online インフラストラクチャーコンポーネントおよび Fuse Online インテグレーションを監視します。

インストール前のみ設定

components:
  server:
    resources:
      limit:
        memory: "1024Mi"
        cpu: "800m"
      request:
        memory: "512Mi"
        cpu: "500m"
  meta:
    resources:
      limit:
        memory: "750Mi"
      request:
        memory: "300Mi"
  database:
    resources:
      limit:
        memory: "300Mi"
      request:
        memory: "300Mi"
  prometheus:
    resources:
      limit:
        memory: "750Mi"
      request:
        memory: "750Mi"

3scale の検出

Red Hat 3scale による検出を可能にするため、Fuse Online API プロバイダーインテグレーションの API を公開します。

詳細は、「 3scale で API の検出を有効化する Fuse Online の設定 」を参照してください。

インストール前または後に設定

components:
    server:
      features:
        managementUrlFor3scale: https://url-for-3scale


3scale ユーザーインターフェースの URL を指定します。

バックアップ

追加の設定手順は、「 Fuse Online 環境のバックアップ」を 参照してください。

インストール前または後に設定

spec:
  backup:
    schedule: interval


interval を希望するバックアップの間隔に置き換えます。間隔 および 事前定義のスケジュール には cron ユーティリティーの形式を使用します。間隔の前に @ 記号を指定しないでください。

ノードのアフィニティー許容 (Toleration)

Fuse Online インフラストラクチャーコンポーネントおよびインテグレーション Pod のクラスター内のノードへの配置を決定します。

ノードのアフィニティーを使用すると、配置先のノードのグループに対して Fuse Online Pod のアフィニティーを指定できます。

許容 (Toleration) を使用すると、Fuse Online Pod が実行されるノードを制御し、他のワークロードがそれらのノードを使用しないようにすることができます。

Fuse Online Pod の設定」も参照してください。

インストール前または後に設定

注記: Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を使用します。Fuse Online インテグレーションのデプロイメントでは、infraSchedulingintegrationScheduling に置き換えます。

spec:
infraScheduling:
tolerations:
key: value
operator: value
effect
: value

spec:
infraScheduling:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
weight:
preference:
matchExpressions:
key: value
operator: value
values:
value1,
value2

インテグレーションの制限

稼働中のインテグレーションの最大数を指定します。デフォルトは 0 で、稼働中のインテグレーションの数を制限しません。

インストール前または後に設定

components:
    server:
      features:
        integrationLimit: 0

データベースコネクションプール

サーバーコネクションプール設定を調整して、データベースへのコネクションを管理できます。

データベースプール設定の追加情報は、この表の後に記載されています。

インストール前または後に設定

components:
  server:
    connectionPool:
      connectionTimeout: 30000
      idleTimeout: 600000
      leakDetectionThreshold: 0
      maxLifetime: 1800000
      maximumPoolSize: 10
      minimumIdle: 10

Java オプション

syndesis-server コンポーネントおよび syndesis-meta コンポーネントの Java オプションを指定できます。

Java オプションに応じて、コンポーネントに異なる値を指定できます。たとえば、JVM 関連のパラメーターは syndesis-meta よりも多くのコンピューターリソースを必要とするため、syndesis-server のみに設定できます。

インストール前または後に設定

components:+   server:
    javaOptions:
      -option_name=my_value   meta:
    javaOptions:
      -option_name=my_value

-option_name を Java オプション名に置き換えます。Java オプションの接頭辞 (-D-X、または -XX) を指定することができます。

my_value を、オプションの値に置き換えます。

HTTP プロキシーを設定する場合 (例): components:+   server:
    javaOptions:
      -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800   meta:
    javaOptions:
      -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800`

Maven 引数

Fuse Online インテグレーションをビルドするときに使用する追加の Maven オプションを指定します。

インストール前または後に設定

components:
server:
features:
maven:
additionalArguments:
"typeA=stringA typeB=stringB"


例:
additionalArguments:
"-Dhttp.proxy=my_proxy -DpropA=valueA"

Maven Mirror

インテグレーションの構築時に Fuse Online が Maven アーティファクトにアクセスする単一リポジトリーを指定します。デフォルトでは Fuse Online がアクセスする Maven リポジトリーを無視します。このオプションは、通常 Fuse Online を制限された環境でインストールする場合に使用されます。

インストール前または後に設定

components:
server:
features:
maven:
mirror: https://customRepo

'https://customRepo をリポジトリーの URL に置き換え
ます。

Maven リポジトリー

Fuse Online がデフォルトでアクセスする Maven リポジトリーの他に、Fuse Online 環境がアクセスする必要のある外部 Maven リポジトリーを指定します。

インストール前または後に設定

components:
    server:
      features:
        mavenRepositories:
          customRepo1: https://customRepo1
          customRepo2: https://customRepo2


Replace customRepo をリポジトリーの名前に置き換えます。
各リポジトリーに URL を指定します。



監視については、「 Monitoring Fuse Online integrations on OCP with Prometheus 」を参照してください。

インストール前または後に設定

addons:
  ops:
    enabled: true

パブリック REST API

追加の設定ステップは「 外部ツールによって使用される Fuse Online パブリック REST API の公開 」を参照してください。

インストール前または後に設定

addons:
  publicApi:
    enabled: true
    routeHostname: public-syndesis.192.168.64.63.nip.io


routeHostname を Fuse Online REST API エンドポイントを呼び出すためのパブリックアドレスに設定します。クラスターのセットアップにより、指定する必要のあるパブリックアドレスが決定されます。この例では、ルートのホスト名は minishift クラスターに対して有効です。

Todo アドオン
は、テスト目的でサンプルアプリケーション、PostgreSQL データベースのサンプルおよびサンプルデータベースコネクターを
提供します。

インストール前または後に設定

spec:
addons:
todo:
enabled: false

制限された環境で Fuse Online をインストールする場合は、インストール前に todo アドオンが false (デフォルト)に設定されていることを確認する必要があります。Fuse Online のインストール後に、任意で https://github.com/syndesisio/todo-example から ToDo アプリケーションをダウンロードできます。Readme ファイルの手順に従い、リポジトリー URL をプライベートネットワークで利用可能な場所に変更します。

Adding sample data to a Fuse Online environment running on OCP」も参照してください。

監査

コネクター、コネクション、およびインテグレーションに対して行った基本変更を表示用。

Auditing Fuse Online components」も参照してください。

注記: これは テクノロジープレビューの機能です。

インストール前または後に設定

components:
  server:
    features:
      auditing: true

アドオン機能と設定

  • 強化されたアクティビティー追跡

    Fuse Online のインストール時に、Jaeger を使用したアクティビティー追跡はデフォルトで有効になっています。(OperatorHub またはコマンドラインスクリプトを使用して) Fuse Online をインストールする場合、OperatorHub の存在を検出し、OperatorHub のサブスクリプション機能を使用して Jaeger をインストールします。OperatorHub が利用できないという制限された状況では、Fuse Online は独自のインストール機能を使用して Jaeger をインストールします。任意で、「Jaeger 監視用の Fuse Online の設定」のセクションで説明されているように、Fuse Online をインストールする前に Jaeger 設定をカスタマイズできます。

  • コネクションおよびインテグレーションを永続化するための外部データベース

    Fuse Online のデフォルトインストールは、コネクションおよびインテグレーション定義を永続化するために Fuse Online によって使用される内部 PostgreSQL データベースを提供します。OpenShift がデフォルトで提供する PostgreSQL テンプレートの 1 つなど、外部の PostgreSQL データベースの使用を選択することができます。

  • 内部ストレージ容量

    ほとんどの Fuse Online 環境では、デフォルトの 1Gi で十分対応できます。Red Hat テクニカルサポートが推奨する場合のみ、新しい Fuse Online インストールのこの設定を増強することが想定されます。これは、稼働している別の Fuse Online 環境で Fuse Online のサーバーエラーが発生し、Red Hat テクニカルサポートが、デフォルトよりも容量が大きいデータベースボリュームで Fuse Online 環境をインストールする必要があると判断した場合です。

    Fuse Online がすでに稼働している OpenShift プロジェクトで Fuse Online の内部ストレージ容量を増やすには、最初に Fuse Online をアンインストールする必要があります。「OCP プロジェクトからの Fuse Online のアンインストール」を参照してください。

  • データベースコネクションプールの設定

    以下の syndesis-server データベース接続プールプロパティーを設定できます。

    • connectionTimeout - syndesis-server がプールからのコネクションを待機する最大時間 (ミリ秒単位)。許可される最小コネクションタイムアウトは 250 ミリ秒です。デフォルトは 30000 (30 秒) です。
    • idleTimeout - コネクションが削除されるまで、プールでアイドル状態にすることができる最大時間 (ミリ秒単位)。0 の値は、アイドルコネクションがプールから削除されないことを意味します。許可される最小値は 10000 (10 秒) です。デフォルトは 600000 (10 分) です。
    • leakDetectionThreshold - コネクションリークの可能性を示すメッセージがログに記録される前に、コネクションがプール外にある時間 (ミリ秒単位)。0 を値として指定すると、リーク検出が無効になります。リーク検出の有効化で許容される最小値は 2000 (2 秒) です。デフォルトは 0 です。
    • maxLifetime - プール内のコネクションの最大有効期間 (ミリ秒単位)。許可される最小値は 30000 (30 秒) です。デフォルトは 1800000 (30 分) です。
    • maximumPoolSize - アイドルコネクションと使用中のコネクションの両方を含む、プールが到達できる最大サイズ。デフォルトは 10 です。
    • minimumIdle - プールに保持されるアイドルコネクションの最小数。デフォルト値は maximumPoolSize です。

2.5. Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集

デフォルトの Fuse Online 環境をインストールする場合、デフォルトのカスタムリソースファイルを編集する必要はありません。「OCP 4.x での Fuse Online のインストール」または「OCP 3.11 での Fuse Online のインストール」を参照してください。

Fuse Online のカスタマイズ環境をインストールする場合は、Fuse Online をインストールする前に、 default-cr.yml ファイルを編集する必要があります。このファイルは、Fuse Online のダウンロードパッケージに含まれます。Fuse Online のインストール前にのみ指定できるカスタムリソース設定がいくつかあります。「インストール前にデフォルトのカスタムリソースを編集する必要がある場合」を参照してください。

Fuse Online のインストール前または後に指定できる、その他のカスタムリソース設定があります。「Fuse Online の設定に使用するカスタムリソース属性の説明」を参照してください。

Fuse Online のインストールプロセスでは default-cr.yml ファイルに指定された設定を使用して syndesis カスタムリソースを作成します。syndesis カスタムリソース設定によって、インストールされた Fuse Online 環境の設定が決定されます。

前提条件

  • オンサイトで Fuse Online を OCP にインストールし、実行する計画があります。
  • oc クライアントツールがインストール済みで、Fuse Online をインストールする計画のある OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。

手順

  1. Fuse Online のインストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下を行います。

    1. 以下の場所からダウンロードします。

      https://github.com/syndesisio/fuse-online-install/releases/tag/1.13

    2. ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。fuse-online-install-1.13 ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。
  2. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  3. エディターで fuse-online-install-1.13/default-cr.yml ファイルを開きます。
  4. 必要な機能を有効にし、必要なパラメーターを設定するために、Default-cr.yml ファイルを編集します。指定の必要がある項目を判断するには、「Fuse Online の設定に使用するカスタムリソース属性の説明」を参照してください。
  5. default-cr.yml ファイルを保存します。

結果

default-cr.yml ファイルに新しい Fuse Online インストールの設定が指定されます。

次のステップ

default-cr.yml ファイルを編集し、外部データベースを指定した場合は、Fuse Online をインストールする前に「Installing Fuse Online with an external database」の手順に従います。それ以外の場合は、「OCP 3.11 での Fuse Online のインストール」の手順にしたがいます。

2.6. Jaeger 監視用の Fuse Online の設定

Jaeger は、分散サービス間のトランザクションをトレースするためのオープンソースソフトウェアです。これは、複雑なマイクロサービス環境の監視およびトラブルシューティングで特に役立ちます。

OperatorHub またはコマンドラインスクリプトを使用して Fuse Online をインストールする場合、Fuse Online インストールは OperatorHub の存在を検出し、OperatorHub のサブスクリプション機能を使用して Jaeger をインストールします。OperatorHub が利用できないという制限された状況では、Fuse Online は独自のインストール機能を使用して Jaeger をインストールします。

デフォルトの Fuse Online 環境では、必要な Jaeger コンポーネントがすべて設定されます。任意で、Fuse Online カスタムリソースを編集して、クライアントのみ/非依存のサーバー設定、またはハイブリッド Jaeger クライアントおよび Jaeger Operator 設定を指定できます。

デフォルトの Jaeger 設定

基本的な追加設定なしの設定には、すべての Jaeger コンポーネントが含まれます。Jaeger の監視機能を試して、Jaeger の動作について学ぶことができます。デフォルト設定では、メモリーのみの制限されたバックエンドストレージ機能を提供します。

デフォルトの Jaeger 設定で Fuse Online をインストールすると、以下のような結果になります。

  • Fuse Online コンポーネントには Jaeger 通信 URL があります。
  • Jaeger Operator がインストールされます。
  • Jaeger カスタムリソースは、アクティビティー監視のデフォルト設定で設定されます。

デフォルトの Jaeger 設定を使用した Fuse Online インストールには、以下の syndesis カスタムリソース仕様があります。

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true

clientOnly および operatorOnly が指定されていない場合 (デフォルトで false に設定されている場合)、Fuse Online は提供される Jaeger バックエンドだけでなく、Jaeger サーバー設定によって提供されるデフォルトのメモリーのみのストレージも使用します。

クライアントのみ/非依存のサーバー設定

クライアントのみ/非依存のサーバー設定では、Fuse Online と外部に設定された Jaeger バックエンドとの間の通信用にクライアント URL コネクションのみが設定されます。Jaeger バックエンドのすべての要素は外部にあり、Fuse Online 環境および syndesis-operator には依存しません。これには、Jaeger Operator および Jaeger カスタムリソースが含まれます。

クライアントのみの Jaeger 設定をインストールするには、以下のように Fuse Online をインストールする前にカスタムリソースを編集します。

以下に例を示します。

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true
      clientOnly: true
      queryUri: https://jaeger-query-hostname:443/api
      collectorUri: https://jaeger-collector-hostname:14268/api/traces

ハイブリッド Jaeger クライアントおよび Operator の設定

ハイブリッド Jaeger クライアントおよび Jaeger Operator 設定では、Fuse Online は Jaeger Operator と Jaeger クライアント機能をインストールします。Jaeger カスタムリソースがインストールされていない。Jaeger サーバー設定を定義する独自の Jaeger カスタムリソースをインストールする必要があります。これにより、Fuse Online が提供する機能を利用し、独自の環境用に Jaeger 設定をカスタマイズすることができます。たとえば、データストレージに Elasticsearch または Cassandra を使用できます。

ハイブリッド Jaeger クライアントと Jaeger Operator 設定をインストールするには、以下を行います。

  • Fuse Onlineをインストールする前に、以下の例のようにカスタムリソースを編集します。

    apiVersion: syndesis.io/v1beta2
    kind: Syndesis
    metadata:
      name: app
    spec:
      addons:
        jaeger:
          enabled: true
          operatorOnly: true
  • 以下の例のように、Jaeger カスタムリソース syndesis-jaeger に名前を付けます。

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: syndesis-jaeger
      ...
    spec:
       ....

    注記: Jaeger カスタムリソースに別の名前を使用する場合は、Client-only/independent サーバー設定セクションに記述されているように、Syndesis カスタムリソースで queryUri および collectorUri を設定します。

syndesis-jaeger という名前の Jaeger カスタムリソースが作成されると、Jaeger インスタンスは Fuse Online インテグレーションからデータを収集します。デフォルトでは、Fuse Online のアクティビティーログでこのデータを表示できます。

2.7. 外部データベースを使用する Fuse Online のインストール

外部データベースを使用してコネクションおよびインテグレーションの定義を永続化する Fuse Online 環境をインストールする場合は、以下を行います。

  • OpenShift クラスターが検索できるホスト名を使用して postgreSQL データベースを作成します。
  • Fuse Online をインストールする前に、外部データベース用に syndesis-global-config という名前の OpenShift シークレットを作成します。
  • Fuse Online をインストールします。
  • Fuse Online をデプロイする前に、カスタムリソースを編集して、外部データベースへのコネクションを設定します。

前提条件

  • OCP 3.11 の場合のみ、コネクションおよびインテグレーションの定義を永続化するために外部データベースを使用ことを指定するために default-cr.yml ファイルが編集されている必要があります。
  • Fuse Online がインストールされていない必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer
  2. Fuse Online をインストールする OpenShift クラスターで利用できる postgreSQL データベースを作成し、以下の設定オプションの値を定義します。

    • コネクションユーザー名
    • データベース名
    • データベースパスワード

      以下の例では、OpenShift がデフォルトで提供する PostgreSQL テンプレートの 1 つを使用します。

      注記: 開発またはテスト目的には PostgreSQL 一時 (postgresql-ephemeral) テンプレートのみを使用します。実稼働環境の場合は、PostgreSQL (postgresql) テンプレートを使用します。

      oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb

      このコマンドは、URL などの Fuse Online の設定時に必要なデータベースに関する情報を返します。

      データベースの作成に関する詳細は、OpenShift ドキュメントの PostgreSQL トピック を参照してください。

  3. 以下の内容を含むリソースファイル (例: my-fuse-online-secret-cr.yml) を作成して、保存します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-global-config
      namespace: my-fuse-online-project
    type: Opaque
    stringData:
      POSTGRESQL_PASSWORD: exdb-pw

    my-fuse-online-project を、外部データベーであるスを指定する Fuse Online 環境をインストールする予定である OpenShift プロジェクトの名前に置き換えます。

    exdb-pw を手順 2 のパスワードに置き換えます。Fuse Online は、これを外部データベースにアクセスするためのパスワードとして使用します。stringData は、パスワードの値を base64 でエンコードされた値(変換を行わないように)に変換することに注意してください。

    OpenShift シークレットについての詳細は「シークレット」を参照してください。

  4. 以下のように、シークレットをクラスターに追加します。

    oc apply -f my-fuse-online-secret-cr.yml

    OpenShift クラスターでは、外部データベースを指定するカスタムリソースとインストールされた Fuse Online 環境で syndesis-global-config シークレットを利用できます。

  5. シークレット (ステップ 4) の YAML ファイルで指定した my-fuse-online-project プロジェクトに Fuse Online をインストールします。

結果

Fuse Online のインストールプロセスでは、カスタムリソースの設定を使用して、インストールされた Fuse Online 環境の設定を決定します。

正しくインストールおよびデプロイされると、Fuse Online は syndesis-db 以外の必要な Pod をすべて稼働します。syndesis-db の代わりに、syndesis-server は外部データベースのサービス名を使用してデータベースに接続します。外部データベースの設定が正しくない場合、syndesis-server は初期化に失敗し、Fuse Online デプロイメントはエラーを出して終了します。

2.8. OCP 3.11 に Fuse Online をインストールするスクリプトの実行

Fuse Online インストールスクリプトを実行すると、Fuse Online ダウンロードパッケージに含まれる default-cr.yml ファイルの設定にしたがって Fuse Online 環境がインストールされます。デフォルトの環境をインストールする場合は、このファイルを編集する必要はありません。カスタマイズされた環境をインストールする場合は、インストールスクリプトを実行する前に default-cr.yml ファイルを編集する必要があります。

前提条件

  • OCP がオンサイトで稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online にインストールする OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーが、プロジェクトで Fuse Online をインストールする権限を該当ユーザーに付与済みである必要があります。
  • インストール前に default-cr.yml ファイルを編集する必要があると判断した場合は、編集が完了済みである必要があります。(Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合)
  • 編集された default-cr.ym ファイルにコネクションおよびインテグレーション定義を永続化するための外部データベースが指定された場合、外部データベースにアクセスするための OpenShift シークレットが作成されたことになります。(Installing Fuse Online with an external database)
  • ユーザー名とパスワードを知っている Red Hat Developer のアカウントが必要です。https://developers.redhat.com に対して認証できるよう、インストールスクリプトから認証情報を求められます。アカウントの作成に関する詳細は、「Red Hat レジストリーへのアクセスおよびその設定」を参照してください。

手順

  1. Fuse Online のインストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下を行います。

    1. 以下の場所からダウンロードします。

      https://github.com/syndesisio/fuse-online-install/releases/tag/1.13

    2. ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。fuse-online-install-1.13 ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。
  2. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  3. 以下のように、Fuse Online をインストールする OpenShift プロジェクトに切り替えます。

    oc project my-fuse-online-project

    または、インストールスクリプトの実行時に --project my-fuse-online-project のように指定することもできます。

  4. インストールスクリプトをダウンロードしたディレクトリーで、インストールスクリプトを実行します。

    bash install_ocp.sh

    インストールスクリプトのオプションの詳細については bash install_ocp.sh --help コマンドを実行してください。

  5. Fuse Online をインストールするために syndesis-operator によって使用された syndesis カスタムリソースに、必要な内容が適切に含まれていることを確認します。

    1. 以下のコマンドを実行して、syndesis カスタムリソースの内容を表示します。

      oc describe syndesis/app

    2. カスタムリソースの内容を確認します。

      含まれていない更新がある場合は、カスタムリソースに構文エラーがある可能性があります。有効なカスタムリソースを定義するには、Fuse Online をアンインストールし、再インストールする必要があります。「OCP プロジェクトからの Fuse Online のアンインストール」を参照してください。

  6. インストールに成功したことを確認します。

    1. https://openshift-route で OpenShift OAuth プロキシーログインページを表示します。

      インストールスクリプトによる OpenShift ルートの算出を選択した場合、実行の最後あたりで算出されたルートが表示されます。openshift-route をスクリプトが提供する値に置き換えます。

      default-cr.yml ファイルを編集して Fuse Online に routeHostname を指定した場合は、openshift-route を指定したルートに置き換えます。

    2. OpenShift コンソールにログインしていない場合は、ログインページが表示されます。OpenShift ユーザー名およびパスワードを入力してログインします。

    Fuse Online のホームページが、すぐに、もしくはOpenShift コンソールへのログイン後に表示されます。

第3章 Fuse Online 環境の設定変更

オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールした後、Fuse Online 環境の設定を変更することができます。

詳細は以下のトピックを参照してください。

3.1. インストール後に変更可能な Fuse Online の設定

オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールした後、機能を有効または無効にしたり、設定を変更することができます。以下の表は、変更可能な機能および設定、変更の影響、および変更手順の記載場所を一覧表示しています。

syndesis カスタムリソースへの変更によって syndesis-server が再度デプロイされた場合、新しいサーバー Pod が OpenShift によって作成されます。新しいサーバーの準備が整うまで、最大 1 - 2 分ほどかかります。準備が整うまで Fuse Online コンソールを使用することはできません。新しいサーバーのデプロイ中も、稼働中のインテグレーションは稼働し続けます。新しいデプロイメントの準備が整ったら、新しいサーバーによってインテグレーションの状態がロードされます。syndesis-server Pod の状態が Running であれば Fuse Online コンソールを使用することができます。Fuse Online コンソールを更新すると、インテグレーション、コネクション、メッセージ、および稼働時間の値が表示されます。

表3.1 変更可能な機能および設定

機能/設定変更の影響詳細

3scale の検出

syndesis-server を再度デプロイします。

3scale で API の検出を無効化する Fuse Online の設定

バックアップ

バックアップジョブを syndesis-operator に追加します。

Fuse Online 環境のバックアップ

監査

注記: これは テクノロジープレビューの機能です。

実行中の syndesis-server の設定を更新します。再デプロイメントは必要ありません。

Auditing Fuse Online components

監視

新しい OpenShift リソースをインストールします。

Prometheus を使用した OCP での Fuse Online インテグレーションの監視

パブリック Fuse Online REST API エンドポイント

syndesis-public-oauthproxy Pod を作成します。

外部ツールによって使用される Fuse Online パブリック REST API の公開

Todo アプリケーションおよびサンプル PostresSQL データベースおよびコネクターの例

todo アドオン は、インテグレーションをテストするサンプルの Todo アプリケーションに新しい todo Pod を作成します。また、サンプルデータベースおよびサンプルデータベースコネクターも提供します。sampledb という名前の PostgreSQL データベースを作成し、Fuse Online 環境の PostgresDB Connection を SampleDB コネクターに追加します。

todo アドオン オプションを変更すると、syndesis-server および sydnesis-db Pod の再デプロイメントが発生することに注意してください。

OCP で稼働している Fuse Online 環境へのサンプルデータの追加

Fuse Online の設定に使用するカスタムリソース属性の説明

Java オプション

syndesis-server を再度デプロイします。

Fuse Online の設定に使用するカスタムリソース属性の説明

HTTP プロキシーの設定

Maven の設定

再デプロイメントをトリガーするには、syndesis-server Pod を削除する必要があります。

OpenShift クラスターノードへの Fuse Online Pod の割り当て

Fuse Online インフラストラクチャーコンポーネントおよびインテグレーション Pod を再デプロイします。

Fuse Online の設定に使用するカスタムリソース属性の説明

Fuse Online Pod の設定

Fuse Online コンポーネントで使用できるメモリー

メモリーが変更されたコンポーネントを再度デプロイします。

Fuse Online の設定に使用するカスタムリソース属性の説明

許可される稼働中のインテグレーションの数

再デプロイメントをトリガーするには、syndesis-server Pod を削除する必要があります。

データベースコネクションプール

syndesis-server を再度デプロイします。

3.2. Fuse Online の設定変更に関する一般的な手順

OCP にインストールされる Fuse Online 環境では、syndesis カスタムリソースを更新して設定を変更できます。変更を保存した後、構文が正しい場合は OpenShift によって syndesis-operator が更新されます。構文エラーがある場合は更新されません。

syndesis カスタムリソースの編集中、構文が正しい無効な設定を指定しないようにしてください。構文が正しい設定が無効であっても、更新された syndesis カスタムリソースが syndesis-operator によって使用されます。無効な設定を指定した場合、OpenShift の更新後でのみ判明します。更新中、OpenShift では無効な設定が削除されます。

前提条件

  • オンサイトで OCP に Fuse Online がインストールされている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • Fuse Online の設定を変更するプロジェクトで Fuse Online をインストールする権限が必要です。
  • Fuse Online の設定に使用するカスタムリソース属性の説明」を読み、インストール後に変更可能な設定と、syndesis カスタムリソースを更新して設定変更を行う方法について理解する必要があります。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. 設定を変更する Fuse Online 環境を実行している OpenShift プロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. 任意手順:誤った内容を更新および保存した場合に備え、syndesis カスタムリソースに現在の設定のバックアップコピーを作成します。たとえば、以下のコマンドを実行すると、バックアップが syndesis_app_backup.yml ファイルに保存されます。

    oc get syndesis app -o yaml > syndesis_app_backup.yml

  4. 以下のコマンドを実行して、エディターで syndesis カスタムリソースを開きます。

    oc edit syndesis/app

    注記: この手順では、エディターでカスタムリソースファイルを開き、設定する方法を説明します。この他にも、oc patch コマンドを使用して、カスタムリソースを編集することもできます。

  5. 必要に応じて syndesis カスタムリソースを編集します。
  6. リソースを保存します。

    編集が適用されるオブジェクトのタイプに応じて、更新により syndesis-operator がトリガーされ、リソースの保存時に Fuse Online コンポーネントを再デプロイします。

  7. 2 - 3 分間待ってから、syndesis カスタムリソースが正しく更新されていることを確認します。

    1. 以下のコマンドを実行して、syndesis カスタムリソースの内容を表示します。

      oc describe syndesis/app

    2. 内容を確認します。

      syndesis カスタムリソースに必要な設定が含まれていない場合は、これを再度編集して有効な設定を指定します。

結果

syndesis カスタムリソースのほとんどの変更によって syndesis-operator がトリガーされ、Fuse Online syndesis-server が再デプロイされます。これは、OpenShift が新しいサーバー Pod を作成することを意味します。

新しいサーバーの準備が整うまで、最大 1 - 2 分ほどかかります。準備が整うまで Fuse Online コンソールを使用することはできません。新しいサーバーのデプロイ中も、稼働中のインテグレーションは稼働し続けます。新しいデプロイメントの準備が整ったら、新しいサーバーによってインテグレーションの状態がロードされます。以下の場合に、Fuse Online コンソールを再度使用できます。

  • syndesis-server Pod の状態が Running である場合。
  • Fuse Online コンソールを更新すると、インテグレーション、コネクション、メッセージ、および稼働時間の値が表示される場合。

syndesis カスタムリソースの変更によっては、Fuse Online 設定が更新されても syndesis-server の再デプロイメントは必要ないものがあります。以下に例を示します。

  • syndesis カスタムリソースを更新してバックアップを指定する場合、バックアップジョブが利用可能になるまで数秒かかります。

各設定変更の影響については「インストール後に変更可能な Fuse Online の設定」を参照してください。

3.3. Fuse Online の設定および 3scale での API の検出

API プロバイダーインテグレーションを作成する場合、Red Hat 3scale でそのインテグレーションの API の検出を有効することがあります。デフォルトの動作では、API は 3scale の自動検出の対象になりません。

3scale の検出を有効にしている場合には、後で任意で無効にすることができます。

3.3.1. 3scale で API の検出を有効化する Fuse Online の設定

API プロバイダーインテグレーションを作成する場合、Red Hat 3scale でそのインテグレーションの API の検出を有効することがあります。デフォルトの動作では、API は 3scale の自動検出の対象になりません。検出を有効にするには、3scale ユーザーインターフェースの URL を指定する必要があります。

Fuse Online をインストールする前に 3scale で API の検出を有効にするよう Fuse Online を設定するには「Fuse Online の設定に使用するカスタムリソース属性の説明」を参照してください。

インストール後に syndesis カスタムリソースを更新すると、検出を有効にすることができます。本トピックでは、この手順を説明します。検出を有効にすると、リソースの更新時に接続されている OpenShift プロジェクトのみに適用されます。

3scale サービス検出を有効にすると、以下のようになります。

  • デフォルトの動作として、3scale は API プロバイダーインテグレーションをパブリッシュします。3scale が API プロバイダーインテグレーションをパブリッシュする場合は、以下のとおりです。

    • Fuse Online は、稼働している API プロバイダーインテグレーションの外部 URL を提供しません。
    • API には 3scale からのみアクセスできます。エンドポイントを公開するために 3scale の設定が必要です。詳細は、Red Hat 3scale API Management『Admin Portal Guide』の「Service Discovery」 を参照してください。
  • API プロバイダーインテグレーションの作成者は、そのインテグレーションの 3scale 検出を無効にすることができます。つまり、各 API プロバイダーインテグレーション作成者は、そのインテグレーションの API を検出可能にするかどうかを選択できます。

前提条件

  • オンサイトで OCP に Fuse Online がインストールされている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • API の検出を有効にするプロジェクトで Fuse Online をインストールするパーミッションが必要です。
  • OpenShift クラスター上の 3scale プロジェクトの名前を把握している必要があります。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. Fuse Online が稼働している OpenShift プロジェクトに切り替えます。このプロジェクトのみで検出を有効にします。以下に例を示します。

    oc project my-fuse-online-project

  3. 3scale プロジェクトによる Fuse Online インテグレーションの表示を可能にするパーミッションを追加します。

    oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp

    たとえば、OpenShift の 3scale プロジェクトの名前が my3scale が場合は、次のようになります。

    oc adm policy add-cluster-role-to-user view system:serviceaccount:my3scale:amp

  4. syndesis カスタムリソースを編集します。

    1. 以下のコマンドを実行します。通常、エディターでリソースが開かれます。

      oc edit syndesis

    2. 3scale ユーザーインターフェースの URL に managementUrlFor3scale を設定し、リソースを編集します。結果は以下のようになります。

      spec:
        components:
          server:
            features:
              managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
    3. リソースを保存します。
  5. 任意手順:切り替え先のプロジェクトで検出が有効になっていることを確認するには、以下のコマンドを実行します。

    oc describe dc/syndesis-server

    検出が有効な場合、OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数がカスタムリソースで指定した URL に設定されていることがこのコマンドで出力されます。

結果

syndesis カスタムリソースに対するこの変更により、Fuse Online のインストールを担う syndesis-operatorsyndesis-server を再デプロイするようトリガーされます。切り替え先の OpenShift プロジェクトでは、新しいデフォルト動作として API が 3scale で検出の対象となります。

syndesis-server DeploymentConfig オブジェクトを編集して OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数を設定しないでください。syndesis-operator により変更が元に戻るため、これは動作しません。syndesis-operator は、常に syndesis カスタムリソースのみに従って Fuse Online がデプロイされるようにします。

3.3.2. 3scale で API の検出を無効化する Fuse Online の設定

API の 3scale 検出を有効化する Fuse Online の設定」で説明されている手順に従っている場合、各 API プロバイダーインテグレーションの作成者は、そのインテグレーションの API が検出可能かどうかを選択できます。場合によっては、インテグレーション API が 3scale では検出できないデフォルトの動作を再設定する必要になることがあります。たとえば、Fuse Online で API プロバイダーを編集およびテストする場合などです。このような場合、managementUrlFor3scale キーと値を指定する行がコメントアウトされるよう Fuse Online の syndesis カスタムリソースを更新します。これにより、3scale による検出が無効になります。その後、検出可能な API でパブリッシュされた API プロバイダーインテグレーションを再パブリッシュします。

前提条件

  • オンサイトで OCP に Fuse Online がインストールされている必要があります。
  • 検出を無効にするプロジェクトで Fuse Online をインストールするパーミッションが必要です。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • 3scale 検出は、「API の 3scale 検出を有効化する Fuse Online の設定」で説明されているように OpenShift プロジェクトで有効にされている必要があります

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. 3scale の検出が有効になっている OpenShift プロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. syndesis カスタムリソースを編集します。

    1. 以下のコマンドを実行します。通常、エディターでリソースが開かれます。

      oc edit syndesis

    2. managementUrlFor3scale キーおよび値を指定する行の最初にハッシュ記号 (#) を挿入して、リソースを編集します。これにより、行がコメントになり、検出が無効になります。結果は以下のようになります。

      spec:
        components:
          server:
            features:
            #  managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
    3. リソースを保存します。

      これにより、syndesis カスタムリソースが更新されます。更新により、OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数が削除されます。syndesis カスタムリソースに対するこの変更により、Fuse Online のインストールを担う syndesis-operatorsyndesis-server を再デプロイするようトリガーされます。新しいデフォルト動作では、API が 3scale で検出の対象ではなくなります。

    syndesis-server DeploymentConfig オブジェクトを編集して OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数を設定を削除しないでください。syndesis-operator により変更が元に戻るため、これは動作しません。syndesis-operator は、常に syndesis カスタムリソースのみに従って Fuse Online がデプロイされるようにします。

  4. 先ほど検出を無効化したプロジェクトで作成された API プロバイダーインテグレーションで、検出が有効化されていたものがあれば、そのインテグレーションを再パブリッシュします。

    言い換えると、API プロバイダーインテグレーションが作成されたプロジェクトの検出が有効であるときに、そのインテグレーションの API の検出を無効にした場合は、この API プロバイダーインテグレーションを再パブリッシュする必要はありません。

結果

関連する OpenShift プロジェクトで作成された API プロバイダーインテグレーションの API が 3scale で検出できなくなります。

Fuse Online が関連するプロジェクトにある API プロバイダーインテグレーションをパブリッシュ (または再パブリッシュ) する場合、Fuse Online は API プロバイダーインテグレーションの操作を呼び出すための外部 URL を提供します。

3.4. Fuse Online Pod の設定

Fuse Online カスタムリソースでノードのアフィニティーおよび許容オプションを設定して、Fuse Online インフラストラクチャーコンポーネントおよびインテグレーション Pod を OpenShift クラスター内のノードに配置するように設定できます。nodeAffinity オプションを使用すると、配置先のノードのグループに対して Fuse Online Pod のアフィニティーを指定できます。tolerations オプションを使用すると、Fuse Online Pod が実行されるノードを制御し、他のワークロードがそれらのノードを使用しないようにすることができます。

これらのオプションは、Fuse Online のインストール前または後に Fuse Online カスタムリソースを編集して設定します。

インテグレーションデプロイメントとは別に、インフラストラクチャーコンポーネントデプロイメントのノードアフィニティーまたは許容の設定を指定します。

  • infraScheduling - infraScheduling オプションを指定して、これらの Fuse Online インフラストラクチャーデプロイメントのノードのアフィニティーおよび許容を設定します。

    • syndesis-db
    • syndesis-meta
    • syndesis-prometheus
    • syndesis-ui

      注記: syndesis-operator デプロイメントは Fuse Online 管理コンポーネントであるため、ノードのアフィニティーまたは許容の変更による影響を受けません。

  • integrationScheduling - すべての Fuse Online インテグレーションデプロイメントのノードのアフィニティーおよび許容を設定するには、integrationScheduling オプションを指定します。

    注記: Fuse Online デプロイメントがインテグレーションデプロイメントかどうかを知るには、デプロイメント名を確認します。oc get pods コマンドを使用して、実行中のデプロイメントの一覧を表示できます。デプロイメント名に接頭辞 -i が含まれる場合、これはインテグレーションデプロイメントになります (例: i-my-integration)。

以下の手順では、oc patch コマンドを使用してカスタムリソースを編集する方法を説明します。この他にも、以下のトピックで説明されているような方法で、カスタムリソースを編集できます。

前提条件

  • オンサイトで OCP に Fuse Online がインストールされている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。

手順

  1. 以下の構文で oc patch コマンドを使用して 許容 (Toleration) を設定します。Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を、Fuse Online インテグレーションのデプロイメントには integrationScheduling を指定します。

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'

    たとえば、以下のコマンドは、Fuse Online インフラストラクチャーコンポーネントに許容を追加します。

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"tolerations":[{"key":"tol_1","operator":"Equal","effect":"NoSchedule"},{"key":"tol_2","operator":"Equal","value":"value2","effect":"NoSchedule"}]}}}'
  2. 以下の構文で oc patch コマンドを使用して、ノードのアフィニティー を設定します。Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を、Fuse Online インテグレーションのデプロイメントには integrationScheduling を指定します。

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling"|"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":_value1_,"preference":{"matchExpressions":[{"key":"_value1_","operator":"_value2_","values":["_value3_","_value4_"]}]}}]}}}'

    たとえば、以下のコマンドは nodeAffinity を Fuse Online インフラストラクチャーコンポーネントとインテグレーションの両方に設定します。

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":11,"preference":{"matchExpressions":[{"key":"_affinity","operator":"In","values":["foo","bar"]}]}}]}}},"integrationScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":22,"preference":{"matchExpressions":[{"key":"my_affinity2","operator":"In","values":["foo","bar"]}]}}]}}}}}'
  3. 設定を削除するには、以下のコマンド例のように、oc patch コマンドで remove オプションを使用します。

    • 以下のコマンド例は、Fuse Online インテグレーションの nodeAffinity から preferredDuringSchedulingIgnoredDuringExecution 設定を削除します。

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/integrationScheduling/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution" }]'
    • 以下の例では、Fuse Online インフラストラクチャーコンポーネントから許容を削除します。

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/infraScheduling/tolerations" }]'

その他のリソース

許容およびノードのアフィニティーに関する詳細は、OpenShift ドキュメントの「Understanding node affinity」および「Controlling pod placement using node taints」を参照してください。

3.5. HTTP プロキシーの設定

多くのサービスは、HTTP プロキシーを使用して、他のサービスまたはコンポーネントとの通信をフィルタリングし、セキュリティーを保護します。Fuse Online コンポーネントおよびインテグレーションで HTTP プロキシーを設定するには、Fuse Online のインストール前または後に Fuse Online カスタムリソースを編集します。

前提条件

  • HTTP プロキシーのホストおよびポートの値を知っている必要があります。

手順

  1. エディターでカスタムリソースを開きます。

    Fuse Online がすでにインストールされている場合は、「Fuse Online の設定変更に関する一般的な手順」の手順にしたがって、カスタムリソースを開きます。

    Fuse Online がインストールされていない場合は、OCP のバージョンに応じて、以下の手順にしたがってカスタムリソースを開きます。

  2. syndesis-server および syndesis-meta コンポーネントの場合は、Java Options (javaOptions) パラメーターを設定し、HTTP プロキシーホストおよびポートの値を指定します。syndesis-server および syndesis-meta に同じ HTTP プロキシー値を使用します。

    以下に例を示します。

    spec:
      components:
        server:
          javaOptions:
    -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
    
        meta:
          javaOptions:
    -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
  3. Fuse Online インテグレーションでは、Maven 引数 (additionalArguments) パラメーターを設定します。以下に例を示します。

    spec:
      components:
        server:
          features:
            maven:
              additionalArguments: "-Dhttp.proxy=10.0.0.100 -Dhttp.proxyPort=8800"
  4. カスタムリソースを保存します。

    Fuse Online がすでにインストールされている場合、手順 2 の javaOptions の更新に応じて syndesis-server Pod が再デプロイされます。

  5. HTTP プロキシーを使用する稼働中のインテグレーションを再パブリッシュします。

    1. Fuse Online で、更新するインテグレーションを選択します。
    2. Edit を選択します。
    3. Publish を選択します。

Fuse Online はインテグレーションの再ビルド時に HTTP プロキシー設定を使用します。

3.6. Adding sample data to a Fuse Online environment running on OCP

新しいユーザーが Fuse Online でのインテグレーションの作成方法を学べるよう、Fuse Online 環境にサンプルデータを追加することができます。

  • ToDo アプリケーション
  • サンプル PostgresDB データベースおよび PostgresDB コネクション

Salesforce to Database、AMQ to REST API、および API Provider quickstart サンプルインテグレーションにはこのサンプルデータが必要です。

デフォルトでは、PostgresDB データベースおよびコネクションおよび ToDo アプリケーションのサンプルは無効にされます (インストールされていない)。

Fuse Online をインストールする前にサンプルデータが含まれるように Fuse Online を設定するには、「Descriptions of custom resource attributes that configure Fuse Online」を参照してください。

前提条件

  • オンサイトで Fuse Online が OCP にインストールされ、稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
  • Fuse Online カスタムリソースを編集する権限が必要です。

手順

  1. Fuse Online カスタムリソースを編集する権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. Fuse Online が稼働しているプロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. syndesis カスタムリソースを編集します。

    1. 以下のコマンドを実行します。通常、エディターでリソースが開かれます。

      oc edit syndesis

    2. addons:todo:enabled フィールドを true に変更してカスタムリソースを編集します。

      spec:
        addons:
          todo:
            enabled: true
    3. リソースを保存します。

      この変更を syndesis カスタムリソースに保存すると、syndesis-operator が新しい todo Pod を作成し、syndesis-server および syndesis-db Pod の再デプロイメントをトリガーするよう syndesis-operator がトリガーされます。

第4章 OCP 上の Fuse Online の管理

オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールしたら、Prometheus を使用してインテグレーションアクティビティーを監視し、Fuse Online 環境の復元に使用できる Fuse Online の定期的なバックアップを設定できます。必要に応じて、Fuse Online のアップグレード、Fuse Online のアンインストール、または Fuse Online が含まれる OCP プロジェクトの削除を行うことができます。

詳細は以下のトピックを参照してください。

4.1. Fuse Online コンポーネントの監査

重要

Fuse Online の監査は、テクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は、実稼働環境での使用を推奨しません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能をテストし、フィードバックを提出できるようにすることを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。

Fuse Online は、ユーザーが以下の Fuse Online コンポーネントに加えた変更の基本監査をサポートします。* 接続: Fuse Online Web コンソールのコネクターの Details ページに表示される Name およびその他のフィールド。* Connectors - Name フィールド。* Integrations - Name フィールド。

開発者がこれらのコンポーネントフィールドのいずれかを更新する場合 (インテグレーションの名前を変更するなど)、Fuse Online は ID、ユーザー、タイムスタンプ、コンポーネント (connectionconnector、または integration) および変更のタイプ (createmodify、または delete) などの情報が含まれる監査メッセージを標準出力を送信します。監査メッセージのフィールド値は 30 文字に切り捨てられることに注意してください。

デフォルトでは、Fuse Online 監査は無効になっています。これを有効にするには、Fuse Online カスタムリソースを編集します。Fuse Online をインストールする前に監査を有効にする場合は、「Descriptions of custom resource attributes that configure Fuse Online」を参照してください。

前提条件

  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
  • Fuse Online カスタムリソースを編集する権限が必要です。

手順

  1. Fuse Online カスタムリソースを編集する権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u admin -p admin-password

  2. Fuse Online 環境を稼働しているプロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. syndesis カスタムリソースを編集します。

    1. 以下のコマンドを実行します。通常、エディターでリソースが開かれます。

      oc edit syndesis

    2. 以下の行がリソースにあることを確認します。必要に応じて編集します。

      components:
        server:
          features:
            auditing: true
  4. リソースを保存します。

    syndesis カスタムリソースで監査機能を有効にすると、稼働中の syndesis-server 設定を再読み込みし、Fuse Online は Fuse Online コンポーネントに関連する変更のロギングを開始します。

  5. Fuse Online の監査ログメッセージを表示するには、以下のコマンドを入力します。

oc logs -l syndesis.io/component=syndesis-server

4.2. Prometheus での Fuse Online インテグレーションおよびインフラストラクチャーコンポーネントの監視

Prometheus を使用して Fuse Online インフラストラクチャーコンポーネントおよび Fuse Online インテグレーションを監視できます。Grafana ダッシュボードを使用して、Prometheus によって収集されるメトリクスを可視化することもできます。

重要

Prometheus に対する Red Hat のサポートは、Red Hat 製品ドキュメントに記載されているセットアップと推奨設定に限定されます。

Grafana はコミュニティーがサポートする機能です。Grafana をデプロイして Red Hat Fuse 製品を監視する構成は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外です。

Fuse Online インテグレーションを監視する他に、Prometheus を使用して以下の Fuse Online インフラストラクチャーコンポーネントによって公開されるメトリクスを監視できます。

Syndesis Server
syndesis-server コンポーネントは Micrometer でインストルメント化され、デフォルトですべての JVM Micrometer メトリクスを自動的に公開します。さらに、syndesis-server は要求レート、エラーレート、レイテンシーなどの REST API エンドポイントに関するメトリクスを公開します。
Syndesis Meta
syndesis-meta コンポーネントは Micrometer でインストルメント化され、デフォルトですべての JVM Micrometer メトリクスを自動的に公開します。また、REST API エンドポイントについてのメトリクスも公開します。
Syndesis DB
Fuse Online Postgres データベースのメトリクスは、サードパーティーの Prometheus エクスポーター を使用してエクスポートされます。
統合
integration メトリクスは、インテグレーションが作成され、デフォルトで複数の JVM メトリクスを公開する公式の JMX エクスポーターを使用してエクスポートされた後に表示されます。さらに、integration メトリクスは、メッセージレートやエラーレートなどの Apache Camel 固有のメトリクスを公開します。

前提条件

  • Fuse Online は、オンサイトで OCP 4.9 (またはそれ以降) にインストールされ、実行されている。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
  • OCP クラスターへの admin アクセスがある。
  • Fuse Online インストールが ops addon が有効になっている状態で設定されている。必要に応じて、以下のコマンドで有効にすることができます。

    oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'

手順

  1. 既存の openshift-monitoring 設定がある場合は、手順 2 に進みます。

    それ以外の場合には、ユーザーワークロードモニタリングオプションを true に設定する openshift-monitoring 設定を作成し、手順 3 に進みます。

    oc apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
       enableUserWorkload: true
    EOF
  2. 既存の openshift-monitoring 設定がある場合:

    1. 既存の openshift-monitoring 設定をチェックして、ユーザーワークロードモニタリング オプションが true に設定されるかどうかを判別します。

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'

      結果が enableUserWorkload: true の場合、ユーザーワークロードモニタリング オプションは true に設定されます。ステップ 3 に進みます。

      結果に他の設定が表示される場合には、次の手順に進み、ConfigMap を編集してユーザーワークロードの監視を有効にします。

    2. 以下のようにエディターで ConfigMap ファイルを開きます。

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
    3. enableUserWorkloadtrue に設定します。以下に例を示します。

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml: |
         enableUserWorkload: true
    4. ConfigMap ファイルを保存します。
  3. 以下のコマンドを使用して、openshift-user-workload-monitoring namespace の Pod のステータスを確認します。

    oc -n openshift-user-workload-monitoring get pods -w

    Pod のステータスが Running になるまで待機します。以下に例を示します。

    prometheus-operator-5d989f48fd-2qbzd   2/2     Running
    prometheus-user-workload-0             5/5     Running   prometheus-user-workload-1             5/5     Running
    thanos-ruler-user-workload-0           3/3     Running
    thanos-ruler-user-workload-1           3/3     Running
  4. Prometheus で Fuse Online のアラートルールが有効になっていることを確認します。

    1. 内部 prometheus インスタンスにアクセスします。

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
    2. ブラウザーを開いて localhost:9090にアクセスします。
    3. Status> Targets の順に選択します。3 つの syndesis エンドポイントが表示されるはずです。
    4. CTRL-C を押して、port-forward プロセスを終了します。
  5. OperatorHub から、Grafana Operator を grafana-middleware namespace などの選択した namespace にインストールします。
  6. クラスターロールとクラスターロールのバインディングを追加して、grafana-operator がノードおよび namespace を一覧表示できるようにします。

    1. grafana-operator Web サイトからクラスターロール YAML ファイルをダウンロードします。

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
    2. grafana-operator のクラスターパーミッションを追加して、他の namespace およびノードを読み取ります。

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      oc apply -f tmp_role.yaml
      oc apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: grafana-operator
      roleRef:
        name: grafana-operator
        kind: ClusterRole
        apiGroup: ""
      subjects:
        - kind: ServiceAccount
          name: grafana-operator-controller-manager
          namespace: grafana-middleware
      EOF
  7. DASHBOARD_NAMESPACES_ALL 環境変数を使用して namespace を制限することで、grafana-operator が他の namespace から Grafana ダッシュボードを読み取れるようにします。

    oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
  8. grafana Pod が再作成されていることを確認します。

    oc -n grafana-middleware get pods -w
  9. 必要に応じて、grafana-operator ログを表示します。

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
  10. Grafana カスタムリソース を追加して、以下のように Grafana サーバー Pod を起動します。

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: Grafana
    metadata:
      name: grafana-middleware
      namespace: grafana-middleware
    spec:
      config:
        auth:
          disable_signout_menu: true
        auth.anonymous:
          enabled: true
        log:
          level: warn
          mode: console
        security:
          admin_password: secret
          admin_user: root
      dashboardLabelSelector:
      - matchExpressions:
        - key: app
          operator: In
          values:
          - grafana
          - syndesis
      ingress:
        enabled: true
    EOF
  11. grafana-operator がモニタリング情報を読み取ることを許可します。

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
  12. GrafanaDatasource を追加して、thanos-querier をクエリーします。

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: GrafanaDataSource
    metadata:
      name: prometheus-grafanadatasource
      namespace: grafana-middleware
    spec:
      datasources:
        - access: proxy
          editable: true
          isDefault: true
          jsonData:
            httpHeaderName1: 'Authorization'
            timeInterval: 5s
            tlsSkipVerify: true
          name: Prometheus
          secureJsonData:
            httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)"
          type: prometheus
          url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')"
      name: prometheus-grafanadatasource.yaml
    EOF
  13. grafana サーバーログを表示します。

    oc logs -f `oc get pods -l app=grafana -oname`
  14. grafana URL にアクセスし、Fuse Online ダッシュボードを表示するには、以下を実行します。

    echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')

    Grafana コンソールの左側のパネルで、検索ボタンをクリックします。各 Syndesis インスタンスのダッシュボードが含まれるフォルダー(OCP namespace 名)が表示されます。

    • Fuse Online インテグレーションでは、Integration - Camel を選択します。このダッシュボードには、Apache Camel インテグレーションアプリケーションによって公開される標準メトリクスが表示されます。
    • Fuse Online インフラストラクチャーコンポーネントでは、以下のインフラストラクチャーダッシュボードのいずれかを選択します。

      Infrastructure - DB
      Fuse Online の Postgres インスタンスに関連するメトリクスを表示します。
      Infrastructure - JVM
      syndesis-meta または syndesis-server アプリケーションの実行中の JVM に関するメトリクスを表示します。ダッシュボードの上部にある Application ドロップダウンリストから、監視するアプリケーションを選択します。
      Infrastructure - REST APIs
      request throughput および latency などの Fuse Online インフラストラクチャー API エンドポイントに関連するメトリクスを表示します。ダッシュボードの上部にある Application ドロップダウンリストから、監視するアプリケーションを選択します。

関連情報

Prometheus を初めて使用する場合は、「https://prometheus.io/docs/prometheus/latest/getting_started/」を参照してください。

4.3. Fuse Online のメータリングラベル

OpenShift の Metering Operator を使用すると、インストールされた Fuse Online の Operator とコンポーネントを分析し、Red Hat サブスクリプションに準拠しているかどうかを判断することができます。詳細は、OpenShift ドキュメントの『メータリング』を参照してください。

以下の表では、Fuse Online インフラストラクチャーコンポーネントおよびインテグレーションのメータリングラベルが一覧表示されています。

表4.1 Fuse Online のメータリングラベル

ラベル可能な値

com.company

Red_Hat

rht.prod_name

Red_Hat_Integration

rht.prod_ver

7.8

rht.comp

Fuse

rht.comp_ver

7.8

rht.subcomp

syndesis-db

syndesis-server

syndesis-meta

syndesis-ui

syndesis-prometheus

syndesis-operator

i-<integration name>

rht.subcomp_t

infrastructure (when rht.subcomp = syndesis-*)

application (when rht.subcomp = i-*)

  • インフラストラクチャーの例 (インフラストラクチャーコンポーネントが syndesis-db の場合)

    com.company: Red_Hat
    rht.prod_name: Red_Hat_Integration
    rht.prod_ver: 7.8
    rht.comp: Fuse
    rht.comp_ver: 7.8
    rht.subcomp: syndesis-db
    rht.subcomp_t: infrastructure
  • アプリケーションの例 (インテグレーションのデプロイメント名が mytestapp の場合)

    com.company: Red_Hat
    rht.prod_name: Red_Hat_Integration
    rht.prod_ver: 7.8
    rht.comp: Fuse
    rht.comp_ver: 7.8
    rht.subcomp: i-mytestapp
    rht.subcomp_t: application

4.4. Fuse Online 環境のバックアップ

Fuse Online を定期的にバックアップするよう設定できます。

  • Fuse Online がコネクションとインテグレーションを保存する内部 PostgreSQL データベース。
  • syndesis-operator によって作成され、Fuse Online の実行に必要な OpenShift リソース。これには、設定マップ、デプロイメント設定、およびサービスアカウントが含まれますが、これらに限定されません。

Fuse Online をインストールする前に Fuse Online 環境のバックアップを設定するか、Fuse Online 環境の設定を変更してバックアップを有効することができます。

Fuse Online がバックアップを実行するように設定されている場合、Fuse Online はデータを単一のファイルに圧縮し、そのファイルを指定した Amazon S3 バケットにアップロードします。新しい Fuse Online 環境 (コネクションやインテグレーションが定義されていない) にバックアップを適用して、バックアップした Fuse Online 環境を復元できます。

前提条件

  • OCP がオンサイトで稼働している必要があります。
  • oc クライアントツールがインストール済みで、Fuse Online が稼働中または稼働予定の OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • AWS アクセスキーと AWS シークレットキーが必要です。これらのクレデンシャルの取得に関する詳細は、「IAM ユーザーのアクセスキーの管理」を参照してください。
  • アップロードする S3 バケットが存在する AWS リージョンを知っておく必要があります。
  • バックアップのアップロード先の S3 バケットの名前を知っておく必要があります。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. バックアップを設定する Fuse Online 環境を稼働中または稼働予定の OpenShift プロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. OpenShift シークレットを作成します。コマンドラインで以下を行います。

    • 以下のコマンド形式で syndesis-backup-s3 を指定します。
    • AWS 変数を、AWS アクセスキー、AWS シークレットキー、バケットがある AWS リージョン、およびバケットの名前に置き換えます。

      以下のコマンド形式を使用してシークレットを作成します。

      oc create secret generic syndesis-backup-s3 \
      --from-literal=secret-key-id="my-aws-access-key" \
      --from-literal=secret-access-key="my-aws-secret-key" \
      --from-literal=region="aws-region" \
      --from-literal=bucket-name="aws-bucket-name"

      このシークレットは、バックアップジョブの実行中に存在する必要があります。

  4. Fuse Online がインストールされていない場合は、default-cr.yml ファイルを編集してバックアップを有効にする必要があります。「Fuse Online をインストールする前に syndesis カスタムリソースファイルを編集」を参照してください。Fuse Online のインストール後、カスタムリソースに指定したスケジュールに応じてバックアップジョブが発生します。

    Fuse Online が稼働している場合、syndesis カスタムリソースを編集する必要があります。

    1. 以下のコマンドを実行して、エディターで syndesis カスタムリソースを開きます。

      oc edit syndesis

    2. 以下を spec: の下に追加します。

      backup:
        schedule: my-backup-interval

      my-backup-interval をバックアップの間隔に置き換えます。以下を参照して、バックアップの間隔を指定する方法を判断してください。

      • cron を使用して事前設定されたスケジュール (英語)
      • cron で設定する間隔 (英語)

        間隔の前に @ 記号を指定しないでください。たとえば、毎日バックアップを行うよう設定するには、カスタムリソースに以下のような記述が含まれるようにします。

        apiVersion: syndesis.io/v1beta1
        kind: Syndesis
        metadata:
          name: app
        spec:
          backup:
            schedule: daily
  5. ファイルを保存します。

    これにより、バックアップジョブが syndesis-operator に追加されます。

結果

Fuse Online がすでに稼働している場合、定義したスケジュールに応じて Fuse Online のバックアップジョブが実行されます。

次のステップ

Fuse Online をインストールする必要がある場合は、default-cr.yml ファイルを編集して、その他の必要な機能を有効にしたり、他のパラメーターを設定したりします。Default-cr.yml ファイルにすべての設定がある場合は、OpenShift シークレットの作成時に指定したプロジェクトで Fuse Online をインストールします。

4.5. Fuse Online 環境の復元

コネクションまたはインテグレーションが作成されていない新しい Fuse Online 環境で、Fuse Online 環境のバックアップを復元できます。Fuse Online 環境の復元後、復元されたコネクションを編集してパスワードを更新する必要があります。その後、復元されたインテグレーションをパブリッシュできます。

前提条件

  • OCP がオンサイトで稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online 環境を復元する OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • データを定期的にバックアップし、Amazon S3 にデータをアップロードするよう設定された Fuse Online 環境が必要です。
  • バックアップされた Fuse Online 環境と、バックアップを復元する Fuse Online 環境で、Fuse Online のリリース番号 (例: 7.6) が同じである必要があります。
  • Fuse Online バックアップが含まれる AWS バケットにアクセスする権限が必要です。
  • バックアップを復元する Fuse Online 環境は新しい Fuse Online インストールである必要があります。つまり、コネクションやインテグレーションは定義されていません。Fuse Online 環境にコネクションとインテグレーションがあるプロジェクトで復元する場合、Fuse Online 環境をアンインストールし、新しい Fuse Online 環境をインストールする必要があります。

手順

  1. Amazon S3 から必要なバックアップファイルをダウンロードします。詳細は、AWS ドキュメントの「S3 バケットからオブジェクトをダウンロードする方法」を参照してください。
  2. zip ファイルの内容を展開します。たとえば、以下のコマンドラインを実行すると、7.6-2020-03-15-23:30:00.zip ファイルが展開され、内容が /tmp/fuse-online-backup フォルダーにコピーされます。

    unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backup

  3. 以下の例のように、Fuse Online データベースをデコードします。

    base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
  4. 新しい Fuse Online 環境を稼働している OpenShift プロジェクトに切り替えます。たとえば、新しい Fuse Online 環境が my-fuse-online-project にある場合は、以下のコマンドを実行します。

    oc project my-fuse-online-project

    これ以降の手順では、新しい Fuse Online 環境が含まれるプロジェクトに切り替えたことを想定します。

  5. データベース Pod の名前を取得します。

    復元された Fuse Online 環境で、提供された内部 PostgreSQL データベースが使用される場合は、以下のコマンドを実行し、データベース Pod の名前を取得します。

    oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'

    復元された Fuse Online 環境で外部データベースが使用される場合、そのデータベースの Pod の名前を取得する方法を知っている必要があります。

    これ以降のコマンドでは、DATABASE_POD_NAME を復元された Fuse Online 環境のデータベース Pod の名前に置き換えます。

  6. データベースにアクセスしているコンポーネントをスケールダウンします。

    1. syndesis-operator をスケールダウンし、他のコンポーネントをスケールダウンできるようにします。

      oc scale deployment syndesis-operator --replicas 0

    2. syndesis-server および syndesis-meta コンポーネントをスケールダウンします。

      oc scale dc syndesis-server --replicas 0
      oc scale dc syndesis-meta --replicas 0

  7. データベースのバックアップファイルを Fuse Online データベース Pod に送信します。

    oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
  8. Fuse Online データベース Pod でリモートシェルセッションを開きます。

    oc rsh DATABASE_POD_NAME

  9. 以下のコマンドを実行して Fuse Online データベースを復元します。

    psql コマンドによってデータベースのパスワードが要求され、復元された Fuse Online 環境で提供された内部 PostgreSQL データベースが使用される場合は、syndesis-db デプロイメント設定の POSTGRESQL_PASSWORD 環境変数でパスワードを確認できます。復元された Fuse Online 環境で外部データベースが使用される場合、パスワードを知っている必要があります。

    cd /tmp
    psql -c 'DROP database if exists syndesis_restore'
    psql -c 'CREATE database syndesis_restore'
    pg_restore -v -d syndesis_restore /tmp/syndesis-db
    psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'"
    psql -c 'DROP database if exists syndesis'
    psql -c 'ALTER database syndesis_restore rename to syndesis'

    Fuse Online が復元されるはずです。RSH セッションを終了できます。

    exit

  10. Fuse Online コンポーネントをスケールアップします。

    oc scale deployment syndesis-operator --replicas 1

    syndesis-operator1 にスケールアップすると、スケールダウンされた他の Pod がスケールアップされます。スケールアップされない場合は手作業でスケールアップできます。

    oc scale dc syndesis-server --replicas 1
    oc scale dc syndesis-meta --replicas 1

  11. サーバーは復元された各インテグレーションを開始しようとしますが、最初にコネクションを更新する必要があります。したがって、復元されたインテグレーションが稼働していないことを確認します。

    1. Fuse Online コンソールルートを取得します。

      echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
    2. Fuse Online をインストールする権限を持つ OpenShift ユーザーアカウントで、Fuse Online コンソールにログインします。
    3. インテグレーションのリストを表示し、すべてのインテグレーションが停止したことを確認します。稼働しているインテグレーションがある場合は停止します。
  12. パスワードのある各コネクションを更新し、この Fuse Online 環境の正しいパスワードを適用します。以下の手順は、提供された PostgresDB コネクションでこの作業を行う方法になります。

    1. この復元された Fuse Online 環境が稼働しているプロジェクトの OpenShift コンソールで、PostgresDB コネクションのパスワードを取得します。syndesis-db では、パスワードは環境変数にあります。
    2. Fuse Online コンソールでコネクションを表示します。
    3. PostgresDB コネクションを編集します。
    4. PostgresDB コネクションのコネクション詳細で、取得したパスワードを Password フィールドに貼り付けます。
  13. 各インテグレーションで Configuration Required が表示されないことを確認します。表示される場合は、インテグレーションを編集して問題を解決します。インテグレーションのすべてのステップが正しいければ、インテグレーションをパブリッシュします。

    Build ステップの直後に、インテグレーションが Stopped 状態にロールバックされ続ける場合は、デプロイメントを削除して、設定が必要ないことを確認し、再度インテグレーションのパブリッシュを試行します。

    ログに記録された以下のメッセージは、無視しても問題はありません。

    Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations

4.6. Fuse Online のアップグレード

時々、パッチとセキュリティー修正が組み込まれた新しいアプリケーションイメージが Fuse Online に対してリリースされます。これらの更新は、Red Hat のエラータ更新チャネルを介して通知されます。その後、Fuse Online イメージをアップグレードできます。

OCP 4.x の場合は、「 OperatorHub を使用した Fuse Online のアップグレード」の手順にしたがって、Fuse Online 7.9 から 7.10 にアップグレードし ます。

OCP 3.11 の場合は、「インストールスクリプトを使用した Fuse Online のアップグレード」の説明にしたがって、インストールスクリプトを使用して Fuse Online 7.9 から 7.10 にアップグレードします。

Fuse Online 7.10 へのアップグレードでは、既存のインテグレーションを変更する必要があるかどうかを決定する必要があります。変更が不要であっても、Fuse Online のアップグレード時に、稼働中のインテグレーションを再パブリッシュする必要があります。

4.6.1. OperatorHub (OCP 4.x) を使用した Fuse Online のアップグレード

OpenShift OperatorHub を使用して Fuse Online 7.9 から 7.10 にアップグレードします。

  • Fuse Online 7.9.x から Fuse Online 7.10.1 にアップグレードする場合は、リリースノートの Upgrading from Fuse Online 7.9.x to 7.10.1 requires manual upgrade steps の説明にしたがって、最初に Fuse Online 7.10.0 に手動でアップグレードする必要があります。
  • Fuse Online 7.10 には OpenShift Container Platform (OCP) 4.6 以降が必要です。OCP 4.5 以前を使用している場合、Fuse Online 7.10 にアップグレードするには、OCP 4.6 以降にアップグレードする必要があります。
  • OCP 4.9 では、7.10 にアップグレードすると、Fuse Online Operator のアップグレードプロセス時に以下の警告が表示されます。

    W1219 18:38:58.064578 1 warnings.go:70] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress

    この警告は、クライアント(Fuse Online が Kubernetes/OpenShift API 初期化コードに使用する)が非推奨の Ingress バージョンにアクセスするために表示されます。この警告は、非推奨の API が完全に使用されていることを示すものでは なく、Fuse Online7.10 へアップグレードすることに問題はありません。

Fuse Online 7.9 から、または 7.10 の初期バージョンから、Fuse Online 7.10 の新しいバージョンへのアップグレードプロセスは、Fuse Online のインストール時に選択した Approval Strategy によって異なります。

  • Automatic (自動) 更新の場合、新しいバージョンの Fuse Online Operator が使用できるようになると、人的な介入なしで OpenShfit Operator Lifecycle Manager (OLM) によって、Fuse Online の稼働中のインスタンスが自動的にアップグレードされます。
  • Manual (手動) 更新の場合、Operator の新しいバージョンが使用できるようになると、OLM によって更新リクエストが作成されます。クラスター管理者は、OpenShift ドキュメントの「Manually approving a pending Operator upgrade」セクションで説明されているように、更新リクエストを手動で承認して Fuse Online Operator を新しいバージョンに更新する必要があります。

インフラストラクチャーのアップグレード中およびアップグレード後も、既存のインテグレーションは引き続き Fuse Online ライブラリーおよび依存関係の古いバージョンで実行されます。

更新された Fuse Online バージョンで既存のインテグレーションを実行するには、インテグレーションを再パブリッシュする必要があります。

4.6.2. インストールスクリプト (OCP 3.11) を使用した Fuse Online のアップグレード

OCP 3.11 の場合、以下のアップグレードにおけるインストールスクリプトの手順は同じになります。

  • Fuse Online 7.9 から Fuse Online 7.10 へ
  • Fuse Online 7.10 バージョンから Fuse Online 7.10 のさらに新しいバージョンへ

前提条件

  • オンサイトで OCP 3.11 に Fuse Online バージョン 7.9 をインストールして実行しているか、または OCP 3.11 に Fuse Online バージョン 7.10 をインストールして実行していて、新しいアプリケーションイメージにアップグレードする必要がある。

    以前のバージョンの場合は以下が必要になります。

    • OCP で Fuse Online バージョン 7.8 を実行している場合は、7.9 にアップグレード してから 7.10 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.7 を実行している場合は、7.8 にアップグレード してから 7.9 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.6 を実行している場合は、7.7 にアップグレード してから 7.8 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.5 を実行している場合は、7.6 にアップグレード してから 7.7 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.4 を実行している場合は、7.5 にアップグレード してから 7.6 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.3 を実行している場合は、7.4 にアップグレード してから 7.5 にアップグレードする必要があります。
    • OCP で Fuse Online バージョン 7.2 を実行している場合は、7.3 にアップグレード する必要があります。
    • OCP で Fuse Online バージョン 7.1 を実行している場合は、7.2 にアップグレードする必要があります。
  • oc クライアントツールをインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
  • クラスター管理者権限が必要です。この手順の最初の 2 つのステップで必要になります。

手順

  1. Docker の制限エラーが発生しないようにするため、クラスター管理者は、Access Docker images before an upgrade の説明にしたがって、Docker イメージへのアクセスを設定します。
  2. クラスター管理者は、Fuse Online パッケージをダウンロードしてして、特定のプロジェクトでユーザーに対して Fuse Online のアップグレード権限を割り当てる必要があります。

    1. 以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。

      https://github.com/syndesisio/fuse-online-install/releases/tag/1.13

      ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。fuse-online-install-1.13 ディレクトリーには、Fuse Online のアップグレード用のスクリプトとサポートファイルが含まれます。

    2. 展開したアーカイブが含まれるディレクトリーに移動します。以下に例を示します。

      cd fuse-online-install-1.13

    3. 以下のように、クラスター管理者アカウントで OpenShift にログインします。

      oc login -u admin -p admin

    4. Fuse Online をアップグレードする必要のある OpenShift プロジェクトに切り替えます。

      oc project fuse-online-project

    5. Fuse Online のカスタムリソース定義を更新します。

      bash install_ocp.sh --setup

    6. そのプロジェクト内だけで、Fuse Online のアップグレード権限を割り当てます。たとえば、以下のコマンドは、developer ユーザーに、Fuse Online のアップグレード権限を割り当てます。クラスター管理者がこのコマンドを実行した後に、developer ユーザーは対象のプロジェクトでのみ (fuse-online-project) Fuse Online をアップグレードできます。

      bash install_ocp.sh --grant developer

  3. Fuse Online のアップグレード権限を割り当てられたユーザーは、アプリケーションを実行できます。

    1. 以下のように、OpenShift にログインします。

      oc login -u developer

    2. 以下のように、Fuse Online をアップグレードするプロジェクトに切り替えます。

      oc project fuse-online-project

    3. アップグレードするバージョンを確認するには、以下のように --version オプションを指定して更新スクリプトを実行します。

      bash update_ocp.sh --version

    4. 以下のような更新スクリプトを実行します。

      bash update_ocp.sh

      このスクリプトの詳細を確認するには、$ bash update_ocp.sh --help を実行します。

      インフラストラクチャーのアップグレード中およびアップグレード後も、既存のインテグレーションは引き続き Fuse Online ライブラリーおよび依存関係の古いバージョンで実行されます。

  4. 次のように稼働中の Fuse Online インテグレーションをアップグレードします。

    1. Fuse Online で、アップグレードするインテグレーションを選択します。
    2. Edit を選択します。
    3. Publish を選択してインテグレーションを再パブリッシュします。

    インテグレーションの再パブリッシュを行うと、最新の Fuse Online 依存関係を使用して再ビルドが強制されます。

4.6.3. Fuse Online インテグレーションのアップグレード

Fuse Online 7.10 にアップグレードする場合、既存のインテグレーションに変更を加える必要があるかどうかを判別する必要があります。

Camel Migration Considerations」に記載の Apache Camel の更新を確認します。

インテグレーションで変更が必要ない場合でも、インフラストラクチャーのアップグレード中およびアップグレード後に、引き続き古いバージョンの Fuse Online ライブラリーおよび依存関係で既存のインテグレーションが実行されるため、稼働中のインテグレーションを再パブリッシュする必要があります。更新されたバージョンで実行するには、再パブリッシュする必要があります。

手順

Fuse Online 環境でインテグレーションを再パブリッシュするには、以下を行います。

  1. Fuse Online の左側のナビゲーションパネルで Integrations をクリックします。
  2. インテグレーションごとに以下を行います。

    1. インテグレーションエントリーの右側で three vertical dots をクリックし、Edit を選択します。
    2. Fuse Online で編集するインテグレーションが表示されたら、右上の Publish をクリックします。

パブリッシュを行うと、最新の Fuse Online 依存関係を使用して再ビルドが強制されます。

注記

インテグレーションの要素に、更新が必要な新しい依存関係がある場合、Fuse Online ユーザーインターフェースに警告が表示されます。

4.7. OCP プロジェクトからの Fuse Online のアンインストール

プロジェクトやプロジェクトの内容を削除せずに、OCP プロジェクトから Fuse Online をアンインストールできます。Fuse Online のアンインストール後、稼働中のインテグレーションは継続されますが、編集または再パブリッシュできなくなります。

前提条件

  • Fuse Online がインストールされている OCP プロジェクトが必要です。
  • Fuse Online がインストールされている他の OpenShift プロジェクトで使用するインテグレーションをエクスポートしてある必要があります。必要な場合は、「インテグレーションのエクスポート」を参照してください。

手順

  1. Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u developer -p developer

  2. アンインストールする Fuse Online 環境を実行している OpenShift プロジェクトに切り替えます。以下に例を示します。

    oc project my-fuse-online-project

  3. Fuse Online インフラストラクチャーを削除します。

    oc delete syndesis app

  4. syndesis-operator DeploymentConfig および ImageStream リソースを削除します。

    oc delete deployment/syndesis-operator
    oc delete is/syndesis-operator

4.8. Fuse Online が含まれる OCP プロジェクトの削除

Fuse Online がインストールされている OpenShift プロジェクトを削除すると、プロジェクトのすべてが削除されます。これには、定義されたすべてのインテグレーションと、稼働中のすべてのインテグレーションが含まれます。

前提条件

  • Fuse Online がインストールされている OCP プロジェクトが必要です。
  • Fuse Online がインストールされている他の OpenShift プロジェクトで使用するインテグレーションをエクスポートしてある必要があります。必要な場合は、「インテグレーションのエクスポート」を参照してください。

手順

oc delete project コマンドを実行します。たとえば、名前が fuse-online-project である OpenShift プロジェクトを削除するには、以下のコマンドを入力します。

oc delete project fuse-online-project

第5章 Fuse Online のパブリック REST API エンドポイントの呼び出し方法

OCP で Fuse Online を稼働している場合、各 Fuse Online 環境でパブリック REST API エンドポイントを公開できます。継続的インテグレーション/継続的デリバリー (CI/CD) の外部ツールにより、これらのエンドポイントを呼び出して、Fuse Online 環境のリソースを操作することができます。

外部ツールでこれらのエンドポイントを呼び出しできるようにするには、先に各 Fuse Online 環境で、OpenShift 管理者が Fuse Online のパブリック REST API エンドポイントを公開する必要があります。API エンドポイントを呼び出すコマンドで、エンドポイントが動作する Fuse Online 環境の URL、シークレットトークン、および承認トークンを指定します。

詳細は以下のトピックを参照してください。

5.1. 外部ツールによって使用される Fuse Online パブリック REST API の公開

オンサイトの OCP で Fuse Online を実行している場合、外部ツールを使用して Fuse Online 環境から別の Fuse Online 環境に Fuse Online インテグレーションをコピーすることがあります。外部 CI/CD ツールは、Jenkins ジョブ、Ansible Playbook、cron ベースのシェルスクリプトなどです。たとえば、Ansible Playbook ではインテグレーションを Fuse Online 開発環境からエクスポートし、Fuse Online テスト環境にインポートすることができます。

これを有効にするには、各 Fuse Online 環境の Fuse Online パブリック REST API エンドポイントを公開する必要があります。つまり、Fuse Online がインストールされている OpenShift プロジェクトごとに、ここの手順を繰り返す必要があります。

前提条件

  • Fuse Online がインストールされている OCP プロジェクトが必要です。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • 外部 CI/CD ツールを使用しており、マーク付けされたインテグレーションを Fuse Online 環境から別の Fuse Online 環境にコピーする状況です。
  • syndesis-operator grant コマンドの実行には、クラスターの管理者権限が必要です。クラスターの管理者権限はなく、OpenShift プロジェクトの管理者権限があるユーザーは、他のコマンドを実行できます。

手順

  1. クラスターの管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    oc login -u admin -p admin

    クラスターの管理者権限は、syndesis-operator grant コマンドにのみ必要ですが、クラスター管理者がすべての手順を実行することを想定します。

  2. Fuse Online が稼働している OpenShift プロジェクトに切り替えます。このプロジェクトでのみパブリック API を公開します。以下に例を示します。

    oc project fuse-online-north

  3. ロールを syndesis-public-oauthproxy サービスアカウントに付与します。OpenShift プロジェクトでは、このサービスアカウントを使用して OAuth プロキシーサービスを実行します。クラスターの管理権限を持つユーザーアカウントを指定します。以下に例を示します。

    syndesis-operator grant --user developer

    このコマンドは、クラスターロールとクラスターのロールバインディングを作成し、これを syndesis-public-oauthproxy サービスアカウントに割り当てます。ClusterRoleBinding は、API を公開する OpenShift プロジェクトの名前を指定します。この例では、名前は fuse-online-north になります。

    • ClusterRole: syndesis-auth-delegator
    • ClusterRoleBinding: syndesis-fuse-online-north-auth-delegator
  4. クライアントサービスアカウントを作成し、Fuse Online のパブリック API にアクセスする権限を付与します。

    1. 選択した名前で OpenShift サービスアカウントを作成します。たとえば、次のコマンドを実行すると cicd-client サービスアカウントが作成されます。

      oc create serviceaccount cicd-client

      パブリック API エンドポイントを呼び出すコマンドは、このアカウントを使用してパブリック API にアクセスします。また、このサービスアカウントは、API エンドポイントへの呼び出しで指定する必要のあるシークレットトークンを取得するために必要です。この説明は「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

    2. Fuse Online のパブリック API にアクセスするための権限をクライアントサービスアカウントに付与します。Fuse Online がインストールされた OpenShift プロジェクトの名前が fuse-online-north で、API サービスにアクセスするために作成したサービスアカウントの名前が cicd-client である場合、以下のコマンドを実行します。

      oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
  5. syndesis カスタムリソースを編集します。

    1. 以下のコマンドを実行します。通常、エディターでリソースが開かれます。

      oc edit syndesis

    2. リソースを編集して、パブリック API を有効にし、routeHostname の設定としてエンドポイントを呼び出すための Fuse Online 環境のパブリックアドレスを指定します。Fuse Online のインストールに使用された default-cr.yml ファイルで、パブリック API が有効化され、エンドポイントのルートホスト名が指定されている場合は、リソースを編集する必要はありません。

      クラスターのセットアップにより、指定する必要のあるパブリックアドレスが決定されます。詳細は、OpenShift ドキュメントの「Routes」を参照してください。以下の例では、ルートのホスト名は minishift クラスターに対して有効です。

      spec:
        addons:
          publicApi:
            enabled: true
            routeHostname: public-syndesis.192.168.64.63.nip.io
    3. リソースを保存するか、そのまま閉じます。

      syndesis カスタムリソースを保存することにより、Fuse Online のインストールを担う syndesis-operator がパブリック API OAuth プロキシーサービスをデプロイするようトリガーされます。

      syndesis カスタムリソースを編集する必要がなければ、パブリック API OAuth プロキシーサービスはすでにデプロイされています。これは、Fuse Online のインストールに使用された default-cr.yml ファイルで publicApi が有効化され、そのルートが指定されたためです。

結果

OpenShift で、以下を確認できるようになります。

  • syndesis-public-oauthproxy デプロイメント設定の Pod。
  • syndesis-public-oauthproxy サービス。
  • syndesis-public-api ルート。

この手順を実行した OpenShift プロジェクトでは、外部 CI/CD ツールで Fuse Online のパブリック REST API エンドポイントを使用して Fuse Online インテグレーションをエクスポートまたはインポートできます。

次のステップ

5.2. Fuse Online パブリック REST API エンドポイントのベース URL の説明

Fuse Online パブリック REST API エンドポイントのベース URL は、以下のようになります。

https://public-syndesis.192.168.64.42.nip.io/api/v1/public

Fuse Online 環境ごとに、ベース URL の最初の部分は異なります。OpenShift アプリケーションを作成して、これによりパブリック REST API エンドポイントへのアクセスを有効にする Fuse Online パブリック OAuth プロキシーを実行する場合、Fuse Online 環境のパブリックアドレスを指定します。このアドレスは、Fuse Online 環境で動作するエンドポイントを呼び出すベース URL の最初の部分です。以下に例を示します。

https://public-syndesis.192.168.64.42.nip.io

ベース URL の 2 つ目の部分は、すべての Fuse Online 環境で同じです。

/api/v1/public

Fuse Online のパブリック REST API は、3 つのリソースで動作するエンドポイントを提供します。

  • /integration は、ベース URL で識別される Fuse Online 環境にあるインテグレーションです。
  • /connections は、ベース URL で識別される Fuse Online 環境にあるコネクションです。
  • /environments は、ベース URL で識別される Fuse Online 環境にある環境ラベルのセットです。

5.3. パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得

Fuse Online のパブリック REST API エンドポイントを呼び出すコマンドで、シークレットトークンを指定する必要があります。このトークンは、任意の Fuse Online 環境で Fuse Online パブリック REST API を公開したときに作成したサービスアカウントのものです。

前提条件

  • オンサイトの OCP で Fuse Online が稼働している必要があります。
  • エンドポイントを呼び出す Fuse Online 環境によって提供されるパブリック REST API を公開している必要があります。

手順

  1. この Fuse Online 環境のパブリック REST API を公開したときに作成したサービスアカウントのシークレットトークンの名前を取得します。たとえば、cicd-client がサービスアカウントの名前である場合、以下のコマンドを実行します。

    oc describe serviceaccount cicd-client

    これにより、以下のような 2 つのトークンの名前が含まれる、cicd-client サービスアカウントの情報の一覧が表示されます。

    Tokens:      cicd-client-token-gxb25
                 cicd-client-token-gxdnv
  2. いずれかのトークンの内容を表示します。以下に例を示します。

    oc describe secret cicd-client-token-gxb25

    これにより、token: とそれに続く長いランダムな文字を表示する Data セクションなど、情報の一覧が表示されます。これはサービスアカウントの 2 つのシークレットトークンの 1 つです。

  3. シークレットトークンをコピーし、ファイルに貼り付けて保存します。

結果

curl コマンドで指定するシークレットトークンは次のようになります。

-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'

次のステップ

保存されたファイルから、指定の Fuse Online 環境のパブリック REST API エンドポイントを呼び出すコマンドにトークンをコピーします。

5.4. インテグレーション ID の検索方法

特定のインテグレーションのみで動作する Fuse Online のパブリック REST API エンドポイントを呼び出すコマンドで、エンドポイントが操作するインテグレーションの ID を指定する必要があります。以下のいずれかを指定します。

  • インテグレーションの名前

    これは、Fuse Online コンソールで表示されているとおりに正確に指定する必要があります (例: timer-to-log) 。インテグレーション名にスペースまたは特殊文字がある場合は、HTML エスケープ文字を指定する必要があります。

  • 内部インテグレーション ID

    この ID は、インテグレーションの概要を表示するときに Fuse Online コンソール URL に含まれます。インテグレーションの概要を表示するには、左側のナビゲーションパネルで Integrations をクリックします。インテグレーションのリストで、ID が必要なインテグレーションのエントリーをクリックします。

    ブラウザーでインテグレーションの概要が表示され、URL の末尾に /integrations/i-Lauq5ShznJ4LcuWwiwcz のような内容が表示されます。このインテグレーションの ID は i-Lauq5ShznJ4LcuWwiwcz です。

5.5. Fuse Online パブリックエンドポイントを呼び出す curl コマンドを指定するための形式

Fuse Online のパブリック REST API エンドポイントを呼び出す curl コマンドの形式は、以下のようになります。

curl [options] \
     -H "Content-Type: <media-type>" \
     -H "SYNDESIS-XSRF-TOKEN: awesome" \
     -H `Authorization: Bearer <token>` \
     <base-url><endpoint> \
     [--request <HTTP-method>] \
     [-d <data>] \
     [-o <filename>]

表5.1 curl コマンドオプション

オプション説明

[options]

選択した curl オプションを指定します。

<media-type>

エクスポートおよびインポートエンドポイントに、multipart/form-data を指定します。他のすべてのエンドポイントに、application/json を指定します。

<token>

パブリック REST API を公開するときに作成した OpenShift サービスアカウントのシークレットトークンを指定します。

<base-url>

エンドポイントが操作するインテグレーション、コネクション、または環境ラベルのある Fuse Online 環境のベース URL を指定します。

<endpoint>

呼び出すエンドポイントを指定します。

[--request <HTTP-method>]

任意で、HTTP メソッドを指定します (例: --request POST)。

[-d <data>]

任意で、呼び出されるエンドポイントに応じて、エンドポイントが必要とする引数を指定します。たとえば、インテグレーションの環境ラベルを test に変更するには、-d `test` を指定します。

[-o <filename>]

任意で、出力が含まれるファイルの名前を指定する必要がある場合には、 curl-o オプションとファイル名を指定します (例: -o export.zip) 。

以下の curl コマンドは、指定する 1 つまたは複数の環境に対してインテグレーションをマーク付けする Fuse Online のパブリック API エンドポイントを呼び出します。

curl -v -k -L -H "Content-Type: application/json" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/timer-to-log/tags -d '["test","staging"]' --request PUT

サンプル curl コマンドでは、以下のとおりです。

  • コマンドの最後にある URL は、呼び出すエンドポイントの Fuse Online 環境を識別します。
  • timer-to-log は、指定した環境の timer-to-log インテグレーションをマーク付けすることを示します。
  • test および staging を指定すると、これらの環境の timer-to-log インテグレーションがマーク付けされます。

第6章 外部ツールを使用した CI/CD の Fuse Online インテグレーションのエクスポート/インポート

オンサイトの OCP で Fuse Online を稼働している場合、CI/CD (継続的インテグレーション/継続的デプロイメント) パイプラインを特定のインテグレーションで実行することがあります。これを実装するには、以下のタスクを完了する必要があります。

  • Fuse Online コンソールで、インテグレーションに CI/CD パイプラインをマーク付けします。
  • OpenShift で、Fuse Online のパブリック API を公開します
  • 外部ツールを使用して、インテグレーションをエクスポートおよびインポートする Fuse Online パブリック API エンドポイントを呼び出します。

詳細は以下のトピックを参照してください。

6.1. CI/CD のインテグレーションのマーク付け

オンサイトの OCP で Fuse Online を稼働している場合、パイプラインのインテグレーションを特定するために、指定する CI/CD 環境のインテグレーションをマーク付けします。これにより、タイムスタンプ付きのラベルがインテグレーションに適用されます。バックエンド CI/CD Fuse Online のパブリック API は、ラベルおよびそのタイムスタンプを使用してインテグレーションをフィルタリングし、パイプラインが動作する必要のあるインテグレーションを見つけます。

たとえば、Fuse Online で test1 環境のインテグレーションをマーク付けするとします。その後、Fuse Online のパブリック API エクスポートエンドポイントを呼び出して、test1 環境ラベルがあるインテグレーションをエクスポートできます。エンドポイントによって test1 インテグレーションがをエクスポートファイルにパッケージ化され、そのファイルが返されます。test1 インテグレーションを Fuse Online テスト環境にコピーするには、パブリック API インポートエンドポイントを呼び出し、エクスポートした test1 インテグレーションが含まれるファイルを提供します。

ここで、以前 test1 環境に対してマーク付けしたインテグレーションを繰り返し更新し、パブリッシュするとします。インテグレーションが新しいバージョンになり、更新されたバージョンを test1 環境にエクスポートするとします。すでにインテグレーションが test1 環境に対してマーク付けされている場合でも、再度マーク付けする必要があります。インテグレーションを再度マーク付けすると、test1 環境ラベルのタイムスタンプが更新されます。これは、インテグレーションが更新され、エクスポートできるようになったことを外部ツールに示します。

インテグレーションを再度マーク付けする、つまりインテグレーションにすでに割り当てられた環境ラベルのタイムスタンプを更新するには、「CI/CD のインテグレーションのマーク付け」の手順にしたがいます。CI/CD ダイアログで、対象の環境のチェックボックスがすでに選択されているはずなので、Save をクリックします。

6.2. CI/CD のインテグレーションのマーク付け

オンサイトの OCP で Fuse Online を稼働している場合、パイプラインのインテグレーションを特定するために、指定する CI/CD 環境のインテグレーションをマーク付けします。これにより、ラベルがインテグレーションに適用されます。

前提条件

Fuse Online がインストールされている OCP プロジェクトが必要です。

手順

  1. 左側の Fuse Online ナビゲーションパネルで Integrations をクリックします。
  2. インテグレーションのリストで、マーク付けするインテグレーションのエントリーの右にある More Options をクリックしてポップアップメニューを表示し、Manage CI/CD をクリックします。
  3. 表示されるダイアログで、以下のいずれかを行います。

    • このインテグレーションをマーク付けする環境が表示されている場合、その環境の左側にあるチェックボックスを選択します。
    • このインテグレーションをマーク付けする環境がすでに選択されている場合は、その環境を選択したままにしておきます。
    • 環境のラベルを作成する必要がある場合、Manage CI/CD をクリックすると、新しい環境ラベルを作成するダイアログが表示されます。必要なラベルを作成してから、この手順に戻り、インテグレーションをマーク付けします。

    Fuse Online によって、選択した環境ラベルがインテグレーションに適用されます。任意の数の環境ラベルをインテグレーションに適用できます。

  4. Save をクリックします。

結果

Fuse Online は、選択した環境のリリースのインテグレーションにラベルを付けます。バックエンド API はインテグレーションをフィルタリングして、たとえば test1 ラベルが付いたインテグレーションなどの検索を行うことができます。

次のステップ

パイプラインが特定の環境に対してマーク付けされたインテグレーションで動作できるようにするには、先に Fuse Online のパブリック API エンドポイントを公開する必要があります。「外部ツールによって使用される Fuse Online パブリック REST API の公開」を参照してください。

6.3. CI/CD の環境ラベルの管理

Fuse Online コンソールで CI/CD 環境ラベルを作成、変更、または削除できます。CI/CD 環境ラベルは、CI/CD パイプラインのインテグレーションに適用できる識別用のタグです。

前提条件

  • オンサイトの OCP で Fuse Online を稼働している必要があります。
  • 外部ツールでは、Fuse Online 環境ラベルを使用して CI/CD パイプラインのインテグレーションが識別される必要があります。

手順

  1. Fuse Online の左側のナビゲーションパネルで Integrations をクリックします。
  2. 右上の Manage CI/CD をクリックします。
  3. Manage CI/CD ページで以下を行います。

    • CI/CD 環境ラベルを作成するには、以下を実行します。

      1. Add New をクリックします。
      2. Add Tag Name ダイアログで、Tag Name 入力フィールドに新しい環境ラベルの名前を入力します (例: test1)。
      3. Save をクリックします。Manage CI/CD ページに、追加した環境ラベルの新しいエントリーがあります。
    • CI/CD 環境ラベルを変更するには、以下を実行します。

      1. CI/CD 環境ラベルの一覧内の、変更するラベルのエントリーで、Edit をクリックします。
      2. Edit Tag ダイアログで、必要に応じて名前を変更します。
      3. Save をクリックすると、環境ラベルのリストに更新された名前が表示されます。Fuse Online は、変更した環境ラベルですでにマーク付けされているすべてのインテグレーションに対し、更新された名前を適用します。
    • CI/CD 環境ラベルを削除するには、以下を実行します。

      1. CI/CD 環境ラベルの一覧内の、削除するラベルのエントリーで、Remove をクリックします。
      2. 確認ダイアログで、Yes をクリックします。Fuse Online は環境ラベルを削除し、削除される環境ラベルでマーク付けされたインテグレーションからもラベルを削除します。

次のステップ

新しい環境ラベルでインテグレーションをマーク付けします。「CI/CD のインテグレーションのマーク付け」を参照してください。

6.4. Fuse Online パブリック API エクスポートエンドポイントの呼び出し

外部ツールを使用して Fuse Online インテグレーションを別の Fuse Online 環境からコピーできるようにするには、先に以下のタスクを実行する必要があります。

  • Fuse Online では、CI/CD パイプラインのためにエクスポートするインテグレーションを特定の環境に対してマーク付けする必要があります。「CI/CD のインテグレーションのマーク付け」を参照してください。

    この要件には例外があります。1 回のエクスポート操作で Fuse Online 環境からすべてのインテグレーションをエクスポートする場合、特定の環境に対してインテグレーションがすでにマーク付けされているかどうかは重要ではありません。

  • Fuse Online のパブリック API が公開済みである必要があります。「外部ツールが使用する Fuse Online のパブリック REST API の公開」を参照してください。

特定環境のインテグレーションをエクスポートするためのエンドポイント

特定の環境に対してマーク付けされたインテグレーションをエクスポートするために、Fuse Online は以下の GET メソッドエンドポイントを提供します。

/public/integrations/{env}/export.zip

{env} をすでに作成した CI/CD 環境ラベルに置き換えてください。インテグレーションが特定の環境に対してマーク付けされている場合、Fuse Online はマーク付けされたタイミングを示すタイムスタンプで管理します。エンドポイントがマーク付けされてからエクスポートされていない場合に限り、インテグレーションをエクスポートするのがデフォルトの挙動です。たとえば、test1 環境に対してマーク付けされたインテグレーションをエクスポートする場合、エンドポイントは以下のようになります。

/public/integrations/test1/export.zip

このエンドポイントは、test1 環境ラベルがあり、以下の条件のいずれかを満たす、各インテグレーションをエクスポートします。

  • インテグレーションは、最後にエクスポートされた後にtest1 環境に対してマーク付けされた。
  • インテグレーションは test1 環境に対してマーク付けされ、エクスポートされていない。

エンドポイントはインテグレーションを export.zip ファイルにパッケージ化し、そのファイルを返します。

インテグレーションがエクスポートされた後に指定の環境に対してマーク付けされたインテグレーションがない場合は、エンドポイントは HTTP 204 応答を返し、返すものがないことを示します。

指定された環境に対してタグ付けされたすべてのインテグレーションをエクスポートするためのエンドポイント

エクスポートエンドポイントを呼び出して、指定する環境ラベルでタグ付けされた Fuse Online 環境のすべてのインテグレーションをエクスポートすることができます。エンドポイントは、インテグレーションが最後にエクスポートされた後に指定の環境に対してマーク付けされたかどうかをインテグレーションにエクスポートします。これにより、特定のタグがあるすべてのインテグレーションを別の Fuse Online 環境で簡単に複製できます。これを行うには、以下を実行します。

  • 環境ラベルがすでに作成されている必要があります。「CI/CD のインテグレーションのマーク付け」を参照してください。
  • エクスポートエンドポイントの呼び出しに ignoreTimestamp=true オプションを追加します。

以下に例を示します。

/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip

すべてのインテグレーションをエクスポートするためのエンドポイント

エクスポートエンドポイントを呼び出して、単一の Fuse Online 環境ですべてのインテグレーションをエクスポートすることができます。これにより、別の Fuse Online 環境ですべてのインテグレーションを簡単に複製できます。これを行うには、以下を実行します。

以下に例を示します。

/public/integrations/{env}/export.zip?all=true

{env} を CI/CD 環境ラベルに置き換えます。エンドポイントは、その環境に対してマーク付けされていない各インテグレーションに、指定した環境ラベルを割り当てます。

all=true オプションを追加する場合、エクスポートされたインテグレーションを export.zip ファイルにパッケージ化するように明示的に指定する必要もあります。以下に例を示します。

/public/integrations/test1/export.zip?all=true -o export.zip

このエンドポイントの呼び出しによって、以下のことが実行されます。

  • test1 環境の各インテグレーションがマーク付けされます。
  • export.zip ファイルのすべてのインテグレーションを返します。

    -o export.zip オプションを指定しない場合、エンドポイントは export.zip?all=true という名前のファイルを返します。

エクスポートエンドポイントに必要なカスタムヘッダー

エクスポートエンドポイントを呼び出すコマンドでは、以下のカスタムヘッダーを正確に指定する必要があります。

  • -H "Content-Type: multipart/form-data"
  • -H "SYNDESIS-XSRF-TOKEN: awesome"

    Fuse Online のパブリック API では、リクエストの認証にこのヘッダーが必要です。

  • -H 'Authorization: Bearer <token>'

    <token> を、Fuse Online のパブリック API の公開に使用される OpenShift サービスアカウントの作成時にファイルにコピーしたシークレットトークンに置き換えます。

インテグレーションをエクスポートする curl コマンドの例

以下は、インテグレーションをエクスポートする Fuse Online API エンドポイントを呼び出す curl コマンドの例です。

curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/dev1/export.zip

コマンドでは、以下のようになります。

  • コマンドの最後にある URL は、インテグレーションをエクスポートする Fuse Online 環境を識別します。
  • dev1 環境ラベルの指定内容は、dev1 環境に対してマーク付けされ、その後エクスポートされていないインテグレーションをエクスポートすることを示しています。

6.5. Fuse Online パブリック API インポートエンドポイントの呼び出し

Fuse Online のパブリック API エクスポートエンドポイントを呼び出して、1 つまたは複数のインテグレーションを取得できます。エクスポートされたインテグレーションを別の Fuse Online 環境にコピーするには、Fuse Online のパブリック API インポートエンドポイントを呼び出します。

インテグレーションをインポートするためのエンドポイント

インテグレーションをインポートするため、Fuse Online は以下の POST メソッドエンドポイントを提供します。

/public/integrations

以下の例では、エンドポイントは export.zip ファイルにあるインテグレーションをインポートし、testing 環境に対してタグを付けます。

/public/integrations -F data=@export.zip -F environment=testing --request POST

インポートエンドポイントは指定のインテグレーションを常にインポートします。最後にインポートされてからインテグレーションが変更されていない場合も、エンドポイントはそれをインポートします。

インポートエンドポイントに必要なカスタムヘッダー

インポートエンドポイントを呼び出すコマンドでは、以下のカスタムヘッダーを正確に指定する必要があります。

  • -H "Content-Type: multipart/form-data"
  • -H "SYNDESIS-XSRF-TOKEN: awesome"

    Fuse Online のパブリック API では、リクエストの認証にこのヘッダーが必要です。

  • -H 'Authorization: Bearer <token>'

    <token> を、Fuse Online のパブリック API の公開に使用される OpenShift サービスアカウントの作成時にファイルにコピーしたシークレットトークンに置き換えます。

インテグレーションをインポートする curl コマンドの例

以下は、インテグレーションをインポートする Fuse Online API エンドポイントを呼び出す curl コマンドの例です。

curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.45.nip.io/api/v1/public/integrations -F data=@export.zip -F environment=testing --request POST

このコマンドでは、以下のようになります。

  • コマンドの最後にある URL は、インテグレーションをインポートする Fuse Online 環境を識別します。
  • export.zip ファイルには、インポートされるインテグレーションが含まれます。
  • environment=testing を指定すると、エンドポイントによって、インポートされた各インテグレーションが testing 環境に対してマーク付けされます。
  • このコマンドにより multipart/form-data が作成されます。

第7章 Fuse Online のパブリック REST API エンドポイントの参照情報

このセクションでは、Fuse Online の各パブリック REST API エンドポイントについての参照情報を紹介します。詳細は、「Fuse Online パブリック REST API エンドポイントの呼び出し方法」を参照してください。

パブリック REST API エンドポイントを定義する OpenAPI ドキュメントは https://<fuse-online-host>/api/v1/openapi.json の Fuse Online 環境にて利用できます。ただし、本ドキュメントでは tags オブジェクトに 3 つのタグ (public-apiextensionsintegration-support) があると定義しています。Fuse Online の OpenShift パブリック OAuth プロキシープロセスの使用時は、public-api タグのみにアクセスできます。他の 2 つのタグは無視する必要があります。

7.1. インテグレーションの状態を取得するためのエンドポイント

このエンドポイントは、指定されたインテグレーションの状態を返します。状態には RunningStoppedPending、または Error があります。

メソッドとエンドポイント

GET

/public/integrations/{id}/state

表7.1 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須のパスパラメーター。状態を取得するインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

リクエストの例

以下の例では、エンドポイントは timer-to-log インテグレーションの状態を返します。

/public/integrations/timer-to-log/state

生成されるもの

application/json

応答の例

{"currentState":"Unpublished","stateDetails":{"id":"i-Lc0JLrsUFtBJfR_ylfEz:5","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz","deploymentVersion":5,"detailedState":{"value":"BUILDING","currentStep":2,"totalSteps":4},"namespace":"syndesis","podName":"i-timer-to-log-5-build","linkType":"LOGS"}}`これまで

7.2. インテグレーションの環境ラベルの一覧を取得するためのエンドポイント

このエンドポイントは、指定のインテグレーションに適用されている環境ラベル (タグ) を返します。

メソッドとエンドポイント

GET

/public/integrations/{id}/tags

表7.2 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須のパスパラメーター。環境ラベルを取得するインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法

リクエストの例

以下の例では、エンドポイントは timer-to-log インテグレーションの環境ラベルを返します。

/public/integrations/timer-to-log/tags

生成されるもの

application/json

応答の例

{"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}

7.3. インテグレーションをマーク付けし、未指定のタグを維持するためのエンドポイント

このエンドポイントは PATCH メソッドを使用して、指定された環境の指定のインテグレーションをマーク付けします。インテグレーションが指定の環境に対してすでにマーク付けされている場合、エンドポイントはその環境ラベルのタイムスタンプを更新します。インテグレーションが新しいリクエストで指定されていない環境に対してマーク付けされていた場合、エンドポイントはそのタグをそのまま残し、タイムスタンプを更新しません。

この PATCH エンドポイントは、他の既存のタグを削除しなくてもタグが追加されるため、CI/CD ツールに便利です。これは、指定環境に対してインテグレーションをマーク付けし、リクエストで指定されていない環境のタグを削除する、PUT エンドポイントとは対象的です。

メソッドとエンドポイント

PATCH

/public/integrations/{id}/tags

表7.3 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須。指定の環境に対してマーク付けするインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

追加のパラメーター

--request PATCH

 

PATCH メソッドを指定します。

-d [env{,…​}]

文字列

必須。指定のインテグレーションに追加する 1 つ以上の環境ラベルをコンマ区切りで指定します。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。「CI/CD のインテグレーションのマーク付け」を参照してください。

リクエストの例

以下の例では、エンドポイントは test2 および test3 環境に対して timer-to-log インテグレーションをマーク付けします。

public/integrations/timer-to-log/tags --request PATCH -d '["test2","test3"]'

生成されるもの

application/json

応答の例

{"test2":{"name":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3":{"name":"test3","releaseTag":"i-LcXydouUFtBJfR_ylgsz","lastTaggedAt":1555365010746},"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}

7.4. インテグレーションをマーク付けし、未指定のタグを削除するためのエンドポイント

このエンドポイントは PUT メソッドを使用して、指定された環境の指定されたインテグレーションをマーク付けします。インテグレーションが新しいリクエストで指定されていない環境に対してマーク付けされている場合、エンドポイントはその環境ラベルをインテグレーションから削除します。

未指定の環境ラベルを削除せずにインテグレーションをマーク付けするには、代わりに PATCH メソッドエンドポイントを呼び出します。

メソッドとエンドポイント

PUT

/public/integrations/{id}/tags

表7.4 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須。マーク付けするインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

追加のパラメーター

--request PUT

 

PUT メソッドを指定します。

-d [env{,…​}]

文字列

必須。コンマ区切りの環境ラベルを 1 つ以上指定します。エンドポイントは、これらの環境の指定したインテグレーションをマーク付けします。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。「CI/CD のインテグレーションのマーク付け」を参照してください。

リクエストの例

以下の例では、エンドポイントは test2 および test3 環境に対して timer-to-log インテグレーションをマーク付けします。インテグレーションが他の環境に対してマーク付けされていた場合、エンドポイントはこれらのタグをインテグレーションから削除します。

public/integrations/timer-to-log/tags --request PUT -d '["test2","test3"]'

生成されるもの

application/json

応答の例

{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555365085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}}

7.5. インテグレーションをパブリッシュするためのエンドポイント

このエンドポイントは指定されたインテグレーションをパブリッシュします。インテグレーションがすでに稼働中である場合、エンドポイントはインテグレーションを停止し、再度パブリッシュします。

メソッドとエンドポイント

POST

/public/integrations/{id}/deployments

表7.5 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須。パブリッシュするインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

リクエストの例

以下の例では、エンドポイントは timer-to-log インテグレーションをパブリッシュします。

/public/integrations/timer-to-log/deployments

生成されるもの

application/json

応答の例

この例では、省略記号は一部の応答の省略を示しています。

{"id":"i-Lc0JLrsUFtBJfR_ylfEz:8","version":8,"createdAt":1555365135324,"updatedAt":1555365135324,"userId":"system:serviceaccount:syndesis:syndesis-cd-client","currentState":"Pending","targetState":"Published","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz", . .2c+PC9zdmc+","description":"Trigger events based on an interval or a cron expression","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true","contextLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555365085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}}}}

7.6. インテグレーションを停止するためのエンドポイント

このエンドポイントは、指定されたインテグレーションを停止します。

メソッドとエンドポイント

PUT

/public/integrations/{id}/deployments/stop

表7.6 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須。停止するインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

リクエストの例

以下の例では、エンドポイントは timer-to-log インテグレーションを停止します。

/public/integrations/timer-to-log/deployments stop

生成されるもの

application/json

応答の例

204 ステータスコードのコンテンツがない

7.7. インテグレーションをエクスポートするためのエンドポイント

このエンドポイントはインテグレーションをエクスポートします。エンドポイントが指定の環境に対してマーク付けされ、まだ 1 回もエクスポートされていないインテグレーションか、その環境に対して最後にマーク付けされた後にエクスポートされていないインテグレーションをエクスポートするのがデフォルトの挙動です。以下のいずれかを行う場合は、オプションを指定できます。

  • Fuse Online 環境のすべてのインテグレーションをエクスポートし、指定の環境ラベルでタグ付けする。
  • インテグレーションが最後にエクスポートされた後に、更新またはタグ付けされたかどうかに関わらず、指定した環境ラベルでタグ付けされたすべてのインテグレーションをエクスポートします。

Fuse Online パブリック API エクスポートエンドポイントの呼び出し」も参照してください。

メソッドとエンドポイント

GET

/public/integrations/{env}/export.zip

表7.7 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

multipart/form-data

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{env}

文字列

必須。Fuse Online コンソールで作成した環境ラベル。エンドポイントは、この環境に対してマーク付けされたインテグレーションをエクスポートします。

クエリーパラメーター

all=true

文字列

任意手順:Fuse Online 環境にあるすべてのインテグレーションをエクスポートする場合に、このオプションを指定します。エンドポイントは、各インテグレーションの現在のバージョンをエクスポートします。指定した環境に対してインテグレーションがマーク付けされていない場合は、エンドポイントによって指定の環境ラベルがインテグレーションに追加されます。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。

ignoreTimestamp=true

文字列

指定した環境ラベルでタグ付けされたすべてのインテグレーションをエクスポートします。インテグレーションが最後にエクスポートされた後にインテグレーションが編集およびタグ付けされたかどうかに関わらず、この操作を行います。

追加のパラメーター

-o export.zip

文字列

クエリーパラメーターを指定した場合は必須です。このオプションを指定しない場合、エクスポートされたインテグレーションは export.zip?all=true という名前のファイルに含まれます。

リクエストの例

最初の例では、エンドポイントは、test1 環境に対してマーク付けされ、まだ 1 回もエクスポートされていないインテグレーションか、その環境に対して最後にマーク付けされた後にエクスポートされていないインテグレーションをエクスポートします。

/public/integrations/test1/export.zip

以下の例では、エンドポイントは test1 環境に対してマーク付けされたすべてのインテグレーションをエクスポートします。前回エクスポートされた後にインテグレーションが更新されたかどうかは関係ありません。

/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip

最後の例では、エンドポイントは各インテグレーションが test1 環境に対してマーク付けされていることを確かめ、export.zip ファイルのすべてのインテグレーションを返します。

/public/integrations/test1/export.zip?all=true -o export.zip

生成されるもの

application/octet-stream

応答

エクスポートされたインテグレーションが含まれる export.zip ファイル。エクスポートするインテグレーションがない場合、エンドポイントは 204 の HTTP ステータスを返します。

7.8. インテグレーションをインポートするためのエンドポイント

このエンドポイントは、提供されたファイルにあるインテグレーションをインポートします。「Fuse Online パブリック REST API インポートエンドポイントの呼び出し」も参照してください。

メソッドとエンドポイント

POST

/public/integrations

表7.8 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

multipart/form-data

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

追加のパラメーター

data=@export.zip

文字列

必須。これは、インポートするインテグレーションが含まれるファイルです。このファイルを取得するには、これまでにエクスポートエンドポイントを呼び出したことがある必要があります。

environment={env}

文字列

必須。インポートされた各インテグレーションに追加する環境ラベル。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。

リクエストの例

以下の例では、エンドポイントは export.zip ファイルにあるインテグレーションをインポートし、testing 環境に対してインテグレーションをマーク付けします。

/public/integrations -F data=@export.zip -F environment=testing --request POST

生成されるもの

multipart/form-data

応答の例

応答は、インテグレーションおよびコネクションなどのインポートされたリソースの一覧です。以下の例では、省略記号は応答の一部が省略されていることを示しています。

{"lastImportedAt":1554888047271,"results":[{"id":"i-Lc0JLrsUFtBJfR_ylfEz","version":5,"createdAt":1554800274935,"updatedAt":0,"tags":["timer"],"name":"timer-to-log","flows":[{"id":"-Lc0I5AZEVfKCDDHC8Jv","steps":[{"id":"-Lc0I5jnEVfKCDDHC8Jv","configuredProperties":{"period":"900000"},"metadata":…​"description":"Trigger events based on an interval or a cron expression","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true","contextLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159},"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554887859824}}}]}

7.9. 特定のインテグレーションから環境ラベルを削除するためのエンドポイント

このエンドポイントは、指定された環境ラベルを指定のインテグレーションから削除します。環境ラベル自体は引き続き存在しますが、指定されたインテグレーションのマーク付けが解除されます。

メソッドとエンドポイント

DELETE

/public/integrations/{id}/tags/{env}

表7.9 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須のパスパラメーター。マーク付けを解除するインテグレーションの名前または内部 ID。「インテグレーション ID の検索方法」を参照してください。

{env}

文字列

必須のパスパラメーター。指定したインテグレーションから削除する環境ラベル。

追加のパラメーター

--request DELETE

 

DELETE メソッドを指定します。

リクエストの例

以下の例では、エンドポイントは dev1 環境ラベルを timer-to-log インテグレーションから削除します。

/public/integrations/timer-to-log/tags/dev1 --request DELETE

応答の例

204 ステータスコードのコンテンツがない

7.10. 環境ラベルを作成するためのエンドポイント

このエンドポイントは環境ラベルを作成します。Fuse Online コンソールで、またはパブリック API エンドポイントを呼び出して明示的にマーク付けするまで、インテグレーションがこのラベルでマークが付けられることはありません。

メソッドとエンドポイント

POST

/public/environments/{env}

表7.10 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{env}

文字列

必須。作成する環境ラベル。

生成されるもの

何も生成しませんが、応答は以下のようになります。

応答説明

204 No Content

成功。

400 Bad Request

指定した環境名がすでに存在します。

5xx エラー

サーバーはリクエストに対応できません。

リクエストの例

以下の例では、エンドポイントが dev1 環境ラベルを作成します。

/public/environments/dev1 --request POST

このエンドポイントを呼び出した Fuse Online 環境に、dev1 環境ラベルが存在するようになります。このラベルでマーク付けされたインテグレーションはまだありません。

応答の例

応答ステータスコード 204 のコンテンツがない

7.11. 環境ラベルの一覧を取得するためのエンドポイント

このエンドポイントは、Fuse Online 環境に存在する環境ラベルの一覧を返します。Fuse Online コンソールで環境ラベルを作成します。「CI/CD の環境ラベルの管理」を参照してください。

メソッドとエンドポイント

GET

/public/environments[?withUses=true]

表7.11 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

withUses

ブール値

任意手順:コマンドが withUses=true を指定している場合、エンドポイントは環境ラベルと、そのラベルでマーク付けされたインテグレーションの数を返します。指定されていない場合、または false に設定されている場合、エンドポイントは環境ラベルのみを返します。

生成されるもの

application/json

リクエストの例

  • /public/environments

    応答の例:
    ["env-label-1", "env-label-2"]

  • /public/environments/?withUses=true

    応答の例:
    [{"name":"env-label-1","uses":1},
    {"name":"env-label-2","uses":0}]

7.12. 環境ラベルを変更するためのエンドポイント

このエンドポイントは環境ラベルを変更します。元の環境ラベルについてマーク付けされていたインテグレーションは、新しい環境ラベルに対してマーク付けされるようになります。

メソッドとエンドポイント

PUT

/public/environments/{env}

表7.12 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{env}

文字列

必須。変更する環境ラベル。

追加のパラメーター

-d {env}

文字列

必須。環境の新しいラベルを指定します。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。

--request PUT

 

PUT メソッドを指定します。

リクエストの例

以下の例では、エンドポイントが dev1 環境ラベルを dev2 に変更します。

/public/environments/dev1 -d ‘dev2’ --request PUT

dev1 環境に対してマーク付けされていたインテグレーションのタグがなくなります。このインテグレーションは、dev2 環境に対してマーク付けされるようになります。

応答の例

応答ステータスコード 204 のコンテンツがない

7.13. すべてのインテグレーションから環境ラベルを削除するためのエンドポイント

このエンドポイントは、指定された環境ラベルが適用されている各インテグレーションからラベルを削除します。

メソッドとエンドポイント

DELETE

/public/environments/{env}

表7.13 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{env}

文字列

必須。インテグレーションから削除する環境ラベル。

追加のパラメーター

--request DELETE

 

DELETE メソッドを指定します。

リクエストの例

以下の例では、エンドポイントは dev1 タグを持つインテグレーションからそれを削除します。

/public/environments/dev1 --request DELETE

応答の例

応答ステータスコード 204 のコンテンツがない

7.14. コネクションのプロパティーを変更するためのエンドポイント

このエンドポイントは、指定されたコネクションのプロパティーを変更します。これは、設定が必要なコネクションがあるインテグレーションをインポートした後に役立ちます。たとえば、コネクションが使用するクレデンシャルを変更する必要がある場合などが該当します。

メソッドとエンドポイント

POST

/public/connections/{id}/properties

表7.14 パラメーター

名前タイプ説明

必須のヘッダーパラメーター

-H "Content-Type: <media-type>"

application/json

エンドポイントが必要とするメディアタイプ。

-H "SYNDESIS-XSRF-TOKEN: awesome"

カスタム

認証に必要です。

-H 'Authorization: Bearer <token> '

カスタム

Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。「パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得」を参照してください。

パスパラメーター

{id}

文字列

必須。{id} を、プロパティーを変更するコネクションの ID に置き換えます。コネクション ID については、以下のいずれかを指定します。

  • コネクションの名前 (例: PostgresDB)。コネクション名にスペースまたは特殊文字がある場合は、HTML エスケープ文字を指定する必要があります。
  • コネクションの詳細を表示したときの Fuse Online コンソール URL の内部コネクション ID。コネクションの詳細を表示するには、左側のナビゲーションパネルで Connections をクリックします。次に、詳細を表示するコネクションをクリックします。ブラウザーにコネクションの詳細が表示されると、URL の末尾に /connections/i-LaupI8XznJ4LcuWwiwaz のような内容が表示されます。このコネクションの ID は i-LaupI8XznJ4LcuWwiwaz です。

リクエストの例

以下の例では、PostgresDB コネクションのプロパティーを変更します。user プロパティーの新しい値は myuser で、password プロパティーの新しい値は mypassword です。

/public/connections/PostgresDB/properties --request POST -d '{ "user": "myuser", "password": "mypassword" }'

生成されるもの

application/json

応答の例

この例では、省略記号は応答の大部分が省略されていることを表しています。

{"uses":0,"id":"i-LaOziUGpQE45nua4pfCz","name":"TODO app","configuredProperties":{"password":"gitopsENC:c2cb731046372a275b76beabc92aefa061f79b43fb791fb599d9e85ec 0235a7e","basePath":"/api","host":"http://todo-syndesis.my-minishift.syndesis.io/","specification":…​"userId":"admin","lastUpdated":1555365796629, "createdDate":1553066813379,"board":{"id":"i-Lbj4-vqUFtBJfR_ylfCz","metadata":{"connector-id":"i-LaOzcPZpQE45nua4pfBz","connector-version-latest":"1","connector-version-connection":"1"}, "messages":">{"level":"WARN","code":"SYNDESIS007"},"createdAt":1554494263030,"updatedAt":1554494263727,"targetResourceId":"i-LaOziUGpQE45nua4pfCz","notices":0,"warnings":1, "errors":0},"isDerived":false}

第8章 Fuse Online ユーザーインターフェースのカスタマイズ

Fuse Online のアプリケーション名、ロゴ、アイコン、およびその他のユーザーインターフェースの詳細を置き換えて、Fuse Online をカスタマイズできます。これは、syndesis-ui デプロイメントファイルの ConfigMap オブジェクトとしてカスタマイズされたリソースをマウントして行います。

前提条件

  • お客様が管理する環境のオンサイトの OpenShift Container Platform に Fuse Online がインストールされ、稼働中である必要があります。
  • oc クライアントツールは、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • ユーザーが Fuse Online をインストールできる権限を持っている必要があります。

手順

  1. 以下のコマンドを実行して、Fuse Online がインストールされている syndesis-ui Pod の名前を取得します。

    oc get pods

  2. 以下のコマンドを実行して、カスタマイズ可能なロゴ、アイコン、フォント、および背景を取得します。その際、SYNDESIS_UI_POD_NAMEsyndesis-ui を実行している Pod の実際の名前に置き換えます。

    oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/static/media ~/

    これにより、~/media/ フォルダーにユーザーインターフェースリソースが追加されます。

  3. ヘッダーロゴが含まれるファイル ~/media/syndesis_logo_full_darkbkg.9c467d96.svg を編集し、保存します。
  4. 更新されたロゴファイルが含まれる ConfigMap オブジェクトを作成して、変更したファイルをクラスターにアップロードします。

    cd ~/
    oc create configmap syndesis-ui-custom-logo --from-file=media/syndesis_logo_full_darkbkg.9c467d96.svg
  5. syndesis-ui デプロイメントファイルを変更して、syndesis-ui-custom-logo ConfigMap オブジェクトをマウントします。これには、oc edit dc/syndesis-ui を呼び出すか、OpenShift Web コンソールを使用して Applications > Deployments > syndesis-ui > Actions > Edit YAML と選択します。

    1. spec.template.containers.volumeMounts の下に以下を追加します。

      -name: syndesis-ui-custom-logo-volume
       mountPath: /opt/app-root/src/static/media/syndesis_logo_full_darkbkg.9c467d96.svg
       subPath: syndesis_logo_full_darkbkg.9c467d96.svg
    2. spec.template.volumes の下に以下を追加します。

      -name: syndesis-ui-custom-logo-volume
       configMap:
        name: syndesis-ui-custom-logo
    3. syndesis-ui デプロイメントファイルを保存します。
  6. `~/media フォルダーにあるカスタマイズしたい各ファイルについて、ステップ 3 から 5 を繰り返します。
  7. アプリケーションタイトルが含まれるファイルを編集および保存します。

    1. ファイルを更新するディレクトリーを作成します。

      mkdir ~/syndesis-custom/src

    2. 以下のコマンドを実行して、アプリケーションタイトルを取得します。その際、SYNDESIS_UI_POD_NAMEsyndesis-ui を実行している Pod の実際の名前に置き換えます。

      oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/index.html ~/syndesis-custom/src
    3. アプリケーションタイトルを置き換えます。以下に例を示します。

      sed -i 's/<title>.*<\/title>/<title>NEW_TITLE<\/title>/g' ~/syndesis-custom/src/index.html
  8. 更新されたファイルが含まれる ConfigMap オブジェクトを作成して、変更したアプリケーションタイトルファイルをクラスターにアップロードします。

    cd ~/syndesis-custom/src
    oc create configmap syndesis-ui-custom-index --from-file=index.html
  9. syndesis-ui-custom-index ConfigMap オブジェクトをマウントして、syndesis-ui デプロイメントファイルを変更します。

    1. spec.template.containers.volumeMounts の下に以下を追加します。

      -name: syndesis-ui-custom-vindex-olume
       mountPath: /opt/app-root/src/index.html
       subPath: index.html
    2. spec.template.volumes の下に以下を追加します。

      -name: syndesis-ui-custom-index-volume
       configMap:
        name: syndesis-ui-custom-index
    3. syndesis-ui デプロイメントファイルを保存します。

結果

syndesis-ui デプロイメントファイルを保存すると、変更内容を反映したユーザーインターフェースで Fuse Online が自動的に再デプロイされます。Fuse Online の後続の再デプロイメントでも、変更内容が反映されます。