OpenShift Container Platform での Fuse Online のインストールと操作
Fuse Online のインストール、設定、アップグレード、および CI/CD パイプラインのインテグレーションのインポートやエクスポート
概要
前書き
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 のインストール
- 2章OCP 上の Fuse Online の管理
- 3章Prometheus を使用した OCP での Fuse Online インテグレーションの監視
- 4章Fuse Online のパブリック REST API エンドポイントの呼び出し方法
- 5章外部ツールを使用した CI/CD のインテグレーションのエクスポート/インポート
- 6章Fuse Online のパブリック REST API エンドポイントの参照情報
- 7章Apache Camel K の有効化による OCP での Fuse Online デプロイメントの高速化
- 8章Fuse Online ユーザーインターフェイスのカスタマイズ
第1章 OCP での Fuse Online のインストール
オンサイトで Fuse Online を OCP にインストールするための主なステップは以下のとおりです。
クラスター管理者権限を持つユーザーが、以下を実行します。
- インストールスクリプトをダウンロードします。
- クラスターレベルでカスタムリソース定義 (CRD) を登録します。
- プロジェクトで Fuse Online をインストールするユーザーにパーミッションを付与します。
Fuse Online をインストールするためにパーミッションを付与されたユーザーは、以下を実行します。
- すべての前提条件を満たしていることを確認します。
- インストール先の OpenShift プロジェクト、Fuse Online の OpenShift ルート、および OpenShift ログのアクセスレベルを考慮して Fuse Online をインストールする方法を決定します。
- インストールスクリプトをダウンロードします。
- 決定内容を実装するコマンドを使用して、インストールスクリプトを実行します。
- Fuse Online が稼働中であることを確認します。
Fuse Online のインストール手順では、コンテナーレジストリーが内部であることを前提としています。Fuse Online は、外部コンテナーレジストリー、カスタムレジストリー、または非接続環境でのレジストリーの使用をサポートせず、テストもしません。
詳細は以下のセクションを参照してください。
1.1. Fuse Online リソースをデプロイするためのカスタムリソース定義の登録
Fuse Online のインストールを可能にするため、クラスター管理者はカスタムリソース定義を登録します。管理者は、OpenShift クラスターに対して 1 度だけこれを実行する必要があります。また、管理者は Fuse Online をインストールするためのパーミッションを適切なユーザーに付与します。これで、各ユーザーがプロジェクトに Fuse Online をインストールできるようになります。
前提条件
- クラスターの管理者権限を持っている必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。
手順
以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.8
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.8
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。適切に接続され、カスタムリソース定義を一覧表示できることを確認するには、以下のコマンドを実行します。
$ oc get crd
クラスターレベルでカスタムリソース定義を登録するには、
fuse-online-install-1.8
ディレクトリーに移動し、以下のコマンドを実行します。$ bash install_ocp.sh --setup
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 レジストリーへのアクセスおよびその設定 を参照してください。
手順
Fuse Online インストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下の場所からダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.8
-
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.8
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。 Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
現在のプロジェクトが Fuse Online をインストールするプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。
$ oc project
または、インストールスクリプトの実行時にインストールプロジェクトを指定することもできます。
インストールスクリプトをダウンロードしたディレクトリーで、インストールスクリプトを実行します。
デフォルトのインストールを実行するには、以下を実行します。
$ 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
コマンドを実行してください。インストールが成功したことを確認します。
https://openshift-route
で OpenShift OAuth プロキシーログインページを表示します。インストールスクリプトの実行時に
--route
オプションを指定した場合は、openshift-route
を指定したルート名に置き換えます。インストールスクリプトによる OpenShift ルートの算出を選択した場合、実行の最後あたりで算出されたルートが表示されます。openshift-route
をスクリプトが提供する値に置き換えます。- 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 レジストリーへのアクセスおよびその設定 を参照してください。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下のコマンドを実行します。
$ oc project
syndesis カスタムリソースを編集します。
以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
リソースに以下が含まれていることを確認します。
spec: addons: komodo: enabled: "true"
- 必要な場合は、リソースを更新して保存します。
データ仮想化が正常に有効化されたことを確認します。
https://openshift-route
で OpenShift OAuth プロキシーログインページを表示します。openshift-route
を Fuse Online 環境の URL に置き換えます。OpenShift コンソールにログインしていない場合は、ログインページが表示されます。OpenShift ユーザー名およびパスワードを入力してログインします。
Fuse Online のホームページが、すぐに、もしくは OpenShift コンソールへのログイン後に表示されます。
- 左側のパネルで Data をクリックします。
- 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 をインストールするパーミッションが必要です。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
Fuse Online が稼働している OpenShift プロジェクトに切り替えます。このプロジェクトのみで検出を有効にします。以下に例を示します。
$ oc project my-fuse-online-project
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"}}}}}'
任意手順:切り替え先のプロジェクトで検出が有効になっていることを確認するには、以下のコマンドを実行します。
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-operator
が syndesis-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 プロジェクトで有効にされている必要があります
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
3scale の検出が有効になっている OpenShift プロジェクトに切り替えます。以下に例を示します。
$ oc project my-fuse-online-project
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-operator
がsyndesis-server
を再デプロイするようトリガーされます。新しいデフォルト動作では、API が 3scale で検出の対象ではなくなります。syndesis-server DeploymentConfig
オブジェクトを編集してOPENSHIFT_MANAGEMENT_URL_FOR3SCALE
環境変数を設定しないでください。syndesis-operator
により変更が元に戻るため、これは動作しません。syndesis-operator
は、常にsyndesis
カスタムリソースのみに従って Fuse Online がデプロイされるようにします。先ほど検出を無効化したプロジェクトで作成された 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 レジストリーへのアクセスおよびその設定 を参照してください。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。
$ oc project
syndesis
カスタムリソースを編集します。以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
以下の行をリソースの最後に追加します。
spec: demoData: true addons: todo: enabled: true
リソースを保存します。
syndesis
カスタムリソースに対するこの変更を保存することにより、Fuse Online のインストールを担うsyndesis-operator
がsyndesis-server
を再デプロイするようトリガーされます。
再デプロイされたサーバーがサンプルデータを提供することを確認します。
- ブラウザーで Fuse Online コンソールを表示します。
- 左側のナビゲーションパネルで Connections をクリックします。
- 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 をインストールまたはアップグレードするための権限を付与済みである必要があります。
手順
以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.8
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.8
ディレクトリーには、Fuse Online のアップグレード用のスクリプトとサポートファイルが含まれます。展開したアーカイブが含まれるディレクトリーに移動します。以下に例を示します。
$ cd fuse-online-install-1.8
Fuse Online をアップグレードする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer
現在のプロジェクトの名前を返す以下のコマンドを実行し、現在のプロジェクトに Fuse Online がインストールされていることを確認します。
$ oc project
Fuse Online がインストールされているプロジェクトに切り替える必要がある場合は、Fuse Online が含まれる OpenShift プロジェクトの名前を指定して以下のコマンドを実行します。
$ oc project project-name
アップグレードするバージョンを確認するには、以下のように
--version
オプションを指定して更新スクリプトを実行します。$ bash update_ocp.sh --version
以下のような更新スクリプトを実行します。
$ bash update_ocp.sh
このスクリプトの詳細を確認するには、
$ bash update_ocp.sh --help
を実行します。インフラストラクチャーのアップグレード中およびアップグレード後も、既存のインテグレーションは引き続き Fuse Online ライブラリーおよび依存関係の古いバージョンで実行されます。
次のように稼働中の Fuse Online インテグレーションをアップグレードします。
- Fuse Online で、アップグレードするインテグレーションを選択します。
- Edit を選択します。
- 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 の内部ストレージ容量を増やす場合、この手順を開始する前に以下を実行する必要があります。
- 保持する Fuse Online インテグレーションをすべてエクスポートします。
- すべての Fuse Online インテグレーションを削除します。
手順
Fuse Online インストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下の場所からダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.8
-
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.8
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。 Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
現在のプロジェクトが Fuse Online をインストールするプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下を実行します。
$ oc project
インストールスクリプトをダウンロードしたディレクトリーで、そのスクリプトを実行して
syndesis
リソースを取得します。これを後のステップで編集します。$ bash install_ocp.sh
syndesis
カスタムリソースを YAML ファイルとして取得します。oc get syndesis app -o yaml > syndesis.yaml
syndesis.yaml
を編集して、volumeCapacity
パラメーター設定を増やします。以下に例を示します。apiVersion: "syndesis.io/v1alpha1" kind: "Syndesis" metadata: name: "app" spec: components: db: resources: volumeCapacity: 10Gi
編集した
syndesis
リソースを新しい名前 (例:custom-syndesis.yaml
) で保存します。OpenShift は、新しい
volumeCapacity
の値をPersistentVolumeClaim
オブジェクトにコピーします。警告削除しないコネクションやインテグレーションなどのデータがある Fuse Online 環境で、次のコマンドを実行しないでください。次の手順のコマンドを実行すると、この Fuse Online 環境にあるすべての Fuse Online オブジェクトのデータが削除されます。
以下を実行して Fuse Online データを削除します。
oc delete syndesis app
ボリュームの容量を増やして設定する新しい
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 プロジェクトにインストールされている必要があります。
手順
- OpenShift コンソールにログインします。
- Fuse Online をインストールしたプロジェクトを開きます。
- OpenShift コンソールの左側のペインで、Applications > Routes を選択します。
-
syndesis-prometheus
Hostname URL をクリックし、新しいブラウザータブまたはウインドウで Prometheus ダッシュボードを開きます。
その他のリソース
- Prometheus を初めて使用する場合は、https://prometheus.io/docs/prometheus/latest/getting_started/ を参照してください。
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 プロキシーアプリケーションを作成するユーザーには、クラスター管理者権限が必要です。
手順
指定する名前を持つ OpenShift サービスアカウントを作成します。たとえば、次のコマンドを実行すると
cicd-client
サービスアカウントが作成されます。$ oc create serviceaccount cicd-client
Fuse Online のパブリック API にアクセスするためのパーミッションを新しいサービスアカウントに付与します。たとえば、syndesis が Fuse Online がインストールされている OpenShift プロジェクトの名前である場合や、
cicd-client
が新しいサービスアカウントの名前である場合、以下のコマンドを実行します。$ oc policy add-role-to-user edit system:serviceaccount:syndesis:cicd-client
以下のコマンドを実行して、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
です。ご覧のとおり、リソース名はoauth
とproxy
がハイフンでつながっていますが、テンプレートファイル名はハイフンでつながっていません。以下のコマンドを実行して、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 インテグレーションをエクスポートおよびインポートすることができます。
次のステップ
- 他の Fuse Online 環境にエクスポートするインテグレーションをマーク付けします。Fuse Online コンソールでインテグレーションをマーク付けしたり、インテグレーションをマーク付けする Fuse Online のパブリック REST API エンドポイントを呼び出す ことができます。
- Fuse Online のパブリック REST API エンドポイントを呼び出すよう外部ツールを設定します。
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 を公開している必要があります。
手順
この Fuse Online 環境のパブリック REST API を公開したときに作成したサービスアカウントのシークレットトークンの名前を取得します。たとえば、
cicd-client
がサービスアカウントの名前である場合、以下のコマンドを実行します。$ oc describe serviceaccount cicd-client
これにより、以下のような 2 つのトークンの名前が含まれる、
cicd-client
サービスアカウントの情報の一覧が表示されます。Tokens: cicd-client-token-gxb25 cicd-client-token-gxdnv
いずれかのトークンの内容を表示します。以下に例を示します。
$ oc describe secret cicd-client-token-gxb25
これにより、
token:
とそれに続く長いランダムな文字を表示するData
セクションなど、情報の一覧が表示されます。これはサービスアカウントの 2 つのシークレットトークンの 1 つです。- シークレットトークンをコピーし、ファイルに貼り付けて保存します。
結果
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>]
|
選択した |
|
エクスポートおよびインポートエンドポイントに、 |
| パブリック REST API を公開するときに作成した OpenShift サービスアカウントのシークレットトークンを指定します。 |
| エンドポイントが操作するインテグレーション、コネクション、または環境ラベルのある Fuse Online 環境のベース URL を指定します。 |
| 呼び出すエンドポイントを指定します。 |
|
任意で、HTTP メソッドを指定します (例: |
|
任意で、呼び出されるエンドポイントに応じて、エンドポイントが必要とする引数を指定します。たとえば、インテグレーションの環境ラベルを |
|
任意で、出力が含まれるファイルの名前を指定する必要がある場合には、 |
以下の 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 プロジェクトが必要です。
手順
- 左側の Fuse Online ナビゲーションパネルで Integrations をクリックします。
-
インテグレーションのリストで、マーク付けするインテグレーションのエントリーの右側で
をクリックし、ポップアップメニューを表示し、Manage CI/CD をクリックします。
表示されるダイアログで、以下のいずれかを行います。
- このインテグレーションをマーク付けする環境が表示されている場合、その環境の左側にあるチェックボックスを選択します。
- このインテグレーションをマーク付けする環境がすでに選択されている場合は、その環境を選択したままにしておきます。
- 環境のラベルを作成する必要がある場合、Manage CI/CD をクリックすると、新しい環境ラベルを作成するダイアログが表示されます。必要なラベルを作成してから、この手順に戻り、インテグレーションをマーク付けします。
Fuse Online によって、選択した環境ラベルがインテグレーションに適用されます。任意の数の環境ラベルをインテグレーションに適用できます。
- 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 パイプラインのインテグレーションが識別される必要があります。
手順
- Fuse Online の左側のナビゲーションパネルで Integrations をクリックします。
- 右上の Manage CI/CD をクリックします。
Manage CI/CD ページで以下を行います。
CI/CD 環境ラベルを作成するには、以下を実行します。
- Add New をクリックします。
- Add Tag Name ダイアログで、Tag Name 入力フィールドに新しい環境ラベルの名前を入力します (例: test1)。
- Save をクリックします。Manage CI/CD ページに、追加した環境ラベルの新しいエントリーがあります。
CI/CD 環境ラベルを変更するには、以下を実行します。
- CI/CD 環境ラベルの一覧内の、変更するラベルのエントリーで、Edit をクリックします。
- Edit Tag ダイアログで、必要に応じて名前を変更します。
- Save をクリックすると、環境ラベルのリストに更新された名前が表示されます。Fuse Online は、変更した環境ラベルですでにマーク付けされているすべてのインテグレーションに対し、更新された名前を適用します。
CI/CD 環境ラベルを削除するには、以下を実行します。
- CI/CD 環境ラベルの一覧内の、削除するラベルのエントリーで、Remove をクリックします。
- 確認ダイアログで、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 環境ですべてのインテグレーションを簡単に複製できます。これを行うには、以下を実行します。
- 環境ラベルがすでに作成されている必要があります。CI/CD のインテグレーションのマーク付け を参照してください。
-
エクスポートエンドポイントの呼び出しに
all=true
オプションを追加します。
以下に例を示します。
/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-api
、extensions
、integration-support
) を持つものとして定義しています。Fuse Online の OpenShift パブリック OAuth プロキシープロセスの使用時は、public-api
タグのみにアクセスできます。他の 2 つのタグは無視する必要があります。
- 「インテグレーションの状態を取得するためのエンドポイント」
- 「インテグレーションの環境ラベルの一覧を取得するためのエンドポイント」
- 「インテグレーションをマーク付けし、未指定のタグを維持するためのエンドポイント」
- 「インテグレーションをマーク付けし、未指定のタグを削除するためのエンドポイント」
- 「インテグレーションをパブリッシュするためのエンドポイント」
- 「インテグレーションを停止するためのエンドポイント」
- 「インテグレーションをエクスポートするためのエンドポイント」
- 「インテグレーションをインポートするためのエンドポイント」
- 「特定のインテグレーションから環境ラベルを削除するためのエンドポイント」
- 「環境ラベルを作成するためのエンドポイント」
- 「環境ラベルの一覧を取得するためのエンドポイント」
- 「環境ラベルを変更するためのエンドポイント」
- 「すべてのインテグレーションから環境ラベルを削除するためのエンドポイント」
- 「コネクションのプロパティーを変更するためのエンドポイント」
6.1. インテグレーションの状態を取得するためのエンドポイント
このエンドポイントは、指定されたインテグレーションの状態を返します。状態には Running、Stopped、Pending、または Error があります。
メソッドとエンドポイント
GET
/public/integrations/{id}/state
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須のパスパラメーター。状態を取得するインテグレーションの名前または内部 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須のパスパラメーター。環境ラベルを取得するインテグレーションの名前または内部 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。指定の環境に対してマーク付けするインテグレーションの名前または内部 ID。インテグレーション ID の検索方法 を参照してください。 |
追加のパラメーター | ||
|
|
|
| 文字列 | 必須。指定のインテグレーションに追加する 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。マーク付けするインテグレーションの名前または内部 ID。インテグレーション ID の検索方法 を参照してください。 |
追加のパラメーター | ||
|
|
|
| 文字列 | 必須。コンマ区切りの環境ラベルを 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。パブリッシュするインテグレーションの名前または内部 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。停止するインテグレーションの名前または内部 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。Fuse Online コンソールで作成した環境ラベル。エンドポイントは、この環境に対してマーク付けされたインテグレーションをエクスポートします。 |
クエリーパラメーター | ||
| 文字列 | 任意手順:Fuse Online 環境にあるすべてのインテグレーションをエクスポートする場合に、このオプションを指定します。エンドポイントは、各インテグレーションの現在のバージョンをエクスポートします。指定した環境に対してインテグレーションがマーク付けされていない場合は、エンドポイントによって指定の環境ラベルがインテグレーションに追加されます。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。 |
追加のパラメーター | ||
| 文字列 |
クエリーパラメーターを指定した場合は必須です。このオプションを指定しない場合、エクスポートされたインテグレーションは |
リクエストの例
以下の例では、エンドポイントは 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
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
追加のパラメーター | ||
| 文字列 | 必須。これは、インポートするインテグレーションが含まれるファイルです。このファイルを取得するには、これまでにエクスポートエンドポイントを呼び出したことがある必要があります。 |
| 文字列 | 必須。インポートされた各インテグレーションに追加する環境ラベル。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。 |
リクエストの例
以下の例では、エンドポイントは 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}
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須のパスパラメーター。マーク付けを解除するインテグレーションの名前または内部 ID。インテグレーション ID の検索方法 を参照してください。 |
| 文字列 | 必須のパスパラメーター。指定したインテグレーションから削除する環境ラベル。 |
追加のパラメーター | ||
|
|
|
リクエストの例
以下の例では、エンドポイントは dev1
環境ラベルを timer-to-log
インテグレーションから削除します。
/public/integrations/timer-to-log/tags/dev1 --request DELETE
応答の例
204
ステータスコードのコンテンツがない
6.10. 環境ラベルを作成するためのエンドポイント
このエンドポイントは環境ラベルを作成します。Fuse Online コンソールで、またはパブリック API エンドポイントを呼び出して明示的にマーク付けするまで、インテグレーションがこのラベルでマークが付けられることはありません。
メソッドとエンドポイント
POST
/public/environments/{env}
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。作成する環境ラベル。 |
生成されるもの
何も生成しませんが、応答は以下のようになります。
| 成功。 |
| 指定した環境名がすでに存在します。 |
| サーバーはリクエストに対応できません。 |
リクエストの例
以下の例では、エンドポイントが dev1
環境ラベルを作成します。
/public/environments/dev1 --request POST
このエンドポイントを呼び出した Fuse Online 環境に、dev1
環境ラベルが存在するようになります。このラベルでマーク付けされたインテグレーションはまだありません。
応答の例
応答ステータスコード 204
のコンテンツがない
6.11. 環境ラベルの一覧を取得するためのエンドポイント
このエンドポイントは、Fuse Online 環境に存在する環境ラベルの一覧を返します。Fuse Online コンソールで環境ラベルを作成します。CI/CD の環境ラベルの管理 を参照してください。
メソッドとエンドポイント
GET
/public/environments[?withUses=true]
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| ブール値 |
任意手順:コマンドが |
生成されるもの
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}
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。変更する環境ラベル。 |
追加のパラメーター | ||
| 文字列 | 必須。環境の新しいラベルを指定します。環境ラベルがすでに作成されている必要があります。エンドポイントはラベルを作成できません。 |
|
|
|
リクエストの例
以下の例では、エンドポイントが dev1
環境ラベルを dev2
に変更します。
/public/environments/dev1 -d ‘dev2' --request PUT
dev1
環境に対してマーク付けされていたインテグレーションのタグがなくなります。このインテグレーションは、dev2
環境に対してマーク付けされるようになります。
応答の例
応答ステータスコード 204
のコンテンツがない
6.13. すべてのインテグレーションから環境ラベルを削除するためのエンドポイント
このエンドポイントは、指定された環境ラベルが適用されている各インテグレーションからラベルを削除します。
メソッドとエンドポイント
DELETE
/public/environments/{env}
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 | 必須。インテグレーションから削除する環境ラベル。 |
追加のパラメーター | ||
|
|
|
リクエストの例
以下の例では、エンドポイントは dev1
タグを持つインテグレーションからそれを削除します。
/public/environments/dev1 --request DELETE
応答の例
応答ステータスコード 204
のコンテンツがない
6.14. コネクションのプロパティーを変更するためのエンドポイント
このエンドポイントは、指定されたコネクションのプロパティーを変更します。これは、設定が必要なコネクションがあるインテグレーションをインポートした後に役立ちます。たとえば、コネクションが使用するクレデンシャルを変更する必要がある場合などが該当します。
メソッドとエンドポイント
POST
/public/connections/{id}/properties
名前 | タイプ | 説明 |
---|---|---|
必須のヘッダーパラメーター | ||
|
| エンドポイントが必要とするメディアタイプ。 |
| カスタム | 認証に必要です。 |
| カスタム | Fuse Online のパブリック REST API を公開する OpenShift サービスアカウントのシークレットトークン。パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。 |
パスパラメーター | ||
| 文字列 |
必須。
|
リクエストの例
以下の例では、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 クラスター、または開発用に作成されたローカルクラスターに接続する必要があります。
- クラスター管理者の権限が必要です。
手順
- 最新の Fuse Online 1.8.x リリース (https://github.com/syndesisio/fuse-online-install/releases/tag/1.8) をダウンロードし、展開します。
Camel K を使用するよう Fuse Online を設定します。
$ bash install_ocp.sh --setup --camel-k
これにより、Fuse Online と Camel K オペレーターがクラスターにインストールされます。
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 をインストールできる権限を持っている必要があります。
手順
以下のコマンドを実行して、Fuse Online がインストールされている
syndesis-ui
Pod の名前を取得します。oc get pods
以下のコマンドを実行して、カスタマイズ可能なロゴ、アイコン、フォント、および背景を取得します。その際、SYNDESIS_UI_POD_NAME を
syndesis-ui
を実行している Pod の実際の名前に置き換えます。oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/static/media ~/
これにより、
~/media/
フォルダーにユーザーインターフェイスリソースが追加されます。-
ヘッダーロゴが含まれるファイル
`~/media/syndesis_logo_full_darkbkg.9c467d96.svg
を編集し、保存します。 更新されたロゴファイルが含まれる
ConfigMap
オブジェクトを作成して、変更したファイルをクラスターにアップロードします。cd ~/ oc create configmap syndesis-ui-custom-logo --from-file=media/syndesis_logo_full_darkbkg.9c467d96.svg
syndesis-ui
デプロイメントファイルを変更して、syndesis-ui-custom-logo
ConfigMap
オブジェクトをマウントします。これには、oc edit dc/syndesis-ui
を呼び出すか、OpenShift Web コンソールを使用して Applications > Deployments > syndesis-ui > Actions > Edit YAML と選択します。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
spec.template.volumes
の下に以下を追加します。-name: syndesis-ui-custom-logo-volume configMap: name: syndesis-ui-custom-logo
-
syndesis-ui
デプロイメントファイルを保存します。
-
`~/media
フォルダーにあるカスタマイズしたい各ファイルについて、ステップ 3 から 5 を繰り返します。 アプリケーションタイトルが含まれるファイルを編集および保存します。
ファイルを更新するディレクトリーを作成します。
mkdir ~/syndesis-custom/src
以下のコマンドを実行して、アプリケーションタイトルを取得します。その際、SYNDESIS_UI_POD_NAME は
syndesis-ui
を実行している Pod の実際の名前に置き換えます。oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/index.html ~/syndesis-custom/src
アプリケーションタイトルを置き換えます。以下に例を示します。
sed -i 's/<title>.*<\/title>/<title>NEW_TITLE<\/title>/g' ~/syndesis-custom/src/index.html
更新されたファイルが含まれる
ConfigMap
オブジェクトを作成して、変更したアプリケーションタイトルファイルをクラスターにアップロードします。cd ~/syndesis-custom/src oc create configmap syndesis-ui-custom-index --from-file=index.html
syndesis-ui-custom-index
ConfigMap
オブジェクトをマウントして、syndesis-ui
デプロイメントファイルを変更します。spec.template.containers.volumeMounts
の下に以下を追加します。-name: syndesis-ui-custom-vindex-olume mountPath: /opt/app-root/src/index.html subPath: index.html
spec.template.volumes
の下に以下を追加します。-name: syndesis-ui-custom-index-volume configMap: name: syndesis-ui-custom-index
-
syndesis-ui
デプロイメントファイルを保存します。
結果
syndesis-ui
デプロイメントファイルを保存すると、変更内容を反映したユーザーインターフェイスで Fuse Online が自動的に再デプロイされます。Fuse Online の後続の再デプロイメントでも、変更内容が反映されます。