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"
手順
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}"); } }インテグレーションを実行し、
--resourceオプションを使用してデフォルトの/etc/camel/resources/ディレクトリーの Secret ファイルをマテリアル化し、実行中のインテグレーションで使用できるようにします。以下に例を示します。
kamel run --resource secret:my-sec ResourceSecretRoute.java --dev
インテグレーションが起動すると、Camel K Operator はシークレットの内容でボリュームをマウントします (例:
my-sec)。
注記: クラスターでまだ利用できないシークレットを指定した場合、Integration は待機しシークレットが利用可能になって初めて起動します。