4.2.3.2. リソースとしての ConfigMap の指定

設定値が含まれる OpenShift ConfigMap があり、ConfigMap をインテグレーションのリソースとしてマテリアル化する必要がある場合は、--resource <configmap-file> オプションを使用します。

前提条件

  • Setting up your Camel K development environment
  • OpenShift クラスター上に 1 つ以上の ConfigMap ファイルがある。たとえば、以下のコマンドを使用して ConfigMap を作成できます。

    oc create configmap my-cm --from-literal=my-configmap-key="configmap content"

手順

  1. OpenShift クラスターに保存されている ConfigMap を参照する Camel K インテグレーションを作成します。

    たとえば、以下のインテグレーション(Resource ConfigmapRoute.java)は my- configmap-key が含まれる my-cm という名前の ConfigMap を参照します。

    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceConfigmapRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("file:/etc/camel/resources/my-cm/?fileName=my-configmap-key&noop=true&idempotent=false")
            .log("resource file content is: ${body}");
    
      }
    }
  2. インテグレーションを実行し、--resource オプションを使用してデフォルトの /etc/camel/resources/ ディレクトリーの ConfigMap ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。

    以下に例を示します。

    kamel run --resource configmap:my-cm ResourceConfigmapRoute.java --dev

    インテグレーションが起動すると、Camel K Operator は ConfigMap の内容でボリュームをマウントします (例: my-configmap-key)。

注記: クラスターでまだ利用できない ConfigMap を指定した場合、Integration は待機し ConfigMap が利用可能になって初めて起動します。