4.2.2.5. ConfigMap またはシークレットから取得した設定値の絞り込み
ConfigMap およびシークレットは複数のソースを保持できます。たとえば、以下のコマンドは 2 つのソースからシークレット (my-sec-multi
) を作成します。
oc create secret generic my-sec-multi --from-literal=my-secret-key="very top secret" --from-literal=my-secret-key-2="even more secret"
--config configmap
または --config secret
オプションの後に /key
表記を使用して、インテグレーションが取得する情報量を 1 つのソースに制限することができます。
前提条件
- Setting up your Camel K development environment
- 複数のソースを保持する ConfigMap またはシークレットがある。
手順
ConfigMap またはシークレットのいずれかのソースだけからの設定値を使用するインテグレーションを作成します。
たとえば、以下のインテグレーション (
ConfigSecretKeyRoute.java
) は、my-sec-multi
シークレット内のいずれかのソースだけからのプロパティーを使用します。import org.apache.camel.builder.RouteBuilder; public class ConfigSecretKeyRoute extends RouteBuilder { @Override public void configure() throws Exception { from("timer:secret") .setBody() .simple("resource:classpath:my-secret-key-2") .log("secret content is: ${body}"); } }
--config secret
オプションと/key
表記を使用してインテグレーションを実行します。以下に例を示します。
kamel run --config secret:my-sec-multi/my-secret-key-2 ConfigSecretKeyRoute.java --dev
インテグレーション Pod を確認し、指定されたソース (例:
my-secret-key-2
) のみがマウントされていることを確認します。たとえば、以下のコマンドを実行して Pod のすべてのボリュームを一覧表示します。
oc set volume pod/<pod-name> --all