第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 Management『Admin Portal Guide』の「Service Discovery」 を参照してください。
  • API プロバイダーインテグレーションの作成者は、そのインテグレーションの 3scale 検出を無効にすることができます。つまり、各 API プロバイダーインテグレーション作成者は、そのインテグレーションの API を検出可能にするかどうかを選択できます。

前提条件

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

手順

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

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

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

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

    oc describe dc/syndesis-server

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

結果

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

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

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

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

前提条件

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

手順

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

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

    $ oc project my-fuse-online-project
  3. syndesis カスタムリソースで oc patch コマンドを実行し、3scale ユーザーインターフェースの URL を空の値に設定します。

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

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

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

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

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

結果

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

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

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

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

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

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

前提条件

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

手順

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

    $ oc login -u developer -p developer

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

    $ oc project

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

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

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

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

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

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

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

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

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

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

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

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

前提条件

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

    OCP で Fuse Online バージョン 7.3 を実行している場合は、7.4 にアップグレードしてから 7.5 にアップグレードする必要があります。

    OCP で Fuse Online バージョン 7.2 を実行している場合は、7.3 にアップグレード する必要があります。

    OCP で Fuse Online バージョン 7.1 を実行している場合は、7.2 にアップグレード する必要があります。

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

手順

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

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

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

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

    $ cd fuse-online-install-1.8

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

    $ oc login -u developer

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

    $ oc project

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

    $ oc project project-name

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

    $ bash update_ocp.sh --version

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

    $ bash update_ocp.sh

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

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

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

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

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

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

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

前提条件

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

手順

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

$ oc delete syndesis app

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

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

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

前提条件

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

手順

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

$ oc delete project fuseonline

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

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

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

前提条件

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

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

手順

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

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

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

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

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

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

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

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

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

    警告

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

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

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

    oc create -f custom-syndesis.yaml

次のステップ

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