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