9.2. システムイメージのビルド

本セクションでは、システムイメージをビルドする手順について説明します。

前提条件

手順

  1. GitHub リポジトリーから 3scale OpenShift テンプレートをダウンロードし、アーカイブを展開します。

    tar -xzf 3scale-amp-openshift-templates-3scale-2.11.1-GA.tar.gz
  2. Oracle Database の Instant Client パッケージファイルを 3scale-amp-openshift-templates-3scale-2.11.1-GA/amp/system-oracle/oracle-client-files ディレクトリーに配置します。
  3. 3scale 2.11 amp.yml テンプレートをダウンロードします。
  4. -f オプションで build.yml OpenShift テンプレートを指定して、oc new-app コマンドを実行します。

    $ oc new-app -f build.yml
  5. -f オプションで amp.yml OpenShift テンプレートを指定し、-p オプションで WILDCARD_DOMAIN パラメーターに OpenShift クラスターのドメインを指定して、oc new-app コマンドを実行します。

    $ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
  6. 以下の oc patch コマンドを入力します。SYSTEM_PASSWORDOracle Database の準備 で設定した Oracle Database の system パスワードに置き換えます。

    $ oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json
    
    $ oc patch dc/system-app -p '{"spec": {"strategy": {"rollingParams": {"post":{"execNewPod": {"env": [{"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}]}}}}}}'
  7. 以下のコマンドを入力します。DATABASE_URLOracle Database の準備で指定した Oracle Database を参照するように置き換えます。

    $ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'
  8. oc start-build コマンドを入力し、新しいシステムイメージをビルドします。

    $ oc start-build 3scale-amp-system-oracle --from-dir=.
  9. ビルドが完了するまで待ちます。ビルドの状態を確認するには、以下のコマンドを実行します。

    $ oc get build <build-name> -o jsonpath="{.status.phase}"
    1. ビルドが Complete の状態になるまで待ちます。

9.2.1. ImageChange トリガーの更新

システムイメージを使用する DeploymentConfig の ImageChange トリガーを更新します。これにより、トリガーが新しい Oracle ベースのシステムイメージを使用するようになります。

前提条件

手順

  1. 環境変数内の現在の 3scale リリースを保存します。

    $ export THREESCALE_RELEASE=2.11
  2. system-app ImageChange トリガーを更新します。

    $ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-master,system-developer,system-provider --remove
    
    $ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-master,system-developer,system-provider

    これにより、system-app DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。

  3. system-sidekiq ImageChange トリガーを更新します。

    $ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sidekiq,check-svc --remove
    
    $ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sidekiq,check-svc

    これにより、system-sidekiq DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。

  4. system-sphinx ImageChange トリガーを更新します。

    $ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sphinx,system-master-svc --remove
    
    $ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sphinx,system-master-svc

    これにより、system-sphinx DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。

    注記

    以下の手順はオプションです。3scale のインストール後に ORACLE_SYSTEM_PASSWORD を削除します。

  5. Oracle Database で 3scale システムイメージを設定したら、system-app DeploymentConfig から ORACLE_SYSTEM_PASSWORD を削除します。新しいバージョンの 3scale にアップグレードするまで、もう一度は必要ありません。

    $ oc set env dc/system-app ORACLE_SYSTEM_PASSWORD-

関連情報

3scale と Oracle Database のサポートについては、Red Hat 3scale API Management のサポート対象設定 を参照してください。