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

外部データベースを使用して接続と統合の定義を永続化する Fuse Online 環境をインストールする場合、以下を実行します。

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

前提条件

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

手順

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

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

    • 接続ユーザー名
    • データベース名
    • データベースのパスワード

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

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

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

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

      データベースの作成については、PostgreSQL topic in the OpenShift documentation を参照してください。

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

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

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

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

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

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

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

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

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

    • OCP 3.11 の場合は、Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集 の手順にしたがいます。
    • OCP 4.6 以降の場合は、Installing the Fuse Online Operator from the OperatorHub の手順に従います。Adding a Fuse Online instance to an OpenShift 4.x project において、Fuse Online をデプロイする前にカスタムリソースを編集して、外部データベースの使用を指定します。以下に例を示します。

      apiVersion: syndesis.io/v1alpha1
      kind: Syndesis
      metadata:
        name: app
      spec:
        components:
          database:
            externalDbURL: "postgresql://syndesis-external-db:5432"
            user: db-user-name
            name: db-name
    • syndesis-external-db:5432 を外部 PostgreSQL データベースのホスト名およびポートに置き換えます。
    • db-user-name をコネクションユーザー名に置き換えます。
    • db-name をデータベースの名前に置き換えます。

結果

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

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