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 createdCopy 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