7.4. OpenShift シークレットを使用した Camel K プロパティーの設定
OpenShift シークレットを使用すると、Camel K インテグレーションに複数のプロパティーを設定できます。たとえば、{{my.message}}
プロパティープレースホルダーを使用してインテグレーションでプロパティーを定義する場合、シークレットを使用して実行時にプロパティー値を指定できます。Secret の application.properties
セクションで、ロギングレベルなどの追加のプロパティーを指定することもできます。
シークレットを使用したインテグレーションプロパティーの設定は、ConfigMap を使用した設定と似ています。主な違いは、Secret 内の application.properties
のコンテンツを base64 エンコードする必要がある場合があることです。
前提条件
手順
プロパティーを使用する Camel インテグレーションを開発します。次の単純なルートには、
{{my.message}}
プロパティープレースホルダーが含まれています。... from("timer:java?period=1s") .routeId("java") .setBody() .simple("{{my.message}} from ${routeId}") .to("log:info"); ...
設定プロパティーが含まれるシークレットを定義します。以下に例を示します。
apiVersion: v1 kind: Secret metadata: name: my-secret data: application.properties: | bXkubWVzc2FnZT1IZWxsbyBXb3JsZAogICAgbG9nZ2luZy5sZXZlbC5vcmcuYXBhY2hlLmNhbWVs PURFQlVHCg==
この例では、
my.message
プロパティーの値をHello World
に設定し、org.apache.camel
パッケージのログレベルをDEBUG
に設定します。これらの設定は、application.properties
で base64 エンコード形式で指定されます。インテグレーションと同じ OpenShift namespace にシークレットを作成します。
oc apply -f my-secret.yaml
以下を返します。
secret/my-secret created
--secret
オプションを使用してインテグレーションを実行し、シークレットの設定プロパティーを指定します。kamel run --secret=my-secret HelloCamelK.java --dev
以下を返します。
[1] 2020-04-14 14:30:29.788 DEBUG [Camel (camel-k) thread #1 - timer://java] DefaultReactiveExecutor - Queuing reactive work: CamelInternalProcessor - UnitOfWork - afterProcess - DefaultErrorHandler[sendTo(log://info)] - ID-hello-camel-k-68f85d99b9-srd92-1586874486770-0-144 [1] 2020-04-14 14:30:29.789 DEBUG [Camel (camel-k) thread #1 - timer://java] SendProcessor - >>>> log://info Exchange[ID-hello-camel-k-68f85d99b9-srd92-1586874486770-0-144] [1] 2020-04-14 14:30:29.789 INFO [Camel (camel-k) thread #1 - timer://java] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello World from java]