7.4. OpenShift シークレットを使用した Camel K プロパティーの設定
OpenShift シークレットを使用すると、Camel K インテグレーションに複数のプロパティーを設定できます。プロパティープレースホルダー(例: {{my.message
}})を使用してインテグレーションでプロパティーを定義する場合、シークレットを使用して実行時にプロパティー値を指定できます。Secret の application.properties
セクションにログレベルなどの追加のプロパティーを指定することもできます。
シークレットを使用したインテグレーションプロパティーの設定は、ConfigMap を使用した設定と似ています。主な違いは、Secret の application.properties
の内容を base64 でエンコーディングする必要がある場合がある点です。
前提条件
手順
プロパティーを使用する Camel インテグレーションを開発します。以下の簡単なルートには
{{my.message
}} プロパティープレースホルダーが含まれます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定プロパティーが含まれるシークレットを定義します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
my.message
プロパティーの値をHello World
に設定し、org.apache.camel
パッケージのログレベルをDEBUG
に設定します。これらの設定は、base64 でエンコードされた形式でapplication.properties
に指定されます。インテグレーションと同じ OpenShift namespace にシークレットを作成します。
oc apply -f my-secret.yaml
$ oc apply -f my-secret.yaml secret/my-secret created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --secret
オプションを指定してインテグレーションを実行し、シークレットの設定プロパティーを指定します。kamel run --secret=my-secret HelloCamelK.java --dev
$ 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]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow