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

Red Hat Fuse 7.5

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

Red Hat Fuse Documentation Team

概要

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

前書き

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

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

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

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

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

オンサイトで Fuse Online を OCP にインストールするための主なステップは以下のとおりです。

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

    1. インストールスクリプトをダウンロードします。
    2. クラスターレベルでカスタムリソース定義 (CRD) を登録します。
    3. プロジェクトで Fuse Online をインストールするユーザーにパーミッションを付与します。
  2. Fuse Online をインストールするためにパーミッションを付与されたユーザーは、以下を実行します。

    1. すべての前提条件を満たしていることを確認します。
    2. インストール先の OpenShift プロジェクト、Fuse Online の OpenShift ルート、および OpenShift ログのアクセスレベルを考慮して Fuse Online をインストールする方法を決定します。
    3. インストールスクリプトをダウンロードします。
    4. 決定内容を実装するコマンドを使用して、インストールスクリプトを実行します。
    5. Fuse Online が稼働中であることを確認します。
注記

Fuse Online のインストール手順では、コンテナーレジストリーが内部であることを前提としています。Fuse Online は、外部コンテナーレジストリー、カスタムレジストリー、または非接続環境でのレジストリーの使用をサポートせず、テストもしません。

詳細は以下のセクションを参照してください。

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

Fuse Online のインストールを可能にするため、クラスター管理者はカスタムリソース定義を登録します。管理者は、OpenShift クラスターに対して 1 度だけこれを実行する必要があります。また、管理者は Fuse Online をインストールするためのパーミッションを適切なユーザーに付与します。これで、各ユーザーがプロジェクトに Fuse Online をインストールできるようになります。

前提条件

  • クラスターの管理者権限を持っている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。

手順

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

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

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

  2. 適切に接続され、カスタムリソース定義を一覧表示できることを確認するには、以下のコマンドを実行します。

    $ oc get crd

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

    $ bash install_ocp.sh --setup

  4. Fuse Online をインストールする必要のある各ユーザーにインストールパーミッションを付与します。たとえば、ユーザー名 developer を持つアカウントにパーミッションを付与するとします。以下のコマンドを実行すると、developer アカウントが現在接続されているクラスターでアクセス可能なプロジェクトに Fuse Online をインストールするためのパーミッションが developer に付与されます。

    $ bash install_ocp.sh --grant developer --cluster

    Fuse Online をインストールするパーミッションが必要な各ユーザーアカウントに対して、このコマンドを繰り返します。

1.2. OCP に Fuse Online をインストールする前に決定する事柄

Fuse Online インストールコマンドを正しく指定するには、以下の質問に対する回答を決めます。

  • どの OpenShift プロジェクトに Fuse Online をインストールするか

    デフォルト: スクリプトで、現在のプロジェクトに Fuse Online をインストールします。

    オプション: 指定したプロジェクトに Fuse Online をインストールします。インストールスクリプトを実行する際に、--project オプションの後にプロジェクト名を指定します。このプロジェクトが存在しない場合は、スクリプトにより作成されます。このプロジェクトが存在する場合は、インストールスクリプトにより、プロジェクトのコンテンツを削除してよいか確認を求められます。続行するには、確認する必要があります。その後、インストールスクリプトによってプロジェクトが削除され、再作成されます。

  • Fuse Online の URL を指定するか

    デフォルト: スクリプトによって、Fuse Online にアクセスできる OpenShift ルートが算出されます。

    オプション: Fuse Online の URL を指定します。インストールスクリプトを実行する際に、--route オプションの後に URL を指定します。

  • Fuse Online から OpenShift インテグレーションランタイムログへのリンクを有効にするか

    デフォルト: 有効にしません。OpenShift で OpenShift ログに手動でアクセスします。

    オプション: Fuse Online にリンクを提供します。インストールスクリプトの実行時に、--console オプションの後に OpenShift コンソールの URL を指定します。これらのリンクは、Fuse Online のインテグレーションの Activity タブに表示されます。

1.3. OCP での Fuse Online のインストール

オンサイトで Fuse Online を OCP にインストールするには、インストールパッケージをダウンロードし、実行して Fuse Online がインストールされていることを確認します。

前提条件

  • OCP をオンサイトで稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • デフォルトのインストールを実行するか、またはインストールをカスタマイズするオプションを指定するか決定済みである必要があります。
  • ユーザー名とパスワードを知っている Red Hat developer のアカウントが必要です。https://developers.redhat.com に対して認証できるよう、インストールスクリプトから認証情報を求められます。アカウントの作成に関する詳細は、Red Hat レジストリーへのアクセスおよびその設定 を参照してください。

手順

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

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

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

    $ oc login -u developer -p developer

  4. 現在のプロジェクトが Fuse Online をインストールするプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。

    $ oc project

    または、インストールスクリプトの実行時にインストールプロジェクトを指定することもできます。

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

    • デフォルトのインストールを実行するには、以下を実行します。

      $ bash install_ocp.sh
    • デフォルトのインストールを実行し、データ仮想化ユーザーインターフェイスも有効にするには、以下を実行します。

      $ bash install_ocp.sh --datavirt

      開発環境のみでデータ仮想化ユーザーインターフェイスを有効にします。データ仮想化により、Fuse Online の開発者は複数の異なるソースからのデータを統合し、OpenShift でデプロイできる仮想データベースイメージを作成できます。アプリケーションは、SQL 以外のソースを含む仮想データベースで SQL クエリーを実行できます。詳細は、Red Hat Integration の Data Virtualization に関するドキュメント を参照してください。

      重要

      データ仮想化はテクノロジープレビューの機能です。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。

    • 複数のインストールオプションを指定するには、以下のようなコマンドを実行します。

      $ bash install_ocp.sh \
          --project my-project \
          --route my-project.6a63.fuse-online.openshiftapps.com \
          --console https://console.fuse-online.openshift.com/console
          --datavirt
      • --project は、Fuse Online をインストールする OpenShift プロジェクトの名前を指定します。このオプションは、現在の OpenShift プロジェクト以外の OpenShift プロジェクトに Fuse Online をインストールする場合のみ指定する必要があります。
      • --route は、Fuse Online 環境の URL を指定します。この URL で Fuse Online 環境にアクセスします。URL の形式は、Fuse Online をインストールするプロジェクトの名前の後に、OpenShift クラスターに固有のドメインが続きます。

        つまり、プロジェクト名の後に Fuse Online にアクセスするために使用される OpenShift ルートに関連するホスト名を指定します。指定したホスト名の DNS 解決は OpenShift ルーターを参照する必要があります。

      • --console は、OpenShift コンソールの完全な URL を指定します。
      • --datavirt は、データ仮想化ユーザーインターフェイスを有効にします。これは、開発環境でのみ使用するテクノロジープレビュー機能です。

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

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

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

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

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

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

1.4. OCP 上の Fuse Online におけるデータ仮想化の有効化

データ仮想化はテクノロジープレビュー機能です。このデータ仮想化により、Fuse Online の開発者は複数の異なるソースからのデータを統合し、OpenShift にデプロイできる仮想データベースイメージを作成できます。

重要

データ仮想化はテクノロジープレビューの機能です。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。

OCP に Fuse Online をインストールする場合、データ仮想化を有効にできます。OCP での Fuse Online のインストール を参照してください。Fuse Online のインストール時にデータ仮想化を有効にしない場合は、ここで説明されている手順に従って後でデータ仮想化を有効にできます。開発環境のみでデータ仮想化ユーザーインターフェイスを有効にします。

詳細は、Red Hat Integration の Data Virtualization に関するドキュメント を参照してください。

前提条件

  • オンサイトで Fuse Online 7.5 が OCP にインストールされ、稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • ユーザー名とパスワードを知っている Red Hat developer のアカウントが必要です。https://developers.redhat.com に対して認証できるよう、インストールスクリプトから認証情報を求められます。アカウントの作成に関する詳細は、Red Hat レジストリーへのアクセスおよびその設定 を参照してください。

手順

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

    $ oc login -u developer -p developer
  2. 現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下のコマンドを実行します。

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

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

      oc edit syndesis
    2. リソースに以下が含まれていることを確認します。

      spec:
        addons:
          komodo:
            enabled: "true"
    3. 必要な場合は、リソースを更新して保存します。
  4. データ仮想化が正常に有効化されたことを確認します。

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

      openshift-route を Fuse Online 環境の URL に置き換えます。

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

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

    3. 左側のパネルで Data をクリックします。
    4. Data Virtualizations ページで、データビューを追加できるはずです。

第2章 OCP 上の Fuse Online の管理

Fuse Online をオンサイトで OpenShift Container Platform (OCP) にインストールした後、Fuse Online を設定して Red Hat 3scale で API プロバイダーインテグレーションの API を検出できるようにしたり、Fuse Online の内部ストレージ容量を増やすことができます。サンプルデータを Fuse Online 環境に追加することもできます。

必要に応じて、Fuse Online のアップグレード、Fuse Online のアンインストール、または Fuse Online が含まれる OCP プロジェクトの削除を行うことができます。

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

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

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

OCP にインストールされている Fuse Online 環境では、Fuse Online の syndesis カスタムリソースを更新して、3scale で API の検出を有効にできます。更新によって、3scale サービス検出を有効にする 3scale ユーザーインターフェイスの URL が提供される必要があります。検出を有効にすると、リソースの更新時に接続する OpenShift プロジェクトのみに適用されます。

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

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

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

前提条件

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

手順

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

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

    $ oc project my-fuse-online-project
  3. syndesis カスタムリソースで oc patch コマンドを実行し、3scale ユーザーインターフェイスの URL を提供します。以下のサンプルコマンドの 3scale-url-here を 3scale ユーザーインターフェイスの実際の URL に置き換えます。

    oc patch syndesis app --type='merge' -p '{"spec":{"components":{"server":{"features":{"managementUrlFor3scale":"3scale-url-here"}}}}}'
  4. 任意手順:切り替え先のプロジェクトで検出が有効になっていることを確認するには、以下のコマンドを実行します。

    oc describe dc/syndesis-server

    検出が有効な場合、このコマンドからの出力は、OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数が oc patch コマンドで指定した URL に設定されていることを示しています。

結果

oc patch コマンドによって、syndesis カスタムリソースが更新されます。更新では、OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 環境変数を 3scale ユーザーインターフェイスの指定された URL に設定します。syndesis カスタムリソースに対するこの変更により、Fuse Online のインストールを担う syndesis-operatorsyndesis-server を再デプロイするようトリガーされます。切り替え先の OpenShift プロジェクトでは、新しいデフォルト動作として API が 3scale で検出の対象となります。

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

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

API の 3scale 検出を有効化する Fuse Online の設定 で説明されている手順に従っている場合、各 API プロバイダーインテグレーションの作成者は、そのインテグレーションの API が検出可能かどうかを選択できます。場合によっては、インテグレーション API が 3scale で検出できないというデフォルトの動作を再設定する必要になることもあります。これを実行するには、Fuse Online の syndesis カスタムリソースを更新し、3scale の管理 URL を空白にリセットします。その後、検出可能な 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 カスタムリソースで oc patch コマンドを実行し、3scale ユーザーインターフェイスの URL を空の値に設定します。

    oc patch syndesis app --type='merge' -p '{"spec":{"components":{"server":{"features":{"managementUrlFor3scale":""}}}}}'

    このコマンドによって、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 を提供します。

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

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

  • PostgresDB コネクション。これにより、タスクに関するレコードが含まれる SQL データベースへのアクセスを提供します。新規ユーザーは、このコネクションを 1 回または複数回使用してレコードをクエリー、追加、変更、または削除するインテグレーションを作成できます。
  • To Do アプリケーション。これにより、ユーザーは AMQ to REST API サンプルインテグレーションが想定どおりに機能することを確認できます。

また、Fuse Online 環境にサンプルデータを追加せずに、サンプルデータが含まれる Fuse Online 評価環境をリクエスト することもできます。新しいユーザーは、Fuse Online サンプルインテグレーションのチュートリアル の指示に従って、サンプルインテグレーションを作成できます。

前提条件

  • オンサイトで Fuse Online 7.5 が OCP にインストールされ、稼働している必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • ユーザー名とパスワードを知っている Red Hat developer のアカウントが必要です。https://developers.redhat.com に対して認証できるよう、インストールスクリプトから認証情報を求められます。アカウントの作成に関する詳細は、Red Hat レジストリーへのアクセスおよびその設定 を参照してください。

手順

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

    $ oc login -u developer -p developer

  2. 現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。

    $ oc project

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

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

      oc edit syndesis
    2. 以下の行をリソースの最後に追加します。

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

      syndesis カスタムリソースに対するこの変更を保存することにより、Fuse Online のインストールを担う syndesis-operatorsyndesis-server を再デプロイするようトリガーされます。

  4. 再デプロイされたサーバーがサンプルデータを提供することを確認します。

    1. ブラウザーで Fuse Online コンソールを表示します。
    2. 左側のナビゲーションパネルで Connections をクリックします。
    3. PostgresDB コネクションが表示されることを確認します。

2.4. OCP での Fuse Online のアップグレード

オンサイトで OCP の Fuse Online をアップグレードするには、最新の Fuse Online リリースをダウンロードし、更新スクリプトを実行します。

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

下記条件のアップグレード手順は同じです。

  • Fuse Online 7.4 から Fuse Online 7.5
  • Fuse Online 7.5 の古いバージョンから Fuse Online 7.5 の新しいバージョン

前提条件

  • オンサイトで Fuse Online バージョン 7.4 が OCP にインストールされ、稼働している状態です。または、オンサイトで Fuse Online 7.5 のあるバージョンが OCP にインストールされ、稼働していますが、新しいアプリケーションイメージへのアップグレードを考えています。

    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 クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールまたはアップグレードするための権限を付与済みである必要があります。

手順

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

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

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

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

    $ cd fuse-online-install-1.8

  3. Fuse Online をアップグレードする権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    $ oc login -u developer

  4. 現在のプロジェクトの名前を返す以下のコマンドを実行し、現在のプロジェクトに Fuse Online がインストールされていることを確認します。

    $ oc project

    Fuse Online がインストールされているプロジェクトに切り替える必要がある場合は、Fuse Online が含まれる OpenShift プロジェクトの名前を指定して以下のコマンドを実行します。

    $ oc project project-name

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

    $ bash update_ocp.sh --version

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

    $ bash update_ocp.sh

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

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

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

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

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

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

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

前提条件

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

手順

以下のコマンドを実行します。

$ oc delete syndesis app

このコマンドにより、Fuse Online インフラストラクチャーが削除されます。

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

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

前提条件

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

手順

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

$ oc delete project fuseonline

2.7. ストレージ容量を増やす Fuse Online の設定

syndesis カスタムリソースは、複数のパラメーターの値を定義して Fuse Online 環境を設定します。このようなパラメーターの 1 つが volumeCapacity です。Fuse Online がコネクター、コネクション、インテグレーション、アクティビティー、および設定のデータを保存する内部 PostgreSQL データベースで利用可能なストレージの容量を決定します。volumeCapacity のデフォルト設定は 1Gi です。これは、ほとんどの Fuse Online 環境で十分なものです。

Fuse Online 設定は、OpenShift プロジェクトに Fuse Online をインストールする install_ocp.sh スクリプトを実行すると有効になります。内部データベースのボリューム容量を増やすことはできますが、保持するデータがない Fuse Online 環境でのみ可能です。つまり、コネクションとインテグレーションが含まれる Fuse Online 環境の volumeCapacity 設定を増やすことはできません。

前提条件

  • オンサイトで Fuse Online 7.5 が OCP にインストールされ、稼働している必要があります。
  • oc クライアントツールがインストールされ、ボリューム容量が増やされた Fuse Online をインストールする OCP クラスターに接続されている必要があります。
  • クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
  • 稼働している Fuse Online 環境で Fuse Online のサーバーエラーが発生し、Red Hat テクニカルサポートは、デフォルトよりも容量が大きいデータベースボリュームで Fuse Online 環境をインストールする必要があると判断している状況です。
  • Fuse Online が稼働している OpenShift プロジェクトで Fuse Online の内部ストレージ容量を増やす場合、この手順を開始する前に以下を実行する必要があります。

    1. 保持する Fuse Online インテグレーションをすべてエクスポートします。
    2. すべての Fuse Online インテグレーションを削除します。

手順

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

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

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

    $ oc login -u developer -p developer
  4. 現在のプロジェクトが Fuse Online をインストールするプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。

    $ oc project
  5. インストールスクリプトをダウンロードしたディレクトリーで、そのスクリプトを実行して syndesis リソースを取得します。これを後のステップで編集します。

    $ bash install_ocp.sh
  6. syndesis カスタムリソースを YAML ファイルとして取得します。

    oc get syndesis app -o yaml > syndesis.yaml
  7. syndesis.yaml を編集して、volumeCapacity パラメーター設定を増やします。以下に例を示します。

    apiVersion: "syndesis.io/v1alpha1"
    kind: "Syndesis"
    metadata:
      name: "app"
    spec:
      components:
        db:
          resources:
            volumeCapacity: 10Gi
  8. 編集した syndesis リソースを新しい名前 (例: custom-syndesis.yaml) で保存します。

    OpenShift は、新しい volumeCapacity の値を PersistentVolumeClaim オブジェクトにコピーします。

    警告

    削除しないコネクションやインテグレーションなどのデータがある Fuse Online 環境で、次のコマンドを実行しないでください。次の手順のコマンドを実行すると、この Fuse Online 環境にあるすべての Fuse Online オブジェクトのデータが削除されます。

  9. 以下を実行して Fuse Online データを削除します。

    oc delete syndesis app
  10. ボリュームの容量を増やして設定する新しい syndesis カスタムリソースを作成します。コマンドラインで、volumeCapacity 設定を更新した .yaml ファイルを指定します。以下に例を示します。

    oc create -f custom-syndesis.yaml

次のステップ

内部ストレージ容量を増やした Fuse Online 環境で、インテグレーションのインポート、インポートされたインテグレーションのコネクションの設定、およびインテグレーションのパブリッシュを行います。

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

オンサイトで Fuse Online を OCP にインストールする場合、環境には Fuse Online をインストールした OpenShift プロジェクトの Prometheus のインスタンスが含まれます。Prometheus ダッシュボードにアクセスして Fuse Online インテグレーションを監視することができます。

前提条件

  • OCP をオンサイトで稼働している必要があります。
  • Fuse Online が OpenShift プロジェクトにインストールされている必要があります。

手順

  1. OpenShift コンソールにログインします。
  2. Fuse Online をインストールしたプロジェクトを開きます。
  3. OpenShift コンソールの左側のペインで、Applications > Routes を選択します。
  4. syndesis-prometheus Hostname URL をクリックし、新しいブラウザータブまたはウインドウで Prometheus ダッシュボードを開きます。

その他のリソース

Fuse Online を監視するように既存の外部 Prometheus インスタンスを設定する方法については、Monitoring Red Hat Integration を参照してください。

第4章 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、シークレットトークン、および承認トークンを指定します。

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

4.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 のインストールごとに手順を繰り返す必要があります。同じクラスターの Fuse Online 環境では、同じサービスアカウントを使用してパブリック API を公開することができますが、セキュリティーを強化するために各インストールに異なるサービスアカウントを使用することが推奨されます。

前提条件

  • Fuse Online がインストールされている OCP プロジェクトが必要です。
  • 外部 CI/CD ツールを使用しており、マーク付けされたインテグレーションを Fuse Online 環境から別の Fuse Online 環境にコピーする状況です。
  • OpenShift のパブリック OAuth プロキシーアプリケーションを作成するユーザーには、クラスター管理者権限が必要です。

手順

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

    $ oc create serviceaccount cicd-client
  2. Fuse Online のパブリック API にアクセスするためのパーミッションを新しいサービスアカウントに付与します。たとえば、syndesis が Fuse Online がインストールされている OpenShift プロジェクトの名前である場合や、cicd-client が新しいサービスアカウントの名前である場合、以下のコマンドを実行します。

    $ oc policy add-role-to-user edit system:serviceaccount:syndesis:cicd-client
  3. 以下のコマンドを実行して、Fuse Online のパブリック REST API エンドポイントを公開する OpenShift テンプレートを作成します。

    $ oc create -f https://raw.githubusercontent.com/syndesisio/syndesis/1.8.x/install/support/syndesis-public-oauth-proxy.yml
    注記

    テンプレートでは、リソースの名前は syndesis-public-oauth-proxy で、テンプレート自体の名前は syndesis-public-oauthproxy です。ご覧のとおり、リソース名は oauthproxy がハイフンでつながっていますが、テンプレートファイル名はハイフンでつながっていません。

  4. 以下のコマンドを実行して、Fuse Online のパブリック OAuth プロキシープロセスを実行する OpenShift アプリケーションを作成します。

    OpenShift Container Platform 4.2 の場合は、-p OAUTH_PROXY_TAG=4.2 も指定します

    $ oc new-app --template=syndesis-public-oauthproxy \
        -p PUBLIC_API_ROUTE_HOSTNAME=EXTERNAL_HOSTNAME \
        -p OPENSHIFT_PROJECT=$(oc project -q) \
        -p OPENSHIFT_OAUTH_CLIENT_SECRET=$(oc sa get-token syndesis-oauth-client) \
        -p SAR_PROJECT=$(oc project -q)

    EXTERNAL_HOSTNAME は、Fuse Online 環境のパブリックアドレスに置き換えます。たとえば、アドレスは public-fuse-online.127.0.0.1.nip.io のようになります。

    このコマンドは、前のステップで作成した syndesis-public-oauthproxy テンプレートを使用して、Fuse Online のパブリック REST API を公開する OAuth プロキシープロセスを作成します。この OAuth プロキシーは、OpenShift サービスアカウントトークンを使用して、外部ツールが新規のパブリックネットワークアドレスで Fuse Online パブリック API にアクセスできるようにします。

結果

外部 CI/CD ツールで、Fuse Online のパブリック REST API エンドポイントを使用して Fuse Online 環境全体で Fuse Online インテグレーションをエクスポートおよびインポートすることができます。

次のステップ

4.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 環境にある環境ラベルのセットです。

4.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 エンドポイントを呼び出すコマンドにトークンをコピーします。

4.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 です。

4.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>]

[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 インテグレーションをマーク付けします。

第5章 外部ツールを使用した CI/CD のインテグレーションのエクスポート/インポート

オンサイトで Fuse Online を OCP で稼働している場合、CI/CD (継続的インテグレーション/継続的デプロイメント) パイプラインを特定のインテグレーションで実行することがあります。これを実装するには、以下のタスクを完了する必要があります。

  • Fuse Online コンソールで、インテグレーションに CI/CD パイプラインをマーク付けします。
  • OpenShift で、Fuse Online のパブリック API を公開します
  • 外部ツールを使用して、インテグレーションをエクスポートおよびインポートする Fuse Online パブリック API エンドポイントを呼び出します。

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

5.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 をクリックします。

5.2. CI/CD のインテグレーションのマーク付け

オンサイトの OCP で Fuse Online を稼働している場合、パイプラインのインテグレーションを特定するために、指定する CI/CD 環境のインテグレーションをマーク付けします。これにより、ラベルがインテグレーションに適用されます。

前提条件

Fuse Online がインストールされている OCP プロジェクトが必要です。

手順

  1. 左側の Fuse Online ナビゲーションパネルで Integrations をクリックします。
  2. インテグレーションのリストで、マーク付けするインテグレーションのエントリーの右側で Kebab をクリックし、ポップアップメニューを表示し、Manage CI/CD をクリックします。
  3. 表示されるダイアログで、以下のいずれかを行います。

    • このインテグレーションをマーク付けする環境が表示されている場合、その環境の左側にあるチェックボックスを選択します。
    • このインテグレーションをマーク付けする環境がすでに選択されている場合は、その環境を選択したままにしておきます。
    • 環境のラベルを作成する必要がある場合、Manage CI/CD をクリックすると、新しい環境ラベルを作成するダイアログが表示されます。必要なラベルを作成してから、この手順に戻り、インテグレーションをマーク付けします。

    Fuse Online によって、選択した環境ラベルがインテグレーションに適用されます。任意の数の環境ラベルをインテグレーションに適用できます。

  4. Save をクリックします。

結果

Fuse Online は、選択した環境のリリースのインテグレーションにラベルを付けます。バックエンド API はインテグレーションをフィルターリングして、たとえば test1 ラベルが付いたインテグレーションなどの検索を行うことができます。

次のステップ

パイプラインが特定の環境に対してマーク付けされたインテグレーションで動作できるようにするには、先に Fuse Online のパブリック API エンドポイントを公開する必要があります。外部ツールによって使用される Fuse Online パブリック REST API の公開 を参照してください。

5.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 のインテグレーションのマーク付け を参照してください。

5.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 環境に対してマーク付けされた各インテグレーションをエクスポートします。エンドポイントはインテグレーションを export.zip ファイルにパッケージ化し、そのファイルを返します。

インテグレーションがエクスポートされた後に指定の環境に対してマーク付けされたインテグレーションがない場合は、エンドポイントは HTTP 204 応答を返し、返すものがないことを示します。

すべてのインテグレーションをエクスポートするためのエンドポイント

エクスポートエンドポイントを呼び出して、単一の 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 環境に対してマーク付けされ、その後エクスポートされていないインテグレーションをエクスポートすることを示しています。

5.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 が作成されます。

第6章 Fuse Online のパブリック REST API エンドポイントの参照情報

このセクションでは、Fuse Online の各パブリック REST API エンドポイントについての参照情報を紹介します。詳細は、Fuse Online パブリック REST API エンドポイントの呼び出し方法 を参照してください。

パブリック REST API エンドポイントを定義する OpenAPI ドキュメントは https://<fuse-online-host>/api/v1/swagger.json の Fuse Online 環境にて利用できます。ただし、本ドキュメントでは tags オブジェクトを、3 つのタグ (public-apiextensionsintegration-support) を持つものとして定義しています。Fuse Online の OpenShift パブリック OAuth プロキシープロセスの使用時は、public-api タグのみにアクセスできます。他の 2 つのタグは無視する必要があります。

6.1. インテグレーションの状態を取得するためのエンドポイント

このエンドポイントは、指定されたインテグレーションの状態を返します。状態には RunningStoppedPending、または Error があります。

メソッドとエンドポイント

GET

/public/integrations/{id}/state

表6.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"}}`これまで

6.2. インテグレーションの環境ラベルの一覧を取得するためのエンドポイント

このエンドポイントは、指定のインテグレーションに適用されている環境ラベル (タグ) を返します。

メソッドとエンドポイント

GET

/public/integrations/{id}/tags

表6.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}}

6.3. インテグレーションをマーク付けし、未指定のタグを維持するためのエンドポイント

このエンドポイントは PATCH メソッドを使用して、指定された環境の指定のインテグレーションをマーク付けします。インテグレーションが指定の環境に対してすでにマーク付けされている場合、エンドポイントはその環境ラベルのタイムスタンプを更新します。インテグレーションが新しいリクエストで指定されていない環境に対してマーク付けされていた場合、エンドポイントはそのタグをそのまま残し、タイムスタンプを更新しません。

この PATCH エンドポイントは、他の既存のタグを削除しなくてもタグが追加されるため、CI/CD ツールに便利です。これは、指定環境に対してインテグレーションをマーク付けし、リクエストで指定されていない環境のタグを削除する、PUT エンドポイントとは対象的です。

メソッドとエンドポイント

PATCH

/public/integrations/{id}/tags

表6.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}}

6.4. インテグレーションをマーク付けし、未指定のタグを削除するためのエンドポイント

このエンドポイントは PUT メソッドを使用して、指定された環境の指定されたインテグレーションをマーク付けします。インテグレーションが新しいリクエストで指定されていない環境に対してマーク付けされている場合、エンドポイントはその環境ラベルをインテグレーションから削除します。

未指定の環境ラベルを削除せずにインテグレーションをマーク付けするには、代わりに PATCH メソッドエンドポイント を呼び出します。

メソッドとエンドポイント

PUT

/public/integrations/{id}/tags

表6.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}}

6.5. インテグレーションをパブリッシュするためのエンドポイント

このエンドポイントは指定されたインテグレーションをパブリッシュします。インテグレーションがすでに稼働中である場合、エンドポイントはインテグレーションを停止し、再度パブリッシュします。

メソッドとエンドポイント

POST

/public/integrations/{id}/deployments

表6.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}}}}

6.6. インテグレーションを停止するためのエンドポイント

このエンドポイントは、指定されたインテグレーションを停止します。

メソッドとエンドポイント

PUT

/public/integrations/{id}/deployments/stop

表6.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 ステータスコードのコンテンツがない

6.7. インテグレーションをエクスポートするためのエンドポイント

このエンドポイントは、指定の環境に対してマーク付けされ、まだ 1 回もエクスポートされていないインテグレーションか、その環境に対して最後にマーク付けされた後にエクスポートされていないインテグレーションをエクスポートします。Fuse Online パブリック API エクスポートエンドポイントの呼び出し も参照してください。

メソッドとエンドポイント

GET

/public/integrations/{env}/export.zip

表6.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 環境にあるすべてのインテグレーションをエクスポートする場合に、このオプションを指定します。エンドポイントは、各インテグレーションの現在のバージョンをエクスポートします。指定した環境に対してインテグレーションがマーク付けされていない場合は、エンドポイントによって指定の環境ラベルがインテグレーションに追加されます。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。

追加のパラメーター

-o export.zip

文字列

クエリーパラメーターを指定した場合は必須です。このオプションを指定しない場合、エクスポートされたインテグレーションは export.zip?all=true という名前のファイルに含まれます。

リクエストの例

以下の例では、エンドポイントは test1 環境に対してマーク付けされたインテグレーションをエクスポートします。

/public/integrations/test1/export.zip

以下の例では、エンドポイントは各インテグレーションが test1 環境に対してマーク付けされていることを確かめ、export.zip ファイルのすべてのインテグレーションを返します。

/public/integrations/test1/export.zip?all=true -o export.zip

生成されるもの

application/octet-stream

応答

エクスポートされたインテグレーションが含まれる export.zip ファイル。エクスポートするインテグレーションがない場合、エンドポイントは 204 の HTTP ステータスを返します。

6.8. インテグレーションをインポートするためのエンドポイント

このエンドポイントは、提供されたファイルにあるインテグレーションをインポートします。Fuse Online パブリック API エクスポートエンドポイントの呼び出し も参照してください。

メソッドとエンドポイント

POST

/public/integrations

表6.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}}}]}

6.9. 特定のインテグレーションから環境ラベルを削除するためのエンドポイント

このエンドポイントは、指定された環境ラベルを指定のインテグレーションから削除します。環境ラベル自体は引き続き存在しますが、指定されたインテグレーションのマーク付けが解除されます。

メソッドとエンドポイント

DELETE

/public/integrations/{id}/tags/{env}

表6.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 ステータスコードのコンテンツがない

6.10. 環境ラベルを作成するためのエンドポイント

このエンドポイントは環境ラベルを作成します。Fuse Online コンソールで、またはパブリック API エンドポイントを呼び出して明示的にマーク付けするまで、インテグレーションがこのラベルでマークが付けられることはありません。

メソッドとエンドポイント

POST

/public/environments/{env}

表6.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 のコンテンツがない

6.11. 環境ラベルの一覧を取得するためのエンドポイント

このエンドポイントは、Fuse Online 環境に存在する環境ラベルの一覧を返します。Fuse Online コンソールで環境ラベルを作成します。CI/CD の環境ラベルの管理 を参照してください。

メソッドとエンドポイント

GET

/public/environments[?withUses=true]

表6.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}]

6.12. 環境ラベルを変更するためのエンドポイント

このエンドポイントは環境ラベルを変更します。元の環境ラベルについてマーク付けされていたインテグレーションは、新しい環境ラベルに対してマーク付けされるようになります。

メソッドとエンドポイント

PUT

/public/environments/{env}

表6.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 のコンテンツがない

6.13. すべてのインテグレーションから環境ラベルを削除するためのエンドポイント

このエンドポイントは、指定された環境ラベルが適用されている各インテグレーションからラベルを削除します。

メソッドとエンドポイント

DELETE

/public/environments/{env}

表6.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 のコンテンツがない

6.14. コネクションのプロパティーを変更するためのエンドポイント

このエンドポイントは、指定されたコネクションのプロパティーを変更します。これは、設定が必要なコネクションがあるインテグレーションをインポートした後に役立ちます。たとえば、コネクションが使用するクレデンシャルを変更する必要がある場合などが該当します。

メソッドとエンドポイント

POST

​/public​/connections​/{id}​/properties

表6.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":"»ENC:c2cb731046372a275b76beabc92aefa061f79b43fb791fb599d9e85ec0235a7e","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}

第7章 Apache Camel K の有効化による OCP での Fuse Online デプロイメントの高速化

テクノロジープレビューの Apache Camel K を Fuse Online の任意のアドオンとしてインストールして、OCP でのインテグレーションのデプロイメントを迅速化することができます。

重要

Camel K はテクノロジープレビューの機能です。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は実稼働環境でこれらを使用することを推奨していません。

テクノロジープレビュー機能では、最新の製品機能をいち早く提供します。これにより、お客様は開発段階で機能をテストし、フィードバックを提供できます。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。

以下のトピックでは Apache Camel K を紹介し、Fuse Online でインストールする方法を説明します。

7.1. Apache Camel K

Apache Camel K は、エンタープライズ統合パターン (Enterprise Integration Patterns) の Apache Camel フレームワークをベースとしたライトウェイトなクラウド統合プラットフォームです。Camel K は Kubernetes、OpenShift、および Knative でネイティブに実行され、特にサーバーレスおよびマイクロサービスアーキテクチャー向けに設計および最適化されています。

Camel K は、クラウドでのインテグレーションの実行時に、自動化およびパフォーマンスの最適化を提供します。これは Kubernetes Operator SDK を使用してインテグレーションをデプロイします (例: OCP でのサービスとルートの自動作成)。

Camel K は Apache Camel オープンソースコミュニティーのサブプロジェクトです。詳細は、https://github.com/apache/camel-k を参照してください。

7.2. OCP での Fuse Online を使用した Apache Camel K のインストール

Camel K オペレーターは Fuse Online で利用でき、OCP でのインテグレーションのデプロイおよび再デプロイのターンアラウンドタイムを短縮します (例: 1 - 2 分から数秒)。このセクションでは、Syndesis オープンソースプロジェクトから Fuse Online で Camel K をインストールする方法を説明します。

重要

テクノロジープレビューの Camel K ランタイムは Fuse Online のエクステンションをサポートしていません。

前提条件

  • Fuse Online をインストールする OCP クラスター、または開発用に作成されたローカルクラスターに接続する必要があります。
  • クラスター管理者の権限が必要です。

手順

  1. 最新の Fuse Online 1.8.x リリース (https://github.com/syndesisio/fuse-online-install/releases/tag/1.8) をダウンロードし、展開します。
  2. Camel K を使用するよう Fuse Online を設定します。

    $ bash install_ocp.sh --setup --camel-k

    これにより、Fuse Online と Camel K オペレーターがクラスターにインストールされます。

  3. Fuse Online および Camel K をクラスターにインストールします。

    $ bash install_ocp.sh --camel-k

    デフォルトでは、これにより現在の OCP プロジェクトに Fuse Online および Camel K ランタイムエンジンがインストールされ、スクリプトで Fuse Online にアクセスするルートが計算されます。Fuse Online がすでにインストールされている場合は、Camel K のみがインストールされます。

    注記

    camel-k がランタイムエンジンとしてインストールされると、spring-boot の従来の Camel インテグレーションランタイムが置き換えられます。

補足情報

詳細は、OCP での Fuse Online のインストール を参照してください。

第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 の後続の再デプロイメントでも、変更内容が反映されます。

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.