4.2.3.3. リソースとしてのシークレットの指定

設定情報が含まれる OpenShift シークレットがあり、1 つ以上のインテグレーションが利用できるリソースとしてマテリアル化する必要がある場合は、--resource <secret> 構文を使用します。

前提条件

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

    oc create secret generic my-sec --from-literal=my-secret-key="very top secret"

手順

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

    たとえば、以下のインテグレーション (名前: ResourceSecretRoute.java) は my-sec シークレットを参照します。

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

    以下は例になります。

    kamel run --resource secret:my-sec ResourceSecretRoute.java --dev

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

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