8.10. OpenShift でのアプリケーションでの ConfigMap の使用
OpenShift では、デプロイメントコントローラー (dc) を使用して、アプリケーションの実行に使用される Pod に configmap をマウントできます。
ConfigMap
は、機密ではないデータをキーと値のペアに保存するために使用される OpenShift リソースです。
microprofile-platform
Galleon レイヤーを指定して microprofile-config-smallrye
およびすべての拡張機能をサーバー設定に追加してから、CLI スクリプトを使用して新しい ConfigSource
をサーバー設定に追加できます。CLI スクリプトは、Maven プロジェクトのルートディレクトリーにある /scripts
ディレクトリーなど、アクセス可能なディレクトリーに保存できます。
Eclipse 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 の使用 を参照してください。
手順
プロジェクトのルートディレクトリーに
scripts
という名前のディレクトリーを作成します。以下に例を示します。$ mkdir scripts
cli.properties
ファイルを作成し、そのファイルを/scripts
ディレクトリーに保存します。このファイルにconfig.path
およびconfig.ordinal
システムプロパティーを定義します。以下に例を示します。config.path=/etc/config config.ordinal=200
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 の値をプロパティーファイルから取得します。-
スクリプトを
/scripts
ディレクトリーに保存します。このディレクトリーは、プロジェクトのルートディレクトリーにあります。 既存のプラグイン
<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>
アプリケーションをパッケージ化します。
$ mvn package
-
oc login
コマンドを使用して、OpenShift インスタンスにログインします。 オプション:
target/openshift
サブディレクトリーを作成していない場合は、以下のコマンドを実行してサブディレクトリーを作成する必要があります。$ mkdir target/openshift
パッケージ化したアプリケーションを、作成したサブディレクトリーにコピーします。
$ cp target/microprofile-config-bootable.jar target/openshift
target/openshift
サブディレクトリーをバイナリー入力として使用し、アプリケーションをビルドします。$ oc start-build microprofile-config-app --from-dir target/openshift
注記OpenShift は CLI スクリプトコマンドのセットを起動可能な JAR 設定ファイルに適用し、クラウド環境に合わせて調整します。このスクリプトにアクセスするには、Maven プロジェクト
/target directory
のbootable-jar-build-artifacts/generated-cli-script.txt
ファイルを開きます。ConfigMap
を作成します。以下に例を示します。$ oc create configmap microprofile-config-map --from-literal=name="Name comes from Openshift ConfigMap"
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
コマンドを実行すると、アプリケーションは新しい設定で再デプロイされます。出力をテストします。
$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json
以下が想定される出力です。
{"result":"Hello Name comes from Openshift ConfigMap"}
その他のリソース
-
Eclipse MicroProfile Config
ConfigSources
属性の詳細は、デフォルトの Eclipse MicroProfile Config 属性 を参照してください。 - 起動可能な JAR 引数の情報は、サポートされる起動可能な JAR 引数 を参照してください。