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 環境を管理しません。お客様が管理する環境には、オンプレミス、クラウド、またはハイブリッドクラウドがあります。
詳細は以下のトピックを参照してください。
第1章 OCP での Fuse Online のインストール
Fuse Online をインストールするには、クラスター管理者が Fuse Online のカスタムリソース定義を登録して、適切なユーザーにインストール権限を割り当てる必要があります。Fuse Online をインストールするユーザーは、デフォルトの Fuse Online 環境またはカスタマイズされた Fuse Online 環境のどちらをインストールするかを決定する必要があります。Fuse Online カスタマイズ環境を使用する場合には、デフォルトのカスタムリソースファイルを編集する必要があります。
Fuse Online の各インストールは Fuse Online 環境と呼ばれます。OpenShift プロジェクトには、必ず 1 つの Fuse Online 環境があります。各 Fuse Online 環境には独自の URL があります。単一の OpenShift クラスターに、複数の Fuse Online 環境が存在することがあります。
Fuse Online インストールプロセスでは、コンテナーイメージの Red Hat カタログである registry.redhat.io にアクセスする必要があります。Fuse Online は、外部コンテナーレジストリー、カスタムレジストリー、または非接続環境でのレジストリーの使用をサポートせず、テストもしません。
Fuse Online のインストールに関する詳細は、以下を参照してください。
- 「OCP に Fuse Online をインストールするのに必要な手順の概要」
- 「Fuse Online リソースをデプロイするためのカスタムリソース定義の登録」
- 「Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合」
- 「Fuse Online の設定に使用するカスタムリソース属性の説明」
- 「Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集」
- 「外部データベースで Fuse Online をインストールするためのシークレットの作成」
- 「OCP に Fuse Online をインストールするスクリプトの実行」
1.1. OCP に Fuse Online をインストールするのに必要な手順の概要
OCP にオンサイトで Fuse Online をインストールするには、クラスター管理者がタスクを実行してから、特定の OpenShift プロジェクトで Fuse Online のインストール権限があるユーザーがタスクを実行して、インストールスクリプトを実行します。以下の図では、ワークフローを紹介します。
Fuse Online のインストール先の OpenShift プロジェクトごとに、クラスター管理者は、特定のプロジェクトで Fuse Online をインストールする権限をユーザーに割り当てる必要があります。
デフォルトの Fuse Online 環境をインストールするには、Fuse Online のインストール権限のあるユーザーがインストールスクリプトをダウンロードして実行します。上記以外の手順を実行する必要はありません。
その他のリソース
1.2. Fuse Online リソースをデプロイするためのカスタムリソース定義の登録
Fuse Online のインストールを可能にするため、クラスター管理者はカスタムリソース定義を登録します。管理者は、OpenShift クラスターに対して 1 度だけこれを実行する必要があります。その後、管理者は Fuse Online を該当のプロジェクトにインストールする権限をユーザーに付与します。これは、Fuse Online をインストールする各プロジェクトに対して行います。
前提条件
- クラスターの管理者権限を持っている必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。 - OCP 環境では、Fuse Online が使用できる永続ボリュームが少なくとも 3 つ必要です。
手順
以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
-
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.9
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。 クラスター管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u admin -p adminpwd
以下のコマンドを実行して、このクラスターにすでに登録されているカスタムリソース定義を一覧表示し、適切に接続されたことを確認します。
oc get crd
エラーメッセージが表示されなければ、正しく接続されています。
fuse-online-install-1.9
ディレクトリーに移動して以下のコマンドを実行し、クラスターレベルでカスタムリソース定義を登録します。bash install_ocp.sh --setup
以下のコマンドを再度実行して、登録が成功したことを確認します。
oc get crd
登録したカスタムリソース定義の出力一覧には、
syndesis
が含まれているはずです。Fuse Online をインストールする各プロジェクトで、ユーザーにインストールできる権限を付与します。各プロジェクトに対して以下を行います。
ユーザーが Fuse Online をインストールするプロジェクトに切り替えます。以下に例を示します。
oc project fuse-online-project
そのプロジェクトに Fuse Online をインストールする権限をユーザーに付与します。たとえば、以下のコマンドは、
developer
ユーザーに Fuse Online のインストール権限を付与します。このコマンドの実行後、developer
ユーザーは現在のプロジェクトfuse-online-project
に Fuse Online をインストールできます。bash install_ocp.sh --grant developer
Fuse Online のインストール権限を割り当てる OpenShift プロジェクトごとに、上記の 2 つのコマンドを繰り返します。ユーザーは、クラスターの複数のプロジェクトに Fuse Online をインストールできます。これを有効にするには、別のプロジェクトに切り替え、以下のように同じユーザーを指定します。
oc project another-fuse-online-project
bash install_ocp.sh --grant developer
結果
syndesis
カスタムリソース定義がクラスターに登録されます。
次のステップ
Fuse Online をインストールする権限があるユーザーは、デフォルトの Fuse Online 環境またはカスタマイズされた Fuse Online 環境のどちらをインストールするかを決定する必要があります。
1.3. Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合
Fuse Online のダウンロードパッケージには、設定可能な Fuse Online 環境アドオン機能およびパラメーター設定のデフォルトを指定する default-cr.yml
ファイルが含まれています。Fuse Online のインストールでは、default-cr.yml
ファイルを使用して、Fuse Online 環境の設定を制御する syndesis
カスタムリソースを作成します。
インストール後の Fuse Online 環境が以下に該当する場合のみ、Fuse Online をインストールする前に default-cr.yml
ファイルを編集する必要があります。
- Fuse Online コンソールにアクセスできる OpenShift ルートのために指定する URL を使用する場合。デフォルトではインストールプロセスによってこのルートが算出されます。
- Camel インテグレーションに、Spring Boot ランタイムではなく Camel K ランタイムエンジンを実行する場合。Camel K ランタイムはテクノロジープレビューの機能です。
- Knative リソースへのアクセスを有効にする場合。Knative リソースへのアクセスはテクノロジープレビューの機能です。
- 外部データベースを使用してコネクションおよびインテグレーション定義を保存する場合。デフォルトでは、内部データベースが使用されます。
-
コネクションやインテグレーション定義の永続化に使用できる内部ストレージの容量を増やす場合。ほとんどの Fuse Online 環境では、デフォルトの
1Gi
で十分対応できます。
上記のいずれかが該当する場合に Fuse Online 環境を設定するには、Fuse Online をインストールする前に default-cr.yml
ファイルを編集する必要があります。つまり、インストール後に Fuse Online 環境を変更して上記を実装することはできません。また、上記の設定を適用して Fuse Online 環境をインストールした場合、その設定を変更することはできません。
1.4. Fuse Online の設定に使用するカスタムリソース属性の説明
インストール前のみ指定できるカスタムリソース属性の他に、インストール前後に変更できるカスタムリソース属性が複数あります。
以下の表に、設定可能なカスタムリソース設定の簡単な説明と、インストール前のみ変更可能であるかどうかを示します。適切に Fuse Online を設定するには、以下の表の情報を活用して、インストール前に default-cr.yml
ファイルをどのように変更するか、またはインストール後に syndesis
カスタムリソースをどのように変更するかを見極める必要があります。その後、該当する手順にしたがいます。
Camel K ランタイム、Knative リソースへのアクセス、および Data Virtualization はテクノロジープレビュー機能です。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。
機能/設定 | 設定可能なタイミング | 指定内容 |
---|---|---|
Camel K ランタイム(テクノロジープレビュー) | インストール前のみ設定 |
|
強化されたアクティビティー追跡 | インストール前のみ設定 |
|
外部データベース | インストール前のみ設定 |
|
コネクションおよびインテグレーションの 内部ストレージ容量。 | インストール前のみ設定 |
|
Knative リソースへのアクセス | インストール前のみ設定 |
|
Fuse Online コンソールにアクセスするための OpenShift ルート | インストール前のみ設定 |
|
3scale の検出 | インストール前または後に設定 |
|
バックアップ | インストール前または後に設定 |
|
Data Virtualization | インストール前または後に設定 |
|
インテグレーションの制限 | インストール前または後に設定 |
|
Maven | インストール前または後に設定 |
|
メモリー | インストール前または後に設定 |
|
監視 | インストール前または後に設定 |
|
パブリック REST API | インストール前または後に設定 |
|
ToDo app | インストール前または後に設定 |
|
アドオン機能と設定
Camel K ランタイムエンジン (テクノロジープレビュー)
Apache Camel K ランタイムは、OCP でインテグレーションをデプロイおよび再デプロイするときに、ターンアラウンドタイムを短縮します。たとえば、1 - 2 分から数秒にパフォーマンスを改善できます。Camel K がランタイムエンジンとしてインストールされている場合、Camel インテグレーションの Spring Boot ランタイムが Camel K に置き換えられます。
Apache Camel K は、エンタープライズ統合パターン (Enterprise Integration Patterns) の Apache Camel フレームワークをベースとしたライトウェイトなクラウド統合プラットフォームです。Camel K は Kubernetes、OpenShift、および Knative でネイティブに実行され、特にサーバーレスおよびマイクロサービスアーキテクチャー向けに設計および最適化されています。Camel K は、クラウドでのインテグレーションの実行時に、自動化およびパフォーマンスの最適化を提供します。Camel K では Kubernetes Operator SDK を使用してインテグレーションをデプロイします。たとえば、OCP で自動的にサービスおよびルートが作成されます。
Camel K は Apache Camel オープンソースコミュニティーのサブプロジェクトです。詳細は、https://github.com/apache/camel-k を参照してください。
Camel K ランタイムが Fuse Online とインストールされている場合、以下の制限が適用されます。
- Fuse Online エクステンションは Camel K ランタイムによってサポートされません。
- エクステンションは、Fuse Online のユーザーインターフェイスの Customizations には表示されません。
Data Virtualization (テクノロジープレビュー)
Data Virtualization により、Fuse Online の開発者は複数の異なるソースからのデータを統合し、OpenShift でデプロイできる仮想データベースイメージを作成できます。詳細は、Red Hat Integration の Data Virtualization に関するドキュメント を参照してください。
強化されたアクティビティー追跡
install_ocp.sh
スクリプトを実行して Fuse Online をインストールした場合、Fuse Online 環境で強化されたアクティビティー追跡が有効になるのがデフォルトの動作です。OperatorHub を使用する場合は、Fuse Online をインストールする前に強化されたアクティビティー追跡を有効にすることが推奨されます。ユーザーインターフェイスを使用すると、有効にできます。コネクションおよびインテグレーションを永続化するための外部データベース
Fuse Online のデフォルトインストールは、コネクションおよびインテグレーション定義を永続化するために Fuse Online によって使用される内部 PostgreSQL データベースを提供します。この代わりに、Amazon RDS for PostgreSQL などの外部 PostgreSQL データベースの使用を選択できます。
内部ストレージ容量
ほとんどの Fuse Online 環境では、デフォルトの
1Gi
で十分対応できます。Red Hat テクニカルサポートが推奨する場合のみ、新しい Fuse Online インストールのこの設定を増強することが想定されます。これは、稼働している別の Fuse Online 環境で Fuse Online のサーバーエラーが発生し、Red Hat テクニカルサポートが、デフォルトよりも容量が大きいデータベースボリュームで Fuse Online 環境をインストールする必要があると判断した場合です。Fuse Online がすでに稼働している OpenShift プロジェクトで Fuse Online の内部ストレージ容量を増やすには、最初に Fuse Online をアンインストールする必要があります。OCP プロジェクトからの Fuse Online のアンインストール を参照してください。
1.5. Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集
デフォルトの Fuse Online 環境をインストールする場合、デフォルトのカスタムリソースファイルを編集する必要はありません。OCP での Fuse Online のインストール を参照してください。
Fuse Online のカスタマイズ環境をインストールする場合は、Fuse Online をインストールする前に、 default-cr.yml
ファイルを編集する必要があります。このファイルは、Fuse Online のダウンロードパッケージに含まれます。Fuse Online のインストール前にのみ指定できるカスタムリソース設定がいくつかあります。Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合 を参照してください。
Fuse Online のインストール前または後に指定できる、その他のカスタムリソース設定があります。Fuse Online の設定に使用するカスタムリソース属性の説明 を参照してください。
Fuse Online のインストールプロセスでは default-cr.yml
ファイルに指定された設定を使用して syndesis
カスタムリソースを作成します。syndesis
カスタムリソース設定によって、インストールされた Fuse Online 環境の設定が決定されます。
前提条件
- オンサイトで Fuse Online を OCP にインストールし、実行する計画があります。
-
oc
クライアントツールがインストール済みで、Fuse Online をインストールする計画のある OCP クラスターに接続されている必要があります。 - クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
手順
Fuse Online のインストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下を行います。
以下の場所からダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
-
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.9
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
-
エディターで
fuse-online-install-1.9/default-cr.yml
ファイルを開きます。 -
必要な機能を有効にし、必要なパラメーターを設定するために、
Default-cr.yml
ファイルを編集します。指定の必要がある項目を判断するには、Fuse Online の設定に使用するカスタムリソース属性の説明 を参照してください。 -
default-cr.yml
ファイルを保存します。
結果
default-cr.yml
ファイルに新しい Fuse Online インストールの設定が指定されます。
次のステップ
default-cr.yml
ファイルを編集し、外部データベースを指定した場合は、Fuse Online をインストールする前に 外部データベースで Fuse Online をインストールするためのシークレットの作成 の手順にしたがいます。それ以外の場合は、OCP での Fuse Online のインストール の手順にしたがいます。
1.6. 外部データベースで Fuse Online をインストールするためのシークレットの作成
外部データベースを使用してコネクションおよびインテグレーションの定義を永続化する Fuse Online 環境をインストールする場合は、Fuse Online をインストールする前に、OpenShift シークレットである syndesis-global-config
を作成します。
前提条件
-
コネクションおよびインテグレーションの定義を永続化するために外部データベースを使用ことを指定するために
default-cr.yml
ファイルが編集されている必要があります。 - Fuse Online がインストールされていない必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online をインストールする OCP クラスターに接続されている必要があります。 - クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
以下の内容を含むリソースファイル (例:
my-fuse-onling-secret-cr.yml
) を作成して、保存します。apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque data: POSTGRESQL_PASSWORD: base64-encoded-value
my-fuse-online-project
を、外部データベーであるスを指定する Fuse Online 環境をインストールする予定である OpenShift プロジェクトの名前に置き換えます。base64-encoded-value
を、外部データベースにアクセスするためのパスワードとして使用する base64 でエンコードされた値に置き換えます。OpenShift シークレットについての詳細は シークレット を参照してください。
以下のように、シークレットをクラスターに追加します。
oc apply -f my-fuse-online-secret-cr.yml
結果
クラスターでは、外部データベースを指定するカスタムリソースとインストールされた Fuse Online 環境で syndesis-global-config
シークレットを利用できます。
次のステップ
OCP での Fuse Online のインストール の手順にしたがいます。
1.7. OCP に Fuse Online をインストールするスクリプトの実行
Fuse Online インストールスクリプトを実行すると、Fuse Online ダウンロードパッケージに含まれる default-cr.yml
ファイルの設定にしたがって Fuse Online 環境がインストールされます。デフォルトの環境をインストールする場合は、このファイルを編集する必要はありません。カスタマイズされた環境をインストールする場合は、インストールスクリプトを実行する前に default-cr.yml
ファイルを編集する必要があります。
前提条件
- OCP がオンサイトで稼働している必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online にインストールする OCP クラスターに接続されている必要があります。 - クラスター管理者権限を持つユーザーが、プロジェクトで Fuse Online をインストールする権限を該当ユーザーに付与済みである必要があります。
-
インストール前に
default-cr.yml
ファイルを編集する必要があると判断した場合は、編集が完了済みである必要があります。(Fuse Online のインストール前にデフォルトのカスタムリソースファイルを編集する必要がある場合) -
編集された
default-cr.ym
ファイルにコネクションおよびインテグレーション定義を永続化するための外部データベースが指定された場合、外部データベースにアクセスするための OpenShift シークレットが作成されたことになります。(外部データベースで Fuse Online をインストールするためのシークレットの作成) -
ユーザー名とパスワードを知っている Red Hat developer のアカウントが必要です。
https://developers.redhat.com
に対して認証できるよう、インストールスクリプトから認証情報を求められます。アカウントの作成に関する詳細は、Red Hat レジストリーへのアクセスおよびその設定 を参照してください。
手順
Fuse Online のインストールスクリプトが含まれるパッケージをダウンロードしていない場合は、以下を行います。
以下の場所からダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
-
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.9
ディレクトリーには、Fuse Online をインストールするためのスクリプトとサポートファイルが含まれます。
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u developer -p developer
以下のように、Fuse Online をインストールする OpenShift プロジェクトに切り替えます。
$ oc project my-fuse-online-project
または、インストールスクリプトの実行時に
--project my-fuse-online-project
のように指定することもできます。インストールスクリプトをダウンロードしたディレクトリーで、インストールスクリプトを実行します。
bash install_ocp.sh
インストールスクリプトのオプションの詳細については
$ bash install_ocp.sh --help
コマンドを実行してください。Fuse Online をインストールするために
syndesis-operator
によって使用されたsyndesis
カスタムリソースに、必要な内容が適切に含まれていることを確認します。以下のコマンドを実行して、
syndesis
カスタムリソースの内容を表示します。oc describe syndesis/app
カスタムリソースの内容を確認します。
含まれていない更新がある場合は、カスタムリソースに構文エラーがある可能性があります。有効なカスタムリソースを定義するには、Fuse Online をアンインストールし、再インストールする必要があります。OCP プロジェクトからの Fuse Online のアンインストール を参照してください。
インストールに成功したことを確認します。
https://openshift-route
で OpenShift OAuth プロキシーログインページを表示します。インストールスクリプトによる OpenShift ルートの算出を選択した場合、実行の最後あたりで算出されたルートが表示されます。
openshift-route
をスクリプトが提供する値に置き換えます。default-cr.yml
ファイルを編集して Fuse Online にrouteHostname
を指定した場合は、openshift-route
を指定したルートに置き換えます。- OpenShift コンソールにログインしていない場合は、ログインページが表示されます。OpenShift ユーザー名およびパスワードを入力してログインします。
Fuse Online のホームページが、すぐに、もしくは OpenShift コンソールへのログイン後に表示されます。
その他のリソース
第2章 Fuse Online 環境の設定変更
オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールした後、Fuse Online 環境の設定を変更することができます。
詳細は以下のトピックを参照してください。
2.1. インストール後に変更可能な Fuse Online の設定
オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールした後、機能を有効または無効にしたり、設定を変更することができます。以下の表は、変更可能な機能および設定、変更の影響、および変更手順の記載場所を表しています。
syndesis
カスタムリソースへの変更によって syndesis-server
が再度デプロイされた場合、新しいサーバーデプロイメントが OpenShift によって作成されます。新しいサーバーの準備が整うまで、最大 1 - 2 分ほどかかります。準備が整うまで Fuse Online コンソールを使用することはできません。新しいサーバーのデプロイ中も、稼働中のインテグレーションは稼働し続けます。新しいデプロイメントの準備が整ったら、新しいサーバーによってインテグレーションの状態がロードされます。syndesis-server
Pod の状態が Running
であれば Fuse Online コンソールを使用することができます。Fuse Online コンソールを更新すると、インテグレーション、コネクション、メッセージ、および稼働時間の値が表示されます。
Data Virtualization はテクノロジープレビューの機能です。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、https://access.redhat.com/ja/support/offerings/techpreview を参照してください。
機能/設定 | 変更の影響 | 詳細 |
---|---|---|
3scale の検出 |
| |
バックアップ |
バックアップジョブを | |
Data Virtualization |
新しい | |
監視 | 新しい OpenShift リソースをインストールします。 | |
パブリック Fuse Online REST API エンドポイント |
| |
インテグレーションをテストするための Todo アプリケーションの例 |
新しい | |
外部 Maven リポジトリーの指定 |
| |
Fuse Online コンポーネントで使用できるメモリー | メモリーが変更されたコンポーネントを再度デプロイします。 | |
許可される稼働中のインテグレーションの数 |
|
2.2. Fuse Online の設定変更に関する一般的な手順
OCP にインストールされる Fuse Online 環境では、syndesis
カスタムリソースを更新して設定を変更できます。変更を保存した後、構文が正しい場合は OpenShift によって syndesis-operator
が更新されます。構文エラーがある場合は更新されません。
syndesis
カスタムリソースの編集中、構文が正しい無効な設定を指定しないようにしてください。構文が正しい設定が無効であっても、更新された syndesis
カスタムリソースが syndesis-operator
によって使用されます。無効な設定を指定した場合、OpenShift の更新後でのみ判明します。更新中、OpenShift では無効な設定が削除されます。
前提条件
- オンサイトで OCP に Fuse Online がインストールされている必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。 - Fuse Online の設定を変更するプロジェクトで Fuse Online をインストールする権限が必要です。
-
Fuse Online の設定に使用するカスタムリソース属性の説明 を読み、インストール後に変更可能な設定と、
syndesis
カスタムリソースを更新して設定変更を行う方法について理解する必要があります。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
設定を変更する Fuse Online 環境を実行している OpenShift プロジェクトに切り替えます。以下に例を示します。
oc project my-fuse-online-project
任意手順:誤った内容を更新および保存した場合に備え、
syndesis
カスタムリソースに現在の設定のバックアップコピーを作成します。たとえば、以下のコマンドを実行すると、バックアップがsyndesis_app_backup.yml
ファイルに保存されます。oc get syndesis app -o yaml > syndesis_app_backup.yml
以下のコマンドを実行して、エディターで syndesis カスタムリソースを開きます。
oc edit syndesis
-
必要に応じて
syndesis
カスタムリソースを編集します。 - リソースを保存します。
2 - 3 分間待ち、
syndesis-operator
でsyndesis
カスタムリソースへの更新を使用できることを確認します。以下のコマンドを実行して、
syndesis
カスタムリソースの内容を表示します。oc describe syndesis/app
内容を確認します。
syndesis
カスタムリソースに必要な設定が含まれていない場合は、これを再度編集して有効な設定を指定します。
結果
syndesis
カスタムリソースのほとんどの変更によって syndesis-operator
がトリガーされ、Fuse Online (syndesis-server
) が再デプロイされます。よって、OpenShift によって新しいサーバーデプロイメントが作成されます。新しいサーバーの準備が整うまで、最大 1 - 2 分ほどかかります。準備が整うまで Fuse Online コンソールを使用することはできません。新しいサーバーのデプロイ中も、稼働中のインテグレーションは稼働し続けます。新しいデプロイメントの準備が整ったら、新しいサーバーによってインテグレーションの状態がロードされます。以下の場合に、Fuse Online コンソールを再度使用できます。
-
syndesis-server
Pod の状態がRunning
である場合。 - Fuse Online コンソールを更新すると、インテグレーション、コネクション、メッセージ、および稼働時間の値が表示される場合。
syndesis
カスタムリソースの変更によっては、Fuse Online 設定が更新されても syndesis-server
の再デプロイメントは必要ないものがあります。以下に例を示します。
-
syndesis
カスタムリソースを更新してバックアップを指定する場合、バックアップジョブが利用可能になるまで数秒かかります。 Fuse Online 設定を更新して Data Virtualization を有効にするには、Fuse Online コンソールのユーザーインターフェイスを更新し、Data Virtualization Pod をデプロイする必要があります。通常、コンソールの更新には最大 10 秒かかりますが、Data Virtualization Pod のデプロイにかかる時間は多数の要因によって異なります。Fuse Online 環境で Data Virtualization が有効になっていることを確認するには、以下を行います。
- Fuse Online コンソールの左側のパネルで Data をクリックします。
- Data Virtualizations ページで、データビューを追加できるはずです。
各設定変更の影響については インストール後に変更可能な Fuse Online の設定 を参照してください。
2.3. 3scale で API の検出を無効化する Fuse Online の設定
API プロバイダーインテグレーションを作成する場合、Red Hat 3scale でそのインテグレーションの API の検出を有効することがあります。デフォルトの動作では、API は 3scale の自動検出の対象になりません。検出を有効にするには、3scale ユーザーインターフェイスの URL を指定する必要があります。
Fuse Online をインストールする前に 3scale で API の検出を有効にするよう Fuse Online を設定するには Fuse Online の設定に使用するカスタムリソース属性の説明 を参照してください。
インストール後に syndesis
カスタムリソースを更新すると、検出を有効にすることができます。本トピックでは、この手順を説明します。検出を有効にすると、リソースの更新時に接続されている OpenShift プロジェクトのみに適用されます。
3scale サービス検出を有効にすると、以下のようになります。
デフォルトの動作として、3scale は API プロバイダーインテグレーションをパブリッシュします。3scale が API プロバイダーインテグレーションをパブリッシュする場合は、以下のとおりです。
- Fuse Online は、稼働している API プロバイダーインテグレーションの外部 URL を提供しません。
- API には 3scale からのみアクセスできます。エンドポイントを公開するために 3scale の設定が必要です。詳細は、Red Hat 3scale API 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 edit syndesis
3scale ユーザーインターフェイスの URL に
managementUrlFor3scale
を設定し、リソースを編集します。結果は以下のようになります。spec: components: server: features: managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
- リソースを保存します。
任意手順:切り替え先のプロジェクトで検出が有効になっていることを確認するには、以下のコマンドを実行します。
oc describe dc/syndesis-server
検出が有効な場合、
OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
環境変数がカスタムリソースで指定した 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.4. 3scale で API の検出を無効化する Fuse Online の設定
API の 3scale 検出を有効化する Fuse Online の設定 で説明されている手順に従っている場合、各 API プロバイダーインテグレーションの作成者は、そのインテグレーションの API が検出可能かどうかを選択できます。場合によっては、インテグレーション API が 3scale では検出できないデフォルトの動作を再設定する必要になることがあります。たとえば、Fuse Online で API プロバイダーを編集およびテストする場合などです。このような場合、managementUrlFor3scale
キーと値を指定する行がコメントアウトされるよう Fuse Online の syndesis
カスタムリソースを更新します。これにより、3scale による検出が無効になります。その後、検出可能な API でパブリッシュされた API プロバイダーインテグレーションを再パブリッシュします。
前提条件
- オンサイトで OCP に Fuse Online がインストールされている必要があります。
- 検出を無効にするプロジェクトで Fuse Online をインストールするパーミッションが必要です。
-
oc
クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。 - 3scale 検出は、API の 3scale 検出を有効化する Fuse Online の設定 で説明されているように OpenShift プロジェクトで有効にされている必要があります
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
3scale の検出が有効になっている OpenShift プロジェクトに切り替えます。以下に例を示します。
oc project my-fuse-online-project
syndesis
カスタムリソースを編集します。以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
managementUrlFor3scale
キーおよび値を指定する行の最初にハッシュ記号 (#
) を挿入して、リソースを編集します。これにより、行がコメントになり、検出が無効になります。結果は以下のようになります。spec: components: server: features: # managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
リソースを保存します。
これにより、
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.5. OCP で稼働している Fuse Online 環境へのサンプルアプリケーションの追加
新しいユーザーが Fuse Online でのインテグレーションの作成方法を学べるよう、Fuse Online 環境にサンプルアプリケーションを追加することができます。To Do アプリケーションは、AMQ to REST API サンプルインテグレーションが想定どおりに機能することをユーザーが確認できるようにします。
Fuse Online を設定して、Fuse Online をインストールする前に ToDo アプリケーションを取得する場合は Fuse Online の設定に使用するカスタムリソース属性の説明 を参照してください。
または、Fuse Online 環境に ToDo アプリケーションを追加せずに、サンプルアプリケーションが含まれる Fuse Online 評価環境 をリクエストすることもできます。新しいユーザーは Fuse Online サンプルインテグレーションのチュートリアル の手順にしたがって、サンプルインテグレーションを作成できます。
前提条件
- オンサイトで Fuse Online が 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 my-fuse-online-project
syndesis
カスタムリソースを編集します。以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
以下の行がリソースにあることを確認します。必要に応じて編集します。
spec: addons: todo: enabled: true
リソースを保存します。
この変更を
syndesis
カスタムリソースに保存すると、新しいtodo
Pod の作成がsyndesis-operator
によって引き起こされます。
次のステップ
AMQ to REST API サンプルインテグレーションの実装 を行って、Todo アプリケーションを使用します。
第3章 OCP 上の Fuse Online の管理
オンサイトで Fuse Online を OpenShift Container Platform (OCP) にインストールしたら、Prometheus を使用してインテグレーションアクティビティーを監視し、Fuse Online 環境の復元に使用できる Fuse Online の定期的なバックアップを設定できます。必要に応じて、Fuse Online のアップグレード、Fuse Online のアンインストール、または Fuse Online が含まれる OCP プロジェクトの削除を行うことができます。
詳細は以下のトピックを参照してください。
3.1. Prometheus を使用した OCP での Fuse Online インテグレーションの監視
Prometheus を使用して Fuse Online インフラストラクチャーおよび Fuse Online インテグレーションを監視できます。これには、syndesis
カスタムリソースの ops
アドオンを有効にします。ops
を有効にすると、別の OpenShift プロジェクトにインストールされた Prometheus インスタンスで Fuse Online を監視できます。ops
アドオンは、Fuse Online をインストールする前および後で有効にできます。
以下の手順では、Fuse Online 設定を変更して Prometheus を有効にします。Fuse Online をインストールする前に Prometheus を有効にする場合は Fuse Online の設定に使用するカスタムリソース属性の説明 を参照してください。
前提条件
- オンサイトで Fuse Online が 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 my-fuse-online-project
syndesis
カスタムリソースを編集します。以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
以下の行がリソースにあることを確認します。必要に応じて編集します。
spec: addons: ops: enabled: true
- リソースを保存します。
結果
この変更を syndesis
カスタムリソースに保存すると、新しい OpenShift リソースのインストールが syndesis-operator
によって引き起こされます。syndesis-server
を再デプロイメントする必要はありません。
次のステップ
Prometheus および Grafana をインストールする Application Monitoring Operator をインストールします。
その他のリソース
- Prometheus を初めて使用する場合は、https://prometheus.io/docs/prometheus/latest/getting_started/ を参照してください。
- Prometheus を使用した Fuse Online の監視に関する詳細は、Monitoring Red Hat Integration を参照してください。
3.2. Fuse Online 環境のバックアップ
Fuse Online を定期的にバックアップするよう設定できます。
- Fuse Online がコネクションとインテグレーションを保存する内部 PostgreSQL データベース。
-
syndesis-operator
によって作成され、Fuse Online の実行に必要な OpenShift リソース。これには、設定マップ、デプロイメント設定、およびサービスアカウントが含まれますが、これらに限定されません。
Fuse Online をインストールする前に Fuse Online 環境のバックアップを設定するか、Fuse Online 環境の設定を変更してバックアップを有効することができます。
Fuse Online がバックアップを実行するように設定されている場合、Fuse Online はデータを単一のファイルに圧縮し、そのファイルを指定した Amazon S3 バケットにアップロードします。新しい Fuse Online 環境 (コネクションやインテグレーションが定義されていない) にバックアップを適用して、バックアップした Fuse Online 環境を復元できます。
前提条件
- OCP がオンサイトで稼働している必要があります。
-
oc
クライアントツールがインストール済みで、Fuse Online が稼働中または稼働予定の OCP クラスターに接続されている必要があります。 - クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
- AWS アクセスキーと AWS シークレットキーが必要です。これらのクレデンシャルの取得に関する詳細は、IAM ユーザーのアクセスキーの管理 を参照してください。
- アップロードする S3 バケットが存在する AWS リージョンを知っておく必要があります。
- バックアップのアップロード先の S3 バケットの名前を知っておく必要があります。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
バックアップを設定する Fuse Online 環境を稼働中または稼働予定の OpenShift プロジェクトに切り替えます。以下に例を示します。
oc project my-fuse-online-project
OpenShift シークレットを作成します。コマンドラインで以下を行います。
-
以下のコマンド形式で
syndesis-backup-s3
を指定します。 AWS 変数を、AWS アクセスキー、AWS シークレットキー、バケットがある AWS リージョン、およびバケットの名前に置き換えます。
以下のコマンド形式を使用してシークレットを作成します。
oc create secret generic syndesis-backup-s3 \ --from-literal=secret-key-id="my-aws-access-key" \ --from-literal=secret-access-key="my-aws-secret-key" \ --from-literal=region="aws-region" \ --from-literal=bucket-name="aws-bucket-name"
このシークレットは、バックアップジョブの実行中に存在する必要があります。
-
以下のコマンド形式で
Fuse Online がインストールされていない場合は、
default-cr.yml
ファイルを編集してバックアップを有効にする必要があります。Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集 を参照してください。Fuse Online のインストール後、カスタムリソースに指定したスケジュールに応じてバックアップジョブが発生します。Fuse Online が稼働している場合、
syndesis
カスタムリソースを編集する必要があります。以下のコマンドを実行して、エディターで
syndesis
カスタムリソースを開きます。oc edit syndesis
以下を
spec:
の下に追加します。backup: schedule: my-backup-interval
my-backup-interval
をバックアップの間隔に置き換えます。以下を参照して、バックアップの間隔を指定する方法を判断してください。- cron を使用して事前設定されたスケジュール (英語)
cron で設定する間隔 (英語)
間隔の前に
@
記号を指定しないでください。たとえば、毎日バックアップを行うよう設定するには、カスタムリソースに以下のような記述が含まれるようにします。apiVersion: syndesis.io/v1beta1 kind: Syndesis metadata: name: app spec: backup: schedule: daily
ファイルを保存します。
これにより、バックアップジョブが
syndesis-operator
に追加されます。
結果
Fuse Online がすでに稼働している場合、定義したスケジュールに応じて Fuse Online のバックアップジョブが実行されます。
次のステップ
Fuse Online をインストールする必要がある場合は、default-cr.yml
ファイルを編集して、その他の必要な機能を有効にしたり、他のパラメーターを設定したりします。Default-cr.yml
ファイルにすべての設定がある場合は、OpenShift シークレットの作成時に指定したプロジェクトで Fuse Online をインストールします。
3.3. Fuse Online 環境の復元
コネクションまたはインテグレーションが作成されていない新しい Fuse Online 環境で、Fuse Online 環境のバックアップを復元できます。Fuse Online 環境の復元後、復元されたコネクションを編集してパスワードを更新する必要があります。その後、復元されたインテグレーションをパブリッシュできます。
前提条件
- OCP がオンサイトで稼働している必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online 環境を復元する OCP クラスターに接続されている必要があります。 - クラスター管理者権限を持つユーザーは、該当ユーザーがクラスターでアクセス権限を持つプロジェクトに Fuse Online をインストールするための権限を付与済みである必要があります。
- データを定期的にバックアップし、Amazon S3 にデータをアップロードするよう設定された Fuse Online 環境が必要です。
- バックアップされた Fuse Online 環境と、バックアップを復元する Fuse Online 環境で、Fuse Online のリリース番号 (例: 7.6) が同じである必要があります。
- Fuse Online バックアップが含まれる AWS バケットにアクセスする権限が必要です。
- バックアップを復元する Fuse Online 環境は新しい Fuse Online インストールである必要があります。つまり、コネクションやインテグレーションは定義されていません。Fuse Online 環境にコネクションとインテグレーションがあるプロジェクトで復元する場合、Fuse Online 環境をアンインストールし、新しい Fuse Online 環境をインストールする必要があります。
手順
- Amazon S3 から必要なバックアップファイルをダウンロードします。詳細は、AWS ドキュメントの S3 バケットからオブジェクトをダウンロードする方法 を参照してください。
zip ファイルの内容を展開します。たとえば、以下のコマンドラインを実行すると、
7.6-2020-03-15-23:30:00.zip
ファイルが展開され、内容が/tmp/fuse-online-backup
フォルダーにコピーされます。unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backup
以下の例のように、Fuse Online データベースをデコードします。
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
新しい Fuse Online 環境を稼働している OpenShift プロジェクトに切り替えます。たとえば、新しい Fuse Online 環境が
my-fuse-online-project
にある場合は、以下のコマンドを実行します。oc project my-fuse-online-project
これ以降の手順では、新しい Fuse Online 環境が含まれるプロジェクトに切り替えたことを想定します。
データベース Pod の名前を取得します。
復元された Fuse Online 環境で、提供された内部 PostgreSQL データベースが使用される場合は、以下のコマンドを実行し、データベース Pod の名前を取得します。
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
復元された Fuse Online 環境で外部データベースが使用される場合、そのデータベースの Pod の名前を取得する方法を知っている必要があります。
これ以降のコマンドでは、
DATABASE_POD_NAME
を復元された Fuse Online 環境のデータベース Pod の名前に置き換えます。データベースにアクセスしているコンポーネントをスケールダウンします。
syndesis-operator
をスケールダウンし、他のコンポーネントをスケールダウンできるようにします。oc scale dc syndesis-operator --replicas 0
syndesis-server
およびsyndesis-meta
コンポーネントをスケールダウンします。oc scale dc syndesis-server --replicas 0
oc scale dc syndesis-meta --replicas 0
データベースのバックアップファイルを Fuse Online データベース Pod に送信します。
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
Fuse Online データベース Pod でリモートシェルセッションを開きます。
oc rsh DATABASE_POD_NAME
以下のコマンドを実行して Fuse Online データベースを復元します。
psql
コマンドによってデータベースのパスワードが要求され、復元された Fuse Online 環境で提供された内部 PostgreSQL データベースが使用される場合は、syndesis-db
デプロイメント設定のPOSTGRESQL_PASSWORD
環境変数でパスワードを確認できます。復元された Fuse Online 環境で外部データベースが使用される場合、パスワードを知っている必要があります。cd /tmp psql -c 'DROP database if exists syndesis_restore' psql -c 'CREATE database syndesis_restore' pg_restore -v -d syndesis_restore /tmp/syndesis-db psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'" psql -c 'DROP database if exists syndesis' psql -c 'ALTER database syndesis_restore rename to syndesis'
Fuse Online が復元されるはずです。RSH セッションを終了できます。
exit
Fuse Online コンポーネントをスケールアップします。
oc scale dc syndesis-operator --replicas 1
syndesis-operator
を1
にスケールアップすると、スケールダウンされた他の Pod がスケールアップされます。スケールアップされない場合は手作業でスケールアップできます。oc scale dc syndesis-server --replicas 1
oc scale dc syndesis-meta --replicas 1
サーバーは復元された各インテグレーションを開始しようとしますが、最初にコネクションを更新する必要があります。したがって、復元されたインテグレーションが稼働していないことを確認します。
Fuse Online コンソールルートを取得します。
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
- Fuse Online をインストールする権限を持つ OpenShift ユーザーアカウントで、Fuse Online コンソールにログインします。
- インテグレーションのリストを表示し、すべてのインテグレーションが停止したことを確認します。稼働しているインテグレーションがある場合は停止します。
パスワードのある各コネクションを更新し、この Fuse Online 環境の正しいパスワードを適用します。以下の手順は、提供された PostgresDB コネクションでこの作業を行う方法になります。
-
この復元された Fuse Online 環境が稼働しているプロジェクトの OpenShift コンソールで、PostgresDB コネクションのパスワードを取得します。
syndesis-db
では、パスワードは環境変数にあります。 - Fuse Online コンソールでコネクションを表示します。
- PostgresDB コネクションを編集します。
- PostgresDB コネクションのコネクション詳細で、取得したパスワードを Password フィールドに貼り付けます。
-
この復元された Fuse Online 環境が稼働しているプロジェクトの OpenShift コンソールで、PostgresDB コネクションのパスワードを取得します。
各インテグレーションで Configuration Required が表示されないことを確認します。表示される場合は、インテグレーションを編集して問題を解決します。インテグレーションのすべてのステップが正しいければ、インテグレーションをパブリッシュします。
Build ステップの直後に、インテグレーションが Stopped 状態にロールバックされ続ける場合は、デプロイメントを削除して、設定が必要ないことを確認し、再度インテグレーションのパブリッシュを試行します。
ログに記録された以下のメッセージは、無視しても問題はありません。
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
3.4. OCP での Fuse Online のアップグレード
オンサイトで OCP で Fuse Online をアップグレードするには、最新の Fuse Online リリースをダウンロードして、クラスター管理者から Fuse Online をアップグレードする権限を取得し、更新スクリプトを実行します。
時々、パッチとセキュリティー修正が組み込まれた新しいアプリケーションイメージが Fuse Online に対してリリースされます。これらの更新は、Red Hat のエラータ更新チャネルを介して通知されます。その後、Fuse Online イメージをアップグレードできます。
下記条件のアップグレード手順は同じです。
- Fuse Online 7.5 から Fuse Online 7.6
- Fuse Online 7.6 の古いバージョンから Fuse Online 7.6 の新しいバージョン
前提条件
オンサイトで Fuse Online バージョン 7.5 が OCP にインストールされ、稼働している。または、オンサイトで Fuse Online 7.6 のあるバージョンが OCP にインストールされ、稼働しており、新しいアプリケーションイメージへのアップグレードを考えている。
以前のバージョンの場合は以下が必要になります。
- OCP で Fuse Online バージョン 7.4 を実行している場合は、7.5 にアップグレード してから 7.6 にアップグレードする必要があります。
- OCP で Fuse Online バージョン 7.3 を実行している場合は、7.4 にアップグレード してから 7.5 にアップグレードする必要があります。
- OCP で Fuse Online バージョン 7.2 を実行している場合は、7.3 にアップグレード する必要があります。
- OCP で Fuse Online バージョン 7.1 を実行している場合は、7.2 にアップグレード する必要があります。
-
oc
クライアントツールをインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。 - クラスター管理者権限がある (この手順の最初の 5 つの手順で必要です)。
手順
クラスター管理者は、Fuse Online パッケージをダウンロードしてして、特定のプロジェクトでユーザーに対して Fuse Online のアップグレード権限を割り当てる必要があります。
以下の場所から Fuse Online インストールスクリプトが含まれるパッケージをダウンロードします。
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
ファイルシステムの任意の場所で、ダウンロードしたアーカイブを展開します。
fuse-online-install-1.9
ディレクトリーには、Fuse Online のアップグレード用のスクリプトとサポートファイルが含まれます。展開したアーカイブが含まれるディレクトリーに移動します。以下に例を示します。
cd fuse-online-install-1.9
以下のように、クラスター管理者アカウントで OpenShift にログインします。
oc login -u admin -p admin
Fuse Online をアップグレードする必要のある OpenShift プロジェクトに切り替えます。
oc project fuse-online-project
そのプロジェクト内だけで、Fuse Online のアップグレード権限を割り当てます。たとえば、以下のコマンドは、
developer
ユーザーに、Fuse Online のアップグレード権限を割り当てます。クラスター管理者がこのコマンドを実行した後に、developer
ユーザーは対象のプロジェクトでのみ (fuse-online-project
) Fuse Online をアップグレードできます。bash install_ocp.sh --grant developer
Fuse Online のアップグレード権限を割り当てられたユーザーは、アプリケーションを実行できます。
以下のように、OpenShift にログインします。
oc login -u developer
以下のように、Fuse Online をアップグレードするプロジェクトに切り替えます。
oc project fuse-online-project
アップグレードするバージョンを確認するには、以下のように
--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 依存関係を使用して再ビルドが強制されます。
3.5. OCP プロジェクトからの Fuse Online のアンインストール
プロジェクトやプロジェクトの内容を削除せずに、OCP プロジェクトから Fuse Online をアンインストールできます。Fuse Online のアンインストール後、稼働中のインテグレーションは継続されますが、編集または再パブリッシュできなくなります。
前提条件
- Fuse Online がインストールされている OCP プロジェクトが必要です。
- Fuse Online がインストールされている他の OpenShift プロジェクトで使用するインテグレーションをエクスポートしてある必要があります。必要な場合は、インテグレーションのエクスポート を参照してください。
手順
Fuse Online をインストールする権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u developer -p developer
アンインストールする Fuse Online 環境を実行している OpenShift プロジェクトに切り替えます。以下に例を示します。
oc project my-fuse-online-project
Fuse Online インフラストラクチャーを削除します。
oc delete syndesis app
syndesis-operator DeploymentConfig
およびImageStream
リソースを削除します。oc delete dc/syndesis-operator
oc delete is/syndesis-operator
3.6. Fuse Online が含まれる OCP プロジェクトの削除
Fuse Online がインストールされている OpenShift プロジェクトを削除すると、プロジェクトのすべてが削除されます。これには、定義されたすべてのインテグレーションと、稼働中のすべてのインテグレーションが含まれます。
前提条件
- Fuse Online がインストールされている OCP プロジェクトが必要です。
- Fuse Online がインストールされている他の OpenShift プロジェクトで使用するインテグレーションをエクスポートしてある必要があります。必要な場合は、インテグレーションのエクスポート を参照してください。
手順
oc delete project
コマンドを実行します。たとえば、名前が fuse-online-project
である OpenShift プロジェクトを削除するには、以下のコマンドを入力します。
oc delete project fuse-online-project
第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 がインストールされている OpenShift プロジェクトごとに、ここの手順を繰り返す必要があります。
前提条件
- Fuse Online がインストールされている OCP プロジェクトが必要です。
-
oc
クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている必要があります。 - 外部 CI/CD ツールを使用しており、マーク付けされたインテグレーションを Fuse Online 環境から別の Fuse Online 環境にコピーする状況です。
-
syndesis-operator grant
コマンドの実行には、クラスターの管理者権限が必要です。クラスターの管理者権限はなく、OpenShift プロジェクトの管理者権限があるユーザーは、他のコマンドを実行できます。
手順
クラスターの管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。
oc login -u admin -p admin
クラスターの管理者権限は、
syndesis-operator grant
コマンドにのみ必要ですが、クラスター管理者がすべての手順を実行することを想定します。Fuse Online が稼働している OpenShift プロジェクトに切り替えます。このプロジェクトでのみパブリック API を公開します。以下に例を示します。
oc project fuse-online-north
ロールを
syndesis-public-oauthproxy
サービスアカウントに付与します。OpenShift プロジェクトでは、このサービスアカウントを使用して OAuth プロキシーサービスを実行します。クラスターの管理権限を持つユーザーアカウントを指定します。以下に例を示します。syndesis-operator grant --user developer
このコマンドは、クラスターロールとクラスターのロールバインディングを作成し、これを
syndesis-public-oauthproxy
サービスアカウントに割り当てます。ClusterRoleBinding は、API を公開する OpenShift プロジェクトの名前を指定します。この例では、名前はfuse-online-north
になります。-
ClusterRole:
syndesis-auth-delegator
-
ClusterRoleBinding:
syndesis-fuse-online-north-auth-delegator
-
ClusterRole:
クライアントサービスアカウントを作成し、Fuse Online のパブリック API にアクセスする権限を付与します。
選択した名前で OpenShift サービスアカウントを作成します。たとえば、次のコマンドを実行すると
cicd-client
サービスアカウントが作成されます。oc create serviceaccount cicd-client
パブリック API エンドポイントを呼び出すコマンドは、このアカウントを使用してパブリック API にアクセスします。また、このサービスアカウントは、API エンドポイントへの呼び出しで指定する必要のあるシークレットトークンを取得するために必要です。この説明は パブリック REST API エンドポイントを呼び出すためのシークレットトークンの取得 を参照してください。
Fuse Online のパブリック API にアクセスするための権限をクライアントサービスアカウントに付与します。Fuse Online がインストールされた OpenShift プロジェクトの名前が
fuse-online-north
で、API サービスにアクセスするために作成したサービスアカウントの名前がcicd-client
である場合、以下のコマンドを実行します。$ oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
syndesis
カスタムリソースを編集します。以下のコマンドを実行します。通常、エディターでリソースが開かれます。
oc edit syndesis
リソースを編集して、パブリック API を有効にし、
routeHostname
の設定としてエンドポイントを呼び出すための Fuse Online 環境のパブリックアドレスを指定します。Fuse Online のインストールに使用されたdefault-cr.yml
ファイルで、パブリック API が有効化され、エンドポイントのルートホスト名が指定されている場合は、リソースを編集する必要はありません。クラスターのセットアップにより、指定する必要のあるパブリックアドレスが決定されます。詳細は、ルートに関する OpenShift ドキュメントに記載されています。以下の例では、ルートのホスト名は minishift クラスターに対して有効です。
spec: addons: publicApi: enabled: true routeHostname: public-syndesis.192.168.64.63.nip.io
リソースを保存するか、そのまま閉じます。
syndesis
カスタムリソースを保存することにより、Fuse Online のインストールを担うsyndesis-operator
がパブリック API OAuth プロキシーサービスをデプロイするようトリガーされます。syndesis
カスタムリソースを編集する必要がなければ、パブリック API OAuth プロキシーサービスはすでにデプロイされています。これは、Fuse Online のインストールに使用されたdefault-cr.yml
ファイルでpublicApi
が有効化され、そのルートが指定されたためです。
結果
OpenShift で、以下を確認できるようになります。
-
syndesis-public-oauthproxy
デプロイメント設定の Pod。 -
syndesis-public-oauthproxy
サービス。 -
syndesis-public-api
ルート。
この手順を実行した OpenShift プロジェクトでは、外部 CI/CD ツールで Fuse Online のパブリック REST API エンドポイントを使用して Fuse Online インテグレーションをエクスポートまたはインポートできます。
次のステップ
- 他の Fuse Online 環境にエクスポートするインテグレーションをマーク付けします。Fuse Online コンソールでインテグレーションをマーク付けしたり、インテグレーションをマーク付けする Fuse Online のパブリック REST API エンドポイントを呼び出す ことができます。
-
パブリック API エンドポイントが利用できることを確認するには、環境名を返す
curl
コマンドを実行します。環境ラベルの一覧を取得するためのエンドポイント を参照してください。 - 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 で Fuse Online を稼働している場合、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/openapi.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章 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 の後続の再デプロイメントでも、変更内容が反映されます。