8.10. OpenShift でのアプリケーションでの ConfigMap の使用

OpenShift では、デプロイメントコントローラー (dc) を使用して、アプリケーションの実行に使用される Pod に configmap をマウントできます。

ConfigMap は、機密ではないデータをキーと値のペアに保存するために使用される OpenShift リソースです。

microprofile-platform Galleon レイヤーを指定して microprofile-config-smallrye およびすべての拡張機能をサーバー設定に追加してから、CLI スクリプトを使用して新しい ConfigSource をサーバー設定に追加できます。CLI スクリプトは、Maven プロジェクトのルートディレクトリーにある /scripts ディレクトリーなど、アクセス可能なディレクトリーに保存できます。

MicroProfile Config 機能は、SmallRye Config を使用して JBoss EAP に実装され、microprofile-config-smallrye サブシステムによって提供されます。このサブシステムは microprofile-platform Galleon レイヤーに含まれています。

前提条件

  • Maven がインストールされている。
  • JBoss EAP Maven リポジトリーを設定している。
  • アプリケーションを起動可能な JAR としてパッケージ化し、JBoss EAP OpenShift プラットフォームでアプリケーションを実行できます。OpenShift プラットフォーム上でアプリケーションを起動可能な JAR として構築する方法は、JBoss EAP OpenShift プラットフォームでの起動可能な JAR の使用 を参照してください。

手順

  1. プロジェクトのルートディレクトリーに scripts という名前のディレクトリーを作成します。以下に例を示します。

    $ mkdir scripts
  2. cli.properties ファイルを作成し、そのファイルを /scripts ディレクトリーに保存します。このファイルに config.path および config.ordinal システムプロパティーを定義します。以下に例を示します。

    config.path=/etc/config
    config.ordinal=200
  3. mp-config.cli などの CLI スクリプトを作成し、これを /scripts ディレクトリーなどの起動可能な JAR のアクセス可能なディレクトリーに保存します。以下の例は、mp-config.cli スクリプトの内容を示しています。

    # config map
    
    /subsystem=microprofile-config-smallrye/config-source=os-map:add(dir={path=${config.path}}, ordinal=${config.ordinal})

    mp-config.cli CLI スクリプトは、新しい ConfigSource を作成し、Pipelineal および path の値をプロパティーファイルから取得します。

  4. スクリプトを /scripts ディレクトリーに保存します。このディレクトリーは、プロジェクトのルートディレクトリーにあります。
  5. 既存のプラグイン <configuration> 要素に以下の設定抽出を追加します。

    <cli-sessions>
        <cli-session>
            <properties-file>
                scripts/cli.properties
            </properties-file>
            <script-files>
                <script>scripts/mp-config.cli</script>
            </script-files>
        </cli-session>
    </cli-sessions>
  6. アプリケーションをパッケージ化します。

    $ mvn package
  7. oc login コマンドを使用して、OpenShift インスタンスにログインします。
  8. オプション: target/openshift サブディレクトリーを作成していない場合は、以下のコマンドを実行してサブディレクトリーを作成する必要があります。

    $ mkdir target/openshift
  9. パッケージ化したアプリケーションを、作成したサブディレクトリーにコピーします。

    $ cp target/microprofile-config-bootable.jar target/openshift
  10. target/openshift サブディレクトリーをバイナリー入力として使用し、アプリケーションをビルドします。

    $ oc start-build microprofile-config-app --from-dir target/openshift
    注記

    OpenShift は CLI スクリプトコマンドのセットを起動可能な JAR 設定ファイルに適用し、クラウド環境に合わせて調整します。このスクリプトにアクセスするには、Maven プロジェクト /target directorybootable-jar-build-artifacts/generated-cli-script.txt ファイルを開きます。

  11. ConfigMap を作成します。以下に例を示します。

    $ oc create configmap microprofile-config-map --from-literal=name="Name comes from Openshift ConfigMap"
  12. dc を使用して、ConfigMap をアプリケーションにマウントします。以下に例を示します。

    $ oc set volume deployments/microprofile-config-app --add --name=config-volume \
    --mount-path=/etc/config \
    --type=configmap \
    --configmap-name=microprofile-config-map

    oc set volume コマンドを実行すると、アプリケーションは新しい設定で再デプロイされます。

  13. 出力をテストします。

    $ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json

    以下が想定される出力です。

    {"result":"Hello Name comes from Openshift ConfigMap"}

関連情報